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 // -*- Mode: c++ -*- 00024 #ifndef _CACCESSORCOLLECTION 00025 #define _CACCESSORCOLLECTION 00026 #include "libMRML/include/uses-declarations.h" 00027 #include <map> 00028 #include "libMRML/include/CAccessorAdmin.h" 00029 00030 class CXMLElement; 00031 00037 class CAccessorAdminCollection{ 00041 CXMLElement* mCollectionInConstruction; 00042 00043 00044 public: 00047 class CContent:public map<string,CAccessorAdmin*>{ 00048 public: 00050 ~CContent(); 00051 }; 00053 CContent mIDToProxy; 00055 CAccessorAdmin* mCurrentProxy; 00056 00057 public: 00059 typedef CContent::const_iterator const_iterator; 00060 protected: 00063 CSelfDestroyPointer<CAccessorFactoryContainer> mFactory; 00064 public: 00066 CContent::const_iterator begin()const; 00068 CContent::const_iterator end()const; 00074 CAccessorAdminCollection(string inFileName); 00078 void addCollection(CXMLElement* inCollectionElement); 00082 const CXMLElement* getCollectionElement(string inID)const; 00086 const CXMLElement* getQueryParadimList(string inID)const; 00089 CAccessorAdmin& getCurrentProxy(); 00094 CAccessorAdmin& getProxy(const string& inID); 00096 string getDefaultAccessorID()const; 00098 string toXML(bool isPrivate=false)const; 00100 CXMLElement* toXMLElement()const; 00104 CXMLElement* getCollectionInConstruction(); 00108 void startCollectionConstruction(CXMLElement* inRoot); 00109 }; 00110 00111 #endif