All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
NTupleSvc.h
Go to the documentation of this file.
1 // $Id: NTupleSvc.h,v 1.9 2006/11/30 14:57:04 mato Exp $
2 #ifndef GAUDI_NTUPLESVC_H
3 #define GAUDI_NTUPLESVC_H 1
4 
5 // Framework include files
8 #include "GaudiKernel/DataSvc.h"
9 
10 // STL include files
11 #include <map>
12 
13 
25 class NTupleSvc : public extends2<DataSvc, INTupleSvc, IDataSourceMgr>
26 {
27 private:
28 protected:
29  struct Connection {
33  };
34  typedef std::vector< std::string > DBaseEntries;
35  typedef std::map<std::string, Connection> Connections;
36  typedef std::pair<std::string,std::string> Prop;
37 
38 private:
39 public:
41  virtual StatusCode initialize();
43  virtual StatusCode reinitialize();
45  virtual StatusCode finalize();
47  virtual IConversionSvc* getDataLoader(IRegistry* pReg);
48 
50  virtual NTuple::Directory* createDirectory (DataObject* pParent, const std::string& title);
52  virtual NTuple::Directory* createDirectory (DataObject* pParent, long id);
54  virtual NTuple::Directory* createDirectory (const std::string& dirPath, long id);
56  virtual NTuple::Directory* createDirectory (const std::string& dirPath, const std::string& title);
58  virtual NTuple::Directory* createDirectory (const std::string& fullPath);
59 
61  virtual StatusCode create(const CLID& typ, const std::string& title, NTuple::Tuple*& refpTuple);
63  virtual NTuple::Tuple* book (const std::string& fullPath, const CLID& type, const std::string& title);
65  virtual NTuple::Tuple* book (const std::string& dirPath, const std::string& relPath, const CLID& type, const std::string& title);
67  virtual NTuple::Tuple* book (const std::string& dirPath, long id, const CLID& type, const std::string& title);
69  virtual NTuple::Tuple* book (DataObject* pParent, const std::string& relPath, const CLID& type, const std::string& title);
71  virtual NTuple::Tuple* book (DataObject* pParent, long id, const CLID& type, const std::string& title);
73  virtual NTuple::Tuple* access(const std::string& fullPath, const std::string& filename);
75  virtual StatusCode save(const std::string& fullPath);
77  virtual StatusCode save(NTuple::Tuple* tuple);
79  virtual StatusCode save(DataObject* pParent, const std::string& relPath);
81  virtual StatusCode writeRecord( NTuple::Tuple* tuple );
83  virtual StatusCode writeRecord( const std::string& fullPath );
85  virtual StatusCode writeRecord( DataObject* pParent, const std::string& relPath );
87  virtual StatusCode readRecord( NTuple::Tuple* tuple );
89  virtual StatusCode readRecord( const std::string& fullPath );
91  virtual StatusCode readRecord( DataObject* pParent, const std::string& relPath);
92 
94  virtual bool isConnected(const std::string& identifier) const;
96  virtual StatusCode connect(const std::string& ident);
98  virtual StatusCode connect(const std::string& ident, std::string& logname);
100  virtual StatusCode disconnect(const std::string& nam);
102  virtual StatusCode disconnectAll();
103 
105  NTupleSvc(const std::string& name, ISvcLocator* svc);
107  virtual ~NTupleSvc();
108 protected:
109 
111  StatusCode createService( const std::string& nam,
112  const std::string& typ,
113  const std::vector<Prop>& props,
114  IConversionSvc*& pSvc);
118  StatusCode attachTuple(const std::string& filename, const std::string& logname, const char typ, const long t);
121 
128 };
129 
130 #endif // GAUDI_NTUPLESVC_H
std::map< std::string, Connection > Connections
Definition: NTupleSvc.h:35
void releaseConnection(Connection &c)
Finalize single service.
Definition: NTupleSvc.cpp:187
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
Definition: ISvcLocator.h:26
virtual StatusCode finalize()
DataSvc overrides: stop the service.
Definition: NTupleSvc.cpp:217
virtual StatusCode save(const std::string &fullPath)
Save N tuple to disk. Must be called in order to close the ntuple file properly.
Definition: NTupleSvc.cpp:567
tuple c
Definition: gaudirun.py:341
Connection(IConversionSvc *s)
Definition: NTupleSvc.h:31
Base class used to extend a class implementing other interfaces.
Definition: extends.h:75
virtual NTuple::Directory * createDirectory(DataObject *pParent, const std::string &title)
Create Ntuple directory and register it with the data store.
Definition: NTupleSvc.cpp:462
virtual StatusCode readRecord(NTuple::Tuple *tuple)
Read single record from N tuple.
Definition: NTupleSvc.cpp:659
std::vector< std::string > DBaseEntries
Definition: NTupleSvc.h:34
StatusCode updateDirectories()
Update directory data.
Definition: NTupleSvc.cpp:127
StatusCode createService(const std::string &nam, const std::string &typ, const std::vector< Prop > &props, IConversionSvc *&pSvc)
Create conversion service.
Definition: NTupleSvc.cpp:294
string type
Definition: gaudirun.py:126
std::pair< std::string, std::string > Prop
Definition: NTupleSvc.h:36
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:30
IConversionSvc * service
Definition: NTupleSvc.h:30
virtual StatusCode reinitialize()
DataSvc overrides: reinitialize service.
Definition: NTupleSvc.cpp:102
NTupleSvc(const std::string &name, ISvcLocator *svc)
Standard Constructor.
Definition: NTupleSvc.cpp:62
The IRegistry represents the entry door to the environment any data object residing in a transient da...
Definition: IRegistry.h:22
unsigned int CLID
Class ID definition.
Definition: ClassID.h:9
virtual StatusCode connect(const std::string &ident)
Add file to list I/O list.
Definition: NTupleSvc.cpp:225
virtual NTuple::Tuple * book(const std::string &fullPath, const CLID &type, const std::string &title)
Book Ntuple and register it with the data store.
Definition: NTupleSvc.cpp:387
DBaseEntries m_input
Input streams.
Definition: NTupleSvc.h:125
virtual const std::string & name() const
Retrieve name of the service.
Definition: Service.cpp:331
Abstract base class which allows the user to interact with the actual N tuple implementation.
Definition: NTuple.h:367
virtual StatusCode writeRecord(NTuple::Tuple *tuple)
Write single record to N tuple.
Definition: NTupleSvc.cpp:611
virtual IConversionSvc * getDataLoader(IRegistry *pReg)
DataSvc overrides: Retrieve data loader.
Definition: NTupleSvc.cpp:113
NTuple service.
Definition: NTupleSvc.h:25
DBaseEntries m_output
Output streams.
Definition: NTupleSvc.h:123
string s
Definition: gaudirun.py:210
virtual NTuple::Tuple * access(const std::string &fullPath, const std::string &filename)
Access N tuple on disk.
Definition: NTupleSvc.cpp:561
virtual StatusCode create(const CLID &typ, const std::string &title, NTuple::Tuple *&refpTuple)
Create requested N tuple (Hide constructor)
Definition: NTupleSvc.cpp:366
virtual StatusCode initialize()
DataSvc overrides: Initialize the service.
Definition: NTupleSvc.cpp:76
StatusCode attachTuple(const std::string &filename, const std::string &logname, const char typ, const long t)
Attach output/input file.
Definition: NTupleSvc.cpp:494
virtual StatusCode disconnect(const std::string &nam)
Close open connection.
Definition: NTupleSvc.cpp:197
virtual StatusCode disconnectAll()
Close all open connections.
Definition: NTupleSvc.cpp:208
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:31
Small class representing an N tuple directory in the transient store.
Definition: NTuple.h:1065
virtual bool isConnected(const std::string &identifier) const
Check if a datasource is connected.
Definition: NTupleSvc.cpp:107
virtual ~NTupleSvc()
Standard Destructor.
Definition: NTupleSvc.cpp:72
Connection(const Connection &c)
Definition: NTupleSvc.h:32
Connections m_connections
Container of connection points.
Definition: NTupleSvc.h:127