System documentation of the GNU Image-Finding Tool

Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members

CAccessorAdmin.h

00001 /* -*- mode: c++ -*- 
00002 */
00003 /* 
00004 
00005     GIFT, a flexible content based image retrieval system.
00006     Copyright (C) 1998, 1999, 2000, 2001, 2002, CUI University of Geneva
00007 
00008     This program is free software; you can redistribute it and/or modify
00009     it under the terms of the GNU General Public License as published by
00010     the Free Software Foundation; either version 2 of the License, or
00011     (at your option) any later version.
00012 
00013     This program is distributed in the hope that it will be useful,
00014     but WITHOUT ANY WARRANTY; without even the implied warranty of
00015     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00016     GNU General Public License for more details.
00017 
00018     You should have received a copy of the GNU General Public License
00019     along with this program; if not, write to the Free Software
00020     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
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 /* Sort pointers to Accessor Proxies by the name of what they point to */
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

Need for discussion? Want to contribute? Contact
help-gift@gnu.org Generated using Doxygen