00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef _CACCESSORPROXY
00024 #define _CACCESSORPROXY
00025 #include "libMRML/include/uses-declarations.h"
00026 #include "libMRML/include/CSelfDestroyPointer.h"
00027 #include <string>
00028 #include <functional>
00029 #include "libMRML/include/CAccessor.h"
00030 #include "libMRML/include/CAccessorFactory.h"
00031 #include "libMRML/include/CAccessorFactoryContainer.h"
00043 class CAccessorAdmin{
00044 protected:
00048 CAccessorFactoryContainer& mFactoryContainer;
00050 CSelfDestroyPointer<CXMLElement> mCollectionElement;
00056 class CContentElement{
00057 public:
00059 CAccessor* mAccessor;
00061 CAccessorFactory* mFactory;
00063 int mOpenCloseCounter;
00064 };
00070 typedef map<string,CContentElement> CContent;
00072 CContent mContent;
00073 public:
00074
00084 CAccessor* openAccessor(string inType);
00087 void closeAccessor(string inType);
00088
00092 void setCollectionElement(CXMLElement*);
00094 const CXMLElement* getCollectionElement()const;
00096 const CXMLElement* getQueryParadigmList()const;
00098 list<string>* getAvailableIndices()const;
00099
00101 string toXML(bool isPrivate=false)const;
00105 CXMLElement* toXMLElement()const;
00106
00108 CAccessorAdmin(CAccessorFactoryContainer& inFactoryContainer);
00110 ~CAccessorAdmin();
00112 string CAccessorAdmin::getAlgorithmIDListID()const;
00114 string CAccessorAdmin::getName()const;
00116 string CAccessorAdmin::getID()const;
00117
00119 friend class CSortByName_pAP;
00120 };
00121
00122
00123
00124 class CSortByName_pAP:public binary_function<const CAccessorAdmin*,const CAccessorAdmin*,bool>{
00125 public:
00127 bool operator()(const CAccessorAdmin* l,
00128 const CAccessorAdmin* t);
00129 };
00130
00131
00132 #endif