00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef _CACCESSORFACTORYCONTAINER
00025 #define _CACCESSORFACTORYCONTAINER
00026 #include "libMRML/include/uses-declarations.h"
00027 #include <map>
00028 #include <string>
00029 #include "libMRML/include/CSelfDestroyPointer.h"
00030 class CXMLElement;
00031 class CAccessor;
00032 class CAccessorFactory;
00042 class CAccessorFactoryContainer{
00046 CSelfDestroyPointer<CXMLElement> mConfigurationData;
00047 class CContentElement{
00048 public:
00050 CAccessorFactory* mFactory;
00052 int mOpenCloseCounter;
00053 };
00059 public:
00060 typedef map<string,CContentElement> CContent;
00061 protected:
00063 CContent mContent;
00064
00065 public:
00070 CAccessorFactoryContainer();
00076 void configure(CXMLElement* inConfigurationData);
00080 ~CAccessorFactoryContainer();
00084 void registerFactory(CAccessorFactory* inFactory,
00085 string inName);
00097 CAccessor* openAccessor(string inName,
00098 const CXMLElement& inCollectionElement);
00105 void closeAccessor(string inName);
00111 bool isPresentFactory(string inName)const;
00112
00113 };
00114
00115 #endif