• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2 * Copyright 2006 Sony Computer Entertainment Inc.
3 *
4 * Licensed under the MIT Open Source License, for details please see license.txt or the website
5 * http://www.opensource.org/licenses/mit-license.php
6 *
7 */
8 
9 #ifndef __DAE_RAWRESOLVER_H__
10 #define __DAE_RAWRESOLVER_H__
11 
12 #include <string>
13 #include <map>
14 #include <dae/daeURI.h>
15 class DAE;
16 
17 /**
18  * The @c daeRawResolver class derives from @c daeURIResolver and implements
19  * the .raw backend resolver for raw binary data.
20  */
21 class DLLSPEC daeRawResolver : public daeURIResolver
22 {
23 public:
24 	/**
25 	 * Constructor.
26 	 */
27 	daeRawResolver(DAE& dae);
28 	/**
29 	 * Destructor.
30 	 */
31 	~daeRawResolver();
32 
33 public: // Abstract Interface
34 	virtual daeElement* resolveElement(const daeURI& uri);
35 	virtual daeString getName();
36 };
37 
38 // A simple class to make speed up the process of resolving a .raw URI.
39 // The result of the resolve is cached for future use.
40 // This is meant for DOM internal use only.
41 class DLLSPEC daeRawRefCache {
42 public:
43 	daeElement* lookup(const daeURI& uri);
44 	void add(const daeURI& uri, daeElement* elt);
45 	void remove(const daeURI& uri);
46 	void clear();
47 
48 private:
49 	std::map<std::string, daeElement*> lookupTable;
50 };
51 
52 #endif
53