System documentation of the GNU Image-Finding Tool

CQPerl.h

00001 /* -*- mode: c++ -*- 
00002 */
00003 /* 
00004 
00005     GIFT, a flexible content based image retrieval system.
00006     Copyright (C) 1998, 1999, 2000, 2001, 2002, CUI University of Geneva
00007 
00008      Copyright (C) 2003, 2004 Bayreuth University
00009       2005 Bamberg University
00010     This program is free software; you can redistribute it and/or modify
00011     it under the terms of the GNU General Public License as published by
00012     the Free Software Foundation; either version 2 of the License, or
00013     (at your option) any later version.
00014 
00015     This program is distributed in the hope that it will be useful,
00016     but WITHOUT ANY WARRANTY; without even the implied warranty of
00017     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00018     GNU General Public License for more details.
00019 
00020     You should have received a copy of the GNU General Public License
00021     along with this program; if not, write to the Free Software
00022     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00023 
00024 */
00025 // -*- mode: c++ -*-
00026 #ifndef _CQPERL
00027 #define _CQPERL
00028 #include "libGIFTQuPerl/include/uses-declarations.h"
00029 #ifdef __GIFT_WITH_PERL__
00030 
00031 #ifdef bool
00032 #undef bool
00033 #define _bool char
00034 #endif
00035 
00036 #include <EXTERN.h>
00037 #include <perl.h>
00038 #undef list // perl lists
00039 
00040 #include <list>
00041 #include "libMRML/include/CQuery.h"
00042 
00043 
00048 class CQPerl:public CQuery{
00049  protected:
00053   string mPackage;
00058   SV* mPerlQueryProcessor;
00061   string qualifyFunctionName(const char* inName);
00063   static PerlInterpreter* mPerl; 
00064 
00071   CXMLElement* callPerl(const CXMLElement* inElement,
00072                         string inFunction);
00076   void callConstruct();
00077 
00078  public:
00084   CQPerl(CAccessorAdminCollection& inAccessorAdminCollection,
00085          CAlgorithm&          inAlgorithm);
00091   CQPerl();
00097   ~CQPerl();
00103   virtual CXMLElement* query(const CXMLElement& inQuery);
00104   
00111   virtual CIDRelevanceLevelPairList* fastQuery(const CXMLElement& inQuery,
00112                                                int inNumberOfInterestingImages,
00113                                                double inDifferenceToBest);
00114 
00120   virtual CXMLElement* getRandomImages(int inNumberOfInterestingImages)const;
00126   virtual CIDRelevanceLevelPairList* getRandomIDs(int inNumberOfInterestingImages)const;
00132   virtual list<TID>* getAllIDs()const;
00138   virtual list<CAccessorElement>* getAllAccessorElements()const;
00139 
00145   bool setAlgorithm(CAlgorithm& inAlgorithm);
00146 
00147 
00154   void init();
00155 };
00156 
00157 
00158 #endif
00159 
00160 #endif

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