File: CQueryTreeNode.h

package info (click to toggle)
gnuift 0.1.14%2Bds-1
  • links: PTS
  • area: main
  • in suites: stretch
  • size: 5,632 kB
  • ctags: 2,973
  • sloc: cpp: 15,867; sh: 8,281; ansic: 1,812; perl: 1,007; php: 651; makefile: 483; lisp: 344
file content (77 lines) | stat: -rw-r--r-- 1,916 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
// -*- mode: c++ -*-
#ifndef _CQUERYTREENODE
#define _CQUERYTREENODE
#include "libMRML/include/uses-declarations.h"
#include "libMRML/include/CQuery.h"

#ifdef LINK_DYNAMICALLY
#include "libMRML/include/CDynamicQueryFactory.h"
#else
#include "libMRML/include/CStaticQueryFactory.h"
#endif

#include "libMRML/include/CSelfDestroyPointer.h"
#include "libMRML/include/CMagic.h"

class CXMLElement;
class CAlgorithm;
class CStaticQueryFactory;

/** This class does nothing but wrap the 
    current query interface in a way, that 
    it can be used with CORBA
*/
class CQueryTreeNode:public CMagic{
  /**
     type of the children of this
   */
  typedef list<pair<CQueryTreeNode*,double> > CChildren;
  /** The children of this */
  CChildren mChildren;
  /**
     The content of this. It is constructed, when
     CQueryTreeNode::configure is called
  */
  CQuery* mContent;
  /** 
      the current Algorithm of this query 
  */
  CAlgorithm* mAlgorithm;
public:
  /** Construct this */
  CQueryTreeNode();
  /** Destruct this: delete all the children of this */
  ~CQueryTreeNode();
  /** Configure this. This means:
   create an object of a subclass of CQuery, 
   and set its children*/
  void configure(CXMLElement& inAlgorithm,
		 CAccessorAdminCollection& inAccessors,
		 CStaticQueryFactory& inBaseTypeFactory);
  /** 
   *
   * do a query 
   *
   */
  virtual CXMLElement* query(const CXMLElement& inQuery);
  /**
   *
   * @short a query which returns ID/RelevanceLevel pairs instead of
   * instead of URL/RelevanceLevel pairs
   *
   */
  virtual CIDRelevanceLevelPairList* fastQuery(const CXMLElement& inQuery,
					       int inNumberOfInterestingImages,
					       double inDifferenceToBest);
  /**
   *
   * @short a query which returns ID/RelevanceLevel pairs instead of
   * instead of URL/RelevanceLevel pairs
   *
   */
  void addChild(CQueryTreeNode* inChild,
		double inWeight=1);

};

#endif