53 lines
1.2 KiB
C
53 lines
1.2 KiB
C
|
/*
|
||
|
* Copyright 2006 Sony Computer Entertainment Inc.
|
||
|
*
|
||
|
* Licensed under the MIT Open Source License, for details please see license.txt or the website
|
||
|
* http://www.opensource.org/licenses/mit-license.php
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
#ifndef __DAE_RAWRESOLVER_H__
|
||
|
#define __DAE_RAWRESOLVER_H__
|
||
|
|
||
|
#include <string>
|
||
|
#include <map>
|
||
|
#include <dae/daeURI.h>
|
||
|
class DAE;
|
||
|
|
||
|
/**
|
||
|
* The @c daeRawResolver class derives from @c daeURIResolver and implements
|
||
|
* the .raw backend resolver for raw binary data.
|
||
|
*/
|
||
|
class DLLSPEC daeRawResolver : public daeURIResolver
|
||
|
{
|
||
|
public:
|
||
|
/**
|
||
|
* Constructor.
|
||
|
*/
|
||
|
daeRawResolver(DAE& dae);
|
||
|
/**
|
||
|
* Destructor.
|
||
|
*/
|
||
|
~daeRawResolver();
|
||
|
|
||
|
public: // Abstract Interface
|
||
|
virtual daeElement* resolveElement(const daeURI& uri);
|
||
|
virtual daeString getName();
|
||
|
};
|
||
|
|
||
|
// A simple class to make speed up the process of resolving a .raw URI.
|
||
|
// The result of the resolve is cached for future use.
|
||
|
// This is meant for DOM internal use only.
|
||
|
class DLLSPEC daeRawRefCache {
|
||
|
public:
|
||
|
daeElement* lookup(const daeURI& uri);
|
||
|
void add(const daeURI& uri, daeElement* elt);
|
||
|
void remove(const daeURI& uri);
|
||
|
void clear();
|
||
|
|
||
|
private:
|
||
|
std::map<std::string, daeElement*> lookupTable;
|
||
|
};
|
||
|
|
||
|
#endif
|