System documentation of the GNU Image-Finding Tool

CQMultiple.h
1 /* -*- mode: c++ -*-
2 */
3 /*
4 
5  GIFT, a flexible content based image retrieval system.
6  Copyright (C) 1998, 1999, 2000, 2001, 2002, CUI University of Geneva
7 
8  Copyright (C) 2003, 2004 Bayreuth University
9  2005 Bamberg University
10  This program is free software; you can redistribute it and/or modify
11  it under the terms of the GNU General Public License as published by
12  the Free Software Foundation; either version 2 of the License, or
13  (at your option) any later version.
14 
15  This program is distributed in the hope that it will be useful,
16  but WITHOUT ANY WARRANTY; without even the implied warranty of
17  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  GNU General Public License for more details.
19 
20  You should have received a copy of the GNU General Public License
21  along with this program; if not, write to the Free Software
22  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23 
24 */
25 // -*- mode: c++ -*-
26 #ifndef _CQMULTIPLE
27 #define _CQMULTIPLE
28 #include "libMRML/include/uses-declarations.h"
29 
30 /* -*- mode: c++ -*-
31 */
51 #include <memory>
52 #include <map>
53 #include <list>
54 #include "libMRML/include/CQuery.h"
55 #include "libMRML/include/CSelfDestroyPointer.h"
56 #include "libMRML/include/CIDRelevanceLevelPairList.h"
57 #include "libMRML/include/CRelevanceLevelList.h"
58 
59 //#include "CWeightingFunctionPointerList.h"
60 //#include "CWeightingFunctionPointerHash.h"
61 
62 #include "libMRML/include/CAlgorithm.h"
63 #include "libMRML/include/CAccessor.h"
64 #include "libMRML/include/CAccessorAdminCollection.h"
65 #include "libMRML/include/CAccessorAdmin.h"
66 
67 #ifdef HAS_HASH_MAP
68 #include <hash_map>
69 #else
70 #define hash_map map
71 #endif
72 
73 class CScoreBoard;
74 class CAccessor;
75 
76 
118 class CQMultiple:public CQuery{
119 protected:
120 
127  void init();
130  public:
136  CQMultiple();
142  ~CQMultiple();
147  CQMultiple(CAccessorAdminCollection& inAccessorAdminCollection,
148  CAlgorithm& inAlgorithm);
149 
155  static void* doFastQueryThread(void *);
161  virtual CIDRelevanceLevelPairList* fastQuery(const CXMLElement& inQuery,
162  int inNumberOfInterestingImages,
163  double inDifferenceToBest);
164 
170  static void* doQueryThread(void *);
176  virtual CXMLElement* query(const CXMLElement& inQuery);
177 
184  virtual bool setAlgorithm(CAlgorithm& inAlgorithm);
185 }; /* end of class */
186 
187 #endif
188 
virtual CXMLElement * query(const CXMLElement &inQuery)
calls query for every child, merges the results by URLs
~CQMultiple()
we need to unregister the accessors used
Definition: CIDRelevanceLevelPairList.h:52
CQMultiple()
default constructor
void init()
Do we merge the results by their URL or by their image ID?
This class captures the structure of an XML element.
Definition: CXMLElement.h:51
bool mUsesResultURLs
do we merge result URLs or result IDs?
Definition: CQMultiple.h:129
Definition: CScoreBoard.h:60
An algorithm is a CXMLElement which is linked to a CSessionManager together they are able to build CQ...
Definition: CAlgorithm.h:43
The Query manager for Queries on inverted Files.
Definition: CQuery.h:73
This is in fact a collection of collections.
Definition: CAccessorAdminCollection.h:39
virtual CIDRelevanceLevelPairList * fastQuery(const CXMLElement &inQuery, int inNumberOfInterestingImages, double inDifferenceToBest)
calls fastQuery for every child, merges the results
static void * doFastQueryThread(void *)
This function processes is in the inner loop of fastQuery.
static void * doQueryThread(void *)
This function processes is in the inner loop of query.
CAccessor - an abstract base class for everything accessing a GIFT database.
Definition: CAccessor.h:55
virtual bool setAlgorithm(CAlgorithm &inAlgorithm)
set the Algorithm.
This is going to be one of our main building blocks.
Definition: CQMultiple.h:118

Need for discussion? Want to contribute? Contact
help-gift@gnu.org Generated using Doxygen