/usr/include/libMRML/include/CAccessorAdmin.h is in libmrml1-dev 0.1.14-12.1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 | /* -*- mode: c++ -*-
*/
/*
GIFT, a flexible content based image retrieval system.
Copyright (C) 1998, 1999, 2000, 2001, 2002, CUI University of Geneva
Copyright (C) 2003, 2004 Bayreuth University
2005 Bamberg University
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef _CACCESSORPROXY
#define _CACCESSORPROXY
#include "libMRML/include/uses-declarations.h"
#include "libMRML/include/CSelfDestroyPointer.h"
#include <string>
#include <functional>
#include "libMRML/include/CAccessor.h"
#include "libMRML/include/CAccessorFactory.h"
#include "libMRML/include/CAccessorFactoryContainer.h"
/**
CAccessorAdmin: The goal of this is to make it possible
to have a list containing accessors to all possible
collections, without really opening the accessors.
The accessor proxy is in fact an open/close counter
for accessors. This permits multiple query structures
to share just one accessor, and it avoids having to open
all kinds of accessors when starting the program.
*/
class CAccessorAdmin{
protected:
/**
Factory for making all kinds of accessors
*/
CAccessorFactoryContainer& mFactoryContainer;
/** */
CSelfDestroyPointer<CXMLElement> mCollectionElement;
/**
Content is pointer to a factory,
a pointer to the actual Accessor (if already made)
and the open-close-counter
*/
class CContentElement{
public:
/** Contains a pointer to the accessor, if already opened */
CAccessor* mAccessor;
/** The factory to make an accessor, if this is needed */
CAccessorFactory* mFactory;
/** Counts how often the accessor has been opened or closed */
int mOpenCloseCounter;
};
/**
Typedef: The content is a map of string to content element
In this map is noted, which accessors are open for the
collection with the given ID.
*/
typedef map<string,CContentElement> CContent;
/** The content is a map of string to content element */
CContent mContent;
public:
//----------------------------------------
/** open an accessor.
This is the important part for the outside:
Open or close inverted file accessors.
Several queries can share one accessor,
the accessor will be constructed when the first
CQuery needs it, and it will be deleted, when
the last one does not need it any more:
*/
CAccessor* openAccessor(string inType);
/** closing an accessor.
@see openAccessor*/
void closeAccessor(string inType);
//----------------------------------------
/** Once this is working this will replace
about every set/get function which follows
*/
void setCollectionElement(CXMLElement*);
/** */
const CXMLElement* getCollectionElement()const;
/** */
const CXMLElement* getQueryParadigmList()const;
/** */
list<string>* getAvailableIndices()const;
//----------------------------------------
/** generate out put for shandshake message */
string toXML(bool isPrivate=false)const;
/** pack the content of this into an CXMLElement
with elementname "collection"
*/
CXMLElement* toXMLElement()const;
//----------------------------------------
/** Constructor */
CAccessorAdmin(CAccessorFactoryContainer& inFactoryContainer);
/** destructor */
~CAccessorAdmin();
/** */
string getAlgorithmIDListID()const;
/** */
string getName()const;
/** */
string getID()const;
/** for sorting */
friend class CSortByName_pAP;
};
/* Sort pointers to Accessor Proxies by the name of what they point to */
class CSortByName_pAP:public binary_function<const CAccessorAdmin*,const CAccessorAdmin*,bool>{
public:
/** */
bool operator()(const CAccessorAdmin* l,
const CAccessorAdmin* t);
};
#endif
|