00001 #ifndef GAUDIKERNEL_INTUPLESVC_H
00002 #define GAUDIKERNEL_INTUPLESVC_H
00003
00004
00005 #include "GaudiKernel/IDataProviderSvc.h"
00006 #include "GaudiKernel/ClassID.h"
00007
00008
00009
00010 namespace NTuple {
00011 class Tuple;
00012 class Directory;
00013 }
00014
00015
00016 static const InterfaceID IID_INTupleSvc(120, 1 , 0);
00017
00018
00041 class INTupleSvc : virtual public IDataProviderSvc {
00042 public:
00044 static const InterfaceID& interfaceID() { return IID_INTupleSvc; }
00046 virtual StatusCode create(const CLID& typ, const std::string& title, NTuple::Tuple*& refpTuple) = 0;
00056 virtual NTuple::Tuple* book (const std::string& fullPath, const CLID& type, const std::string& title) = 0;
00068 virtual NTuple::Tuple* book (const std::string& dirPath, const std::string& relPath, const CLID& type, const std::string& title) = 0;
00079 virtual NTuple::Tuple* book (const std::string& dirPath, long id, const CLID& type, const std::string& title) = 0;
00091 virtual NTuple::Tuple* book (DataObject* pParent, const std::string& relPath, const CLID& type, const std::string& title) = 0;
00101 virtual NTuple::Tuple* book (DataObject* pParent, long id, const CLID& type, const std::string& title) = 0;
00109 virtual NTuple::Directory* createDirectory (DataObject* pParent, const std::string& title) = 0;
00117 virtual NTuple::Directory* createDirectory (DataObject* pParent, long id) = 0;
00125 virtual NTuple::Directory* createDirectory (const std::string& dirPath, long id) = 0;
00133 virtual NTuple::Directory* createDirectory (const std::string& dirPath, const std::string& title) = 0;
00138 virtual NTuple::Directory* createDirectory (const std::string& fullPath) = 0;
00144 virtual NTuple::Tuple* access(const std::string& fullPath, const std::string& filename) = 0;
00145
00150 virtual StatusCode save(const std::string& fullPath) = 0;
00151
00156 virtual StatusCode save(NTuple::Tuple* tuple) = 0;
00157
00164 virtual StatusCode save(DataObject* pParent, const std::string& relPath) = 0;
00165
00170 virtual StatusCode writeRecord( NTuple::Tuple* tuple) = 0;
00171
00176 virtual StatusCode writeRecord(const std::string& fullPath) = 0;
00177
00184 virtual StatusCode writeRecord( DataObject* pParent, const std::string& relPath) = 0;
00185
00190 virtual StatusCode readRecord(NTuple::Tuple* tuple) = 0;
00191
00196 virtual StatusCode readRecord(const std::string& fullPath) = 0;
00197
00204 virtual StatusCode readRecord(DataObject* pParent, const std::string& relPath) = 0;
00205
00206 };
00207
00208 #endif // INTERFACES_INTUPLESVC_H