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 _CQPARALLEL
00025
#define _CQPARALLEL
00026
#include "libMRML/include/uses-declarations.h"
00027
#include "libMRML/include/CQuery.h"
00028
#include "libMRML/include/CSelfDestroyPointer.h"
00029
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
00057
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 };
00240
00241
#endif
00242
00243
00244