00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef _CQMULTIPLE
00027 #define _CQMULTIPLE
00028 #include "libMRML/include/uses-declarations.h"
00029
00030
00031
00051 #include <memory>
00052 #include <map>
00053 #include <list>
00054 #include "libMRML/include/CQuery.h"
00055 #include "libMRML/include/CSelfDestroyPointer.h"
00056 #include "libMRML/include/CIDRelevanceLevelPairList.h"
00057 #include "libMRML/include/CRelevanceLevelList.h"
00058
00059
00060
00061
00062 #include "libMRML/include/CAlgorithm.h"
00063 #include "libMRML/include/CAccessor.h"
00064 #include "libMRML/include/CAccessorAdminCollection.h"
00065 #include "libMRML/include/CAccessorAdmin.h"
00066
00067 #ifdef HAS_HASH_MAP
00068 #include <hash_map>
00069 #else
00070 #define hash_map map
00071 #endif
00072
00073 class CScoreBoard;
00074 class CAccessor;
00075
00076
00118 class CQMultiple:public CQuery{
00119 protected:
00120
00127 void init();
00129 bool mUsesResultURLs;
00130 public:
00136 CQMultiple();
00142 ~CQMultiple();
00147 CQMultiple(CAccessorAdminCollection& inAccessorAdminCollection,
00148 CAlgorithm& inAlgorithm);
00149
00155 static void* doFastQueryThread(void *);
00161 virtual CIDRelevanceLevelPairList* fastQuery(const CXMLElement& inQuery,
00162 int inNumberOfInterestingImages,
00163 double inDifferenceToBest);
00164
00170 static void* doQueryThread(void *);
00176 virtual CXMLElement* query(const CXMLElement& inQuery);
00177
00184 virtual bool setAlgorithm(CAlgorithm& inAlgorithm);
00185 };
00186
00187 #endif
00188