AIDATupleSvc.h
Go to the documentation of this file.00001
00002 #ifndef AIDATUPLESVC_AIDATUPLESVC_H
00003 #define AIDATUPLESVC_AIDATUPLESVC_H 1
00004
00005
00006 #include <vector>
00007 #include <map>
00008
00009 #include "GaudiKernel/DataSvc.h"
00010 #include "GaudiKernel/xtoa.h"
00011 #include "GaudiKernel/Kernel.h"
00012 #include "GaudiKernel/IAIDATupleSvc.h"
00013
00014 #include "GaudiPI/AIDA_Proxy/AIDA_Proxy.h"
00015
00025
00026 template <class T> class SvcFactory;
00027
00028 class AIDATupleSvc : public extends1<DataSvc, IAIDATupleSvc>
00029 {
00030 private:
00032 friend class SvcFactory<AIDATupleSvc>;
00033
00034 protected:
00036 typedef std::vector<std::string> DBaseEntries;
00037 typedef std::map<std::string, pi_aida::Proxy_Store*> Connections;
00038
00040 DBaseEntries m_output;
00041
00043 DBaseEntries m_input;
00044
00046 Connections m_connections;
00047
00049 AIDATupleSvc( const std::string& name, ISvcLocator* svc );
00050
00052 virtual ~AIDATupleSvc();
00053
00054
00063 void parsePath( const std::string& fullPath,
00064 std::string& dirPath,
00065 std::string& objPath,
00066 std::string& storePath,
00067 std::string& storeObj );
00068
00069
00074 virtual DataObject* createPath( const std::string& newPath );
00075
00076
00082 virtual DataObject* createDirectory( const std::string& parentDir,
00083 const std::string& subDir );
00084
00090 StatusCode connect( const std::string& ident,
00091 int mode );
00092
00094 StatusCode closeAIDAStores();
00095
00096 public:
00098 virtual StatusCode initialize();
00100 virtual StatusCode reinitialize();
00102 virtual StatusCode finalize();
00103
00110 virtual AIDA::ITuple* book( const std::string& fullPath,
00111 const std::string& title,
00112 const std::string& columns );
00113
00114
00122 virtual AIDA::ITuple* book( const std::string& parentPath,
00123 const std::string& objPath,
00124 const std::string& title,
00125 const std::string& columns );
00126
00127
00135 virtual AIDA::ITuple* book( const std::string& parentPath,
00136 int tupleID,
00137 const std::string& title,
00138 const std::string& columns );
00139
00140
00148 virtual AIDA::ITuple* book( DataObject* pParent,
00149 const std::string& objPath,
00150 const std::string& title,
00151 const std::string& columns );
00152
00153
00161 virtual AIDA::ITuple* book( DataObject* pParent,
00162 int tupleID,
00163 const std::string& title,
00164 const std::string& columns );
00165
00166
00173 virtual StatusCode registerObject( const std::string& dirPath,
00174 const std::string& objPath,
00175 AIDA::ITuple* tObj );
00176
00177
00184 virtual StatusCode registerObject( DataObject* pParent,
00185 const std::string& objPath,
00186 AIDA::ITuple* tObj );
00187
00188
00193 virtual StatusCode unregisterObject( AIDA::ITuple* tObj );
00194
00195
00201 virtual StatusCode unregisterObject( AIDA::ITuple* tObj,
00202 const std::string& objPath );
00203
00204
00210 virtual StatusCode retrieveObject( const std::string& fullPath,
00211 AIDA::ITuple*& tObj );
00212
00213
00220 virtual StatusCode retrieveObject( const std::string& parentPath,
00221 const std::string& objPath,
00222 AIDA::ITuple*& tObj );
00223
00224
00231 virtual StatusCode retrieveObject( DataObject* pParent,
00232 const std::string& objPath,
00233 AIDA::ITuple*& tObj );
00234
00235
00241 virtual StatusCode findObject( const std::string& fullPath,
00242 AIDA::ITuple*& tObj );
00243
00250 virtual StatusCode findObject( IRegistry* pDirectory,
00251 const std::string& path,
00252 AIDA::ITuple*& tObj );
00253
00260 virtual StatusCode findObject( const std::string& parentPath,
00261 const std::string& objPath,
00262 AIDA::ITuple*& tObj );
00263
00270 virtual StatusCode findObject( DataObject* parentObj,
00271 const std::string& objPath,
00272 AIDA::ITuple*& tObj );
00273
00278 virtual void setCriteria( AIDA::ITuple*& tObj,
00279 const std::string& criteria );
00280
00282 virtual StatusCode myTest();
00283 };
00284
00285 #endif //AIDATUPLESVC_AIDATUPLESVC_H