00001
00002
#ifndef _CQUERYTREENODE
00003
#define _CQUERYTREENODE
00004
#include "libMRML/include/uses-declarations.h"
00005
#include "libMRML/include/CQuery.h"
00006
00007
#ifdef LINK_DYNAMICALLY
00008
#include "libMRML/include/CDynamicQueryFactory.h"
00009
#else
00010
#include "libMRML/include/CStaticQueryFactory.h"
00011
#endif
00012
00013
#include "libMRML/include/CSelfDestroyPointer.h"
00014
#include "libMRML/include/CMagic.h"
00015
00016
class CXMLElement;
00017
class CAlgorithm;
00018
class CStaticQueryFactory;
00019
00024 class CQueryTreeNode:
public CMagic{
00028
typedef list<pair<CQueryTreeNode*,double> > CChildren;
00030 CChildren mChildren;
00035
CQuery* mContent;
00039
CAlgorithm* mAlgorithm;
00040
public:
00042
CQueryTreeNode();
00044
~CQueryTreeNode();
00048
void configure(
CXMLElement& inAlgorithm,
00049
CAccessorAdminCollection& inAccessors,
00050
CStaticQueryFactory& inBaseTypeFactory);
00056
virtual CXMLElement*
query(
const CXMLElement& inQuery);
00063
virtual CIDRelevanceLevelPairList*
fastQuery(
const CXMLElement& inQuery,
00064
int inNumberOfInterestingImages,
00065
double inDifferenceToBest);
00072
void addChild(
CQueryTreeNode* inChild,
00073
double inWeight=1);
00074
00075 };
00076
00077
#endif