System documentation of the GNU Image-Finding Tool

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

CQParallel.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 // -*- mode: c++ -*-
00024 #ifndef _CQPARALLEL
00025 #define _CQPARALLEL
00026 #include "libMRML/include/uses-declarations.h"
00027 #include "libMRML/include/CQuery.h"
00028 #include "libMRML/include/CSelfDestroyPointer.h"
00029 // -*- mode: c++ -*- 
00049 #include <memory>
00050 #include <map>
00051 #include <list>
00052 #include "libMRML/include/CSelfDestroyPointer.h"
00053 #include "libMRML/include/CIDRelevanceLevelPairList.h"
00054 #include "libMRML/include/CRelevanceLevelList.h"
00055 
00056 //#include "CWeightingFunctionPointerList.h"
00057 //#include "CWeightingFunctionPointerHash.h"
00058 
00059 #include "libMRML/include/CAlgorithm.h"
00060 #include "libMRML/include/CAccessor.h"
00061 #include "libMRML/include/CAccessorAdminCollection.h"
00062 #include "libMRML/include/CAccessorAdmin.h"
00063 
00064 
00065 class CScoreBoard;
00066 class CAccessor;
00067 
00068 
00092 class CQParallel:public CQuery{
00093 
00097   CAccessorAdminCollection& mAccessorAdminCollection;
00098 
00100   class lCLocalAccessor{
00101   public:
00103     CAccessor* mAccessor;
00105     CAccessorAdmin* mAccessorAdmin;
00107     list<lCChildren::iterator> mUsedBy;
00109     CSelfDestroyPointer<map<TID,double> > mUnifiedResults;
00111     double mWeightedSum;
00114     lCLocalAccessor();
00118     ~lCLocalAccessor();
00119   }; 
00120 
00121 
00136   class lCLocalAccessorMap:public map<string,lCLocalAccessor>{
00137   public:
00138   };
00141   lCLocalAccessorMap mAccessors;
00142   
00143 
00144 protected:
00150   virtual void init();
00151     
00152 public:
00158   ~CQParallel();
00163   CQParallel(CAccessorAdminCollection& inAccessorAdminCollection,
00164              CAlgorithm&          inAlgorithm);
00165     
00174   virtual CXMLElement* query(const CXMLElement& inQuery,
00175                              int inNumberOfInterestingImages,
00176                              double inDifferenceToBest);
00177 
00189   virtual CIDRelevanceLevelPairList* fastQuery(const CXMLElement& inQuery,
00190                                                int inNumberOfInterestingImages,
00191                                                double inDifferenceToBest);
00192 
00198   virtual CXMLElement* getRandomImages(int inNumberOfInterestingImages)const;
00204   virtual list<TID>* getAllIDs()const;
00210   virtual list<string>* getAllURLs()const;
00216   virtual list<pair<TID,string> >* getAllIDURLPairs()const;
00217     
00224   virtual bool setAlgorithm(CAlgorithm& inAlgorithm);
00225 
00237    void finishInit();
00238      
00239 }; /* end of class */
00240 
00241 #endif
00242 
00243 
00244 

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