axmol/extensions/CCBReader/CCNodeLoaderLibrary.h

43 lines
1.3 KiB
C++

#ifndef _CCB_CCNODELOADERLIBRARY_H_
#define _CCB_CCNODELOADERLIBRARY_H_
#include "cocos2d.h"
#include "CCBReader.h"
NS_CC_EXT_BEGIN
class CCNodeLoader;
typedef std::map<CCString *, CCNodeLoader *, CCStringCompare> CCNodeLoaderMap;
typedef std::pair<CCString *, CCNodeLoader *> CCNodeLoaderMapEntry;
class CCNodeLoaderLibrary : public CCObject {
private:
CCNodeLoaderMap mCCNodeLoaders;
public:
CCB_STATIC_NEW_AUTORELEASE_OBJECT_METHOD(CCNodeLoaderLibrary, library);
CCNodeLoaderLibrary();
virtual ~CCNodeLoaderLibrary();
void registerDefaultCCNodeLoaders();
void registerCCNodeLoader(const char * pClassName, CCNodeLoader * pCCNodeLoader);
void registerCCNodeLoader(CCString * pClassName, CCNodeLoader * pCCNodeLoader);
void unregisterCCNodeLoader(const char * pClassName);
void unregisterCCNodeLoader(CCString * pClassName);
CCNodeLoader * getCCNodeLoader(const char * pClassName);
CCNodeLoader * getCCNodeLoader(CCString * pClassName);
void purge(bool pDelete);
public:
static CCNodeLoaderLibrary * sharedCCNodeLoaderLibrary();
static void purgeSharedCCNodeLoaderLibrary();
static CCNodeLoaderLibrary * newDefaultCCNodeLoaderLibrary();
};
NS_CC_EXT_END
#endif