![]() |
|
|
Generated: 8 Jan 2009 |
00001 // $Id: AIDATupleSvc.h,v 1.4 2006/01/27 13:01:19 hmd Exp $ 00002 #ifndef AIDATUPLESVC_AIDATUPLESVC_H 00003 #define AIDATUPLESVC_AIDATUPLESVC_H 1 00004 00005 // Include files 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 // Forward Declarations 00026 template <class T> class SvcFactory; 00027 00028 class AIDATupleSvc : public DataSvc, 00029 virtual public IAIDATupleSvc 00030 { 00031 private: 00033 friend class SvcFactory<AIDATupleSvc>; 00034 00035 protected: 00037 typedef std::vector<std::string> DBaseEntries; 00038 typedef std::map<std::string, pi_aida::Proxy_Store*> Connections; 00039 00041 DBaseEntries m_output; 00042 00044 DBaseEntries m_input; 00045 00047 Connections m_connections; 00048 00050 AIDATupleSvc( const std::string& name, ISvcLocator* svc ); 00051 00053 virtual ~AIDATupleSvc(); 00054 00055 00064 void parsePath( const std::string& fullPath, 00065 std::string& dirPath, 00066 std::string& objPath, 00067 std::string& storePath, 00068 std::string& storeObj ); 00069 00070 00075 virtual DataObject* createPath( const std::string& newPath ); 00076 00077 00083 virtual DataObject* createDirectory( const std::string& parentDir, 00084 const std::string& subDir ); 00085 00091 StatusCode connect( const std::string& ident, 00092 int mode ); 00093 00095 StatusCode closeAIDAStores(); 00096 00097 public: 00099 virtual StatusCode initialize(); 00101 virtual StatusCode reinitialize(); 00103 virtual StatusCode finalize(); 00105 virtual StatusCode queryInterface(const InterfaceID& riid, void** ppv); 00106 00107 00114 virtual AIDA::ITuple* book( const std::string& fullPath, 00115 const std::string& title, 00116 const std::string& columns ); 00117 00118 00126 virtual AIDA::ITuple* book( const std::string& parentPath, 00127 const std::string& objPath, 00128 const std::string& title, 00129 const std::string& columns ); 00130 00131 00139 virtual AIDA::ITuple* book( const std::string& parentPath, 00140 int tupleID, 00141 const std::string& title, 00142 const std::string& columns ); 00143 00144 00152 virtual AIDA::ITuple* book( DataObject* pParent, 00153 const std::string& objPath, 00154 const std::string& title, 00155 const std::string& columns ); 00156 00157 00165 virtual AIDA::ITuple* book( DataObject* pParent, 00166 int tupleID, 00167 const std::string& title, 00168 const std::string& columns ); 00169 00170 00177 virtual StatusCode registerObject( const std::string& dirPath, 00178 const std::string& objPath, 00179 AIDA::ITuple* tObj ); 00180 00181 00188 virtual StatusCode registerObject( DataObject* pParent, 00189 const std::string& objPath, 00190 AIDA::ITuple* tObj ); 00191 00192 00197 virtual StatusCode unregisterObject( AIDA::ITuple* tObj ); 00198 00199 00205 virtual StatusCode unregisterObject( AIDA::ITuple* tObj, 00206 const std::string& objPath ); 00207 00208 00214 virtual StatusCode retrieveObject( const std::string& fullPath, 00215 AIDA::ITuple*& tObj ); 00216 00217 00224 virtual StatusCode retrieveObject( const std::string& parentPath, 00225 const std::string& objPath, 00226 AIDA::ITuple*& tObj ); 00227 00228 00235 virtual StatusCode retrieveObject( DataObject* pParent, 00236 const std::string& objPath, 00237 AIDA::ITuple*& tObj ); 00238 00239 00245 virtual StatusCode findObject( const std::string& fullPath, 00246 AIDA::ITuple*& tObj ); 00247 00254 virtual StatusCode findObject( IRegistry* pDirectory, 00255 const std::string& path, 00256 AIDA::ITuple*& tObj ); 00257 00264 virtual StatusCode findObject( const std::string& parentPath, 00265 const std::string& objPath, 00266 AIDA::ITuple*& tObj ); 00267 00274 virtual StatusCode findObject( DataObject* parentObj, 00275 const std::string& objPath, 00276 AIDA::ITuple*& tObj ); 00277 00282 virtual void setCriteria( AIDA::ITuple*& tObj, 00283 const std::string& criteria ); 00284 00286 virtual StatusCode myTest(); 00287 00289 //virtual std::string storeName(AIDA::ITuple*& tObj); 00290 }; 00291 00292 #endif //AIDATUPLESVC_AIDATUPLESVC_H