00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
#ifndef _CQMULTIPLE
00025
#define _CQMULTIPLE
00026
#include "libMRML/include/uses-declarations.h"
00027
00028
00029
00049
#include <memory>
00050
#include <map>
00051
#include <list>
00052
#include "libMRML/include/CQuery.h"
00053
#include "libMRML/include/CSelfDestroyPointer.h"
00054
#include "libMRML/include/CIDRelevanceLevelPairList.h"
00055
#include "libMRML/include/CRelevanceLevelList.h"
00056
00057
00058
00059
00060
#include "libMRML/include/CAlgorithm.h"
00061
#include "libMRML/include/CAccessor.h"
00062
#include "libMRML/include/CAccessorAdminCollection.h"
00063
#include "libMRML/include/CAccessorAdmin.h"
00064
00065
#ifdef HAS_HASH_MAP
00066
#include <hash_map>
00067
#else
00068
#define hash_map map
00069
#endif
00070
00071
class CScoreBoard;
00072
class CAccessor;
00073
00074
00116 class CQMultiple:
public CQuery{
00117
protected:
00118
00125
void init();
00127 bool mUsesResultURLs;
00128
public:
00134
CQMultiple();
00140
~CQMultiple();
00145
CQMultiple(
CAccessorAdminCollection& inAccessorAdminCollection,
00146
CAlgorithm& inAlgorithm);
00147
00153
static void*
doFastQueryThread(
void *);
00159
virtual CIDRelevanceLevelPairList*
fastQuery(
const CXMLElement& inQuery,
00160
int inNumberOfInterestingImages,
00161
double inDifferenceToBest);
00162
00168
static void*
doQueryThread(
void *);
00174
virtual CXMLElement*
query(
const CXMLElement& inQuery);
00175
00182
virtual bool setAlgorithm(
CAlgorithm& inAlgorithm);
00183 };
00184
00185
#endif
00186