00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
#ifndef _CACCESSOR
00024
#define _CACCESSOR
00025
#include "libMRML/include/uses-declarations.h"
00026
#include <string>
00027
#include <list>
00028
#include "libMRML/include/TID.h"
00029
00030
#ifdef GIFT_MULTI_THREAD
00031
#include <pthread.h>
00032
#endif
00033
00034
#include "libMRML/include/CMutex.h"
00035
#include "libMRML/include/CAccessorElement.h"
00036
class CXMLElement;
00037
00053 class CAccessor{
00054
protected:
00060
virtual void dummy()
const;
00061
00062
public:
00068
virtual operator bool()
const=0;
00069
00075
virtual string
IDToURL(TID inID)
const=0;
00081
virtual pair<bool,CAccessorElement>
IDToAccessorElement(TID inID)
const=0;
00082
00088
virtual pair<bool,TID>
URLToID(
const string& inURL)
const=0;
00089
00098
virtual void getAllIDs(list<TID>&)
const=0;
00101
virtual void getAllAccessorElements(list<CAccessorElement>&)
const=0;
00106
virtual void getRandomIDs(list<TID>&,
00107 list<TID>::size_type)
const=0;
00116
virtual void getRandomAccessorElements(list<CAccessorElement>& outResult,
00117 list<CAccessorElement>::size_type inSize)
const=0;
00119
virtual int size()
const=0;
00121
00135
virtual CXMLElement*
prepareDatabase();
00140
virtual bool isPreparedDatabase()
const;
00142
00143
virtual ~CAccessor();
00144 };
00145
00146
#endif