All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Gaudi::RootDatabaseCnv Class Reference

Statistics file converter class definition. More...

#include <Root/RootDatabaseCnv.h>

Inheritance diagram for Gaudi::RootDatabaseCnv:
Collaboration diagram for Gaudi::RootDatabaseCnv:

Public Member Functions

 RootDatabaseCnv (long typ, const CLID &, ISvcLocator *svc, RootCnvSvc *mgr)
 Initializing Constructor. More...
 
virtual ~RootDatabaseCnv ()
 Standard destructor. More...
 
virtual const std::string containerName (IRegistry *) const
 Retrieve the name of the container a given object is placed into. More...
 
virtual StatusCode createObj (IOpaqueAddress *pAddr, DataObject *&refpObj)
 Converter overrides: Create transient object from persistent data. More...
 
- Public Member Functions inherited from Gaudi::RootDirectoryCnv
 RootDirectoryCnv (long typ, const CLID &clid, ISvcLocator *svc, RootCnvSvc *mgr)
 Initializing Constructor. More...
 
virtual ~RootDirectoryCnv ()
 Standard Destructor. More...
 
virtual StatusCode fillObjRefs (IOpaqueAddress *pAddr, DataObject *pObj)
 Converter overrides: Resolve the references of the transient object. More...
 
virtual StatusCode updateObj (IOpaqueAddress *pAddr, DataObject *pObj)
 Converter overrides: Update transient object from persistent data. More...
 
virtual StatusCode updateObjRefs (IOpaqueAddress *pAddr, DataObject *pObj)
 Converter overrides: Update the references of an updated transient object. More...
 
virtual StatusCode createRep (DataObject *pObj, IOpaqueAddress *&refpAddr)
 Converter overrides: Convert the transient object to the requested representation. More...
 
virtual StatusCode fillRepRefs (IOpaqueAddress *pAddr, DataObject *pObj)
 Converter overrides: Fill references of persistent object representation. More...
 
virtual StatusCode updateRep (IOpaqueAddress *pAddr, DataObject *pObj)
 Converter overrides: Update persistent object representation. More...
 
virtual StatusCode updateRepRefs (IOpaqueAddress *pAddr, DataObject *pObj)
 Converter overrides: Update references of persistent object representation. More...
 
- Public Member Functions inherited from Gaudi::RootStatCnv
 RootStatCnv (long typ, const CLID &clid, ISvcLocator *svc, RootCnvSvc *mgr)
 Initializing Constructor. More...
 
virtual ~RootStatCnv ()
 Standard Destructor. More...
 
- Public Member Functions inherited from Gaudi::RootConverter
 RootConverter (long typ, const CLID &clid, ISvcLocator *svc, RootCnvSvc *mgr)
 Initializing Constructor. More...
 
virtual ~RootConverter ()
 Standard Destructor. More...
 
virtual long repSvcType () const
 Retrieve the class type of the data store the converter uses. More...
 
- Public Member Functions inherited from Converter
virtual StatusCode setDataProvider (IDataProviderSvc *svc)
 Set Data provider service. More...
 
virtual SmartIF
< IDataProviderSvc > & 
dataProvider () const
 Get Data provider service. More...
 
virtual StatusCode setConversionSvc (IConversionSvc *svc)
 Set conversion service the converter is connected to. More...
 
virtual SmartIF< IConversionSvc > & conversionSvc () const
 Get conversion service the converter is connected to. More...
 
virtual StatusCode setAddressCreator (IAddressCreator *creator)
 Set address creator facility. More...
 
virtual SmartIF
< IAddressCreator > & 
addressCreator () const
 Retrieve address creator facility. More...
 
virtual const CLIDobjType () const
 Retrieve the class type of objects the converter produces. More...
 
virtual long i_repSvcType () const
 Retrieve the class type of the data store the converter uses. More...
 
 Converter (long storage_type, const CLID &class_type, ISvcLocator *svc=0)
 Standard Constructor. More...
 
template<class T >
StatusCode service (const std::string &name, T *&psvc, bool createIf=false) const
 Access a service by name, creating it if it doesn't already exist. More...
 
template<class T >
StatusCode service (const std::string &type, const std::string &name, T *&psvc) const
 Access a service by name, type creating it if it doesn't already exist. More...
 
SmartIF< IServiceservice (const std::string &name, const bool createIf=true) const
 Return a pointer to the service identified by name (or "type/name") More...
 
- Public Member Functions inherited from extend_interfaces1< IConverter >
virtual ~extend_interfaces1 ()
 Virtual destructor. More...
 
- Public Member Functions inherited from IConverter
 DeclareInterfaceID (IConverter, 3, 0)
 InterfaceID. More...
 
virtual ~IConverter ()
 Virtual destructor. More...
 
- Public Member Functions inherited from IInterface
virtual void * i_cast (const InterfaceID &) const =0
 main cast function More...
 
virtual std::vector< std::string > getInterfaceNames () const =0
 Returns a vector of strings containing the names of all the implemented interfaces. More...
 
virtual unsigned long addRef ()=0
 Increment the reference count of Interface instance. More...
 
virtual unsigned long release ()=0
 Release Interface instance. More...
 
virtual unsigned long refCount () const =0
 Current reference count. More...
 
virtual StatusCode queryInterface (const InterfaceID &ti, void **pp)=0
 Set the void** to the pointer to the requested interface of the instance. More...
 
virtual ~IInterface ()
 Virtual destructor. More...
 

Additional Inherited Members

- Public Types inherited from Converter
typedef
Gaudi::PluginService::Factory
< IConverter *, ISvcLocator * > 
Factory
 
- Public Types inherited from implements1< IConverter >
typedef implements1 base_class
 Typedef to this class. More...
 
typedef extend_interfaces1
< IConverter
extend_interfaces_base
 Typedef to the base of this class. More...
 
typedef
extend_interfaces_base::ext_iids 
interfaces
 MPL set of all the implemented interfaces. More...
 
- Public Types inherited from extend_interfaces1< IConverter >
typedef IConverter::iid::iids::type ext_iids
 MPL set of interfaces extended by this one. More...
 
- Public Types inherited from IConverter
enum  Status {
  INVALID_ADDRESS = IInterface::LAST_ERROR+1, INVALID_OBJECT, NO_MEMORY, BAD_STORAGE_TYPE,
  NO_SOURCE_OBJECT, ICONVERSIONSVC_LAST_ERROR
}
 Status code. More...
 
- Public Types inherited from IInterface
enum  Status { SUCCESS = 1, NO_INTERFACE, VERSMISMATCH, LAST_ERROR }
 Return status. More...
 
typedef Gaudi::InterfaceId
< IInterface, 0, 0 > 
iid
 Interface ID. More...
 
typedef mpl::set1< iidext_iids
 Extra interfaces. More...
 
- Static Public Member Functions inherited from IInterface
static const InterfaceIDinterfaceID ()
 Return an instance of InterfaceID identifying the interface. More...
 
- Protected Member Functions inherited from Gaudi::RootStatCnv
MsgStreamlog () const
 Helper to use mesage logger. More...
 
virtual StatusCode initialize ()
 Initialize converter object. More...
 
virtual StatusCode finalize ()
 Finalize converter object. More...
 
virtual const std::string fileName (IRegistry *pReg) const
 Retrieve the name of the file a given object is placed into. More...
 
virtual const std::string topLevel (IRegistry *pReg) const
 Retrieve the full path of the file a given object is placed into. More...
 
StatusCode makeError (const std::string &msg, bool throw_exception=false) const
 Helper method to issue error messages. More...
 
StatusCode saveDescription (const std::string &path, const std::string &ident, const std::string &desc, const std::string &opt, const CLID &clid)
 Save statistics object description. More...
 
- Protected Member Functions inherited from Converter
virtual ~Converter ()
 Standard Destructor. More...
 
SmartIF< ISvcLocator > & serviceLocator () const
 Retrieve pointer to service locator. More...
 
SmartIF< IMessageSvc > & msgSvc () const
 Retrieve pointer to message service. More...
 
SmartIF< IMessageSvc > & messageService () const
 
SmartIF< IDataManagerSvc > & dataManager () const
 Get Data Manager service. More...
 
- Protected Attributes inherited from Gaudi::RootStatCnv
IDataManagerSvcm_dataMgr
 Reference to data manager service to manipulate the TES. More...
 
MsgStreamm_log
 Reference to logger object. More...
 
- Protected Attributes inherited from Gaudi::RootConverter
RootCnvSvcm_dbMgr
 Conversion service needed for proper operation to forward requests. More...
 

Detailed Description

Statistics file converter class definition.

Description: Definition of the converter to open root database files.

Author
M.Frank
Version
1.0

Definition at line 29 of file RootDatabaseCnv.h.

Constructor & Destructor Documentation

RootDatabaseCnv::RootDatabaseCnv ( long  typ,
const CLID cl,
ISvcLocator svc,
RootCnvSvc mgr 
)

Initializing Constructor.

Parameters
typ[IN] Concrete storage type of the converter
svc[IN] Pointer to service locator object
mgr[IN] Pointer to hosting conversion service
Returns
Reference to RootDatabaseCnv object

Definition at line 26 of file RootDatabaseCnv.cpp.

27 : RootDirectoryCnv(typ, cl, svc, mgr)
28 {
29 }
RootDirectoryCnv(long typ, const CLID &clid, ISvcLocator *svc, RootCnvSvc *mgr)
Initializing Constructor.
RootDatabaseCnv::~RootDatabaseCnv ( )
virtual

Standard destructor.

Definition at line 32 of file RootDatabaseCnv.cpp.

32  {
33 }

Member Function Documentation

virtual const std::string Gaudi::RootDatabaseCnv::containerName ( IRegistry ) const
inlinevirtual

Retrieve the name of the container a given object is placed into.

Parameters
pReg[IN] Pointer to registry entry.
Returns
Name of the container the object should be put to.

Reimplemented from Gaudi::RootStatCnv.

Definition at line 49 of file RootDatabaseCnv.h.

49  {
50  return "<local>";
51  }
StatusCode RootDatabaseCnv::createObj ( IOpaqueAddress pAddr,
DataObject *&  refpObj 
)
virtual

Converter overrides: Create transient object from persistent data.

Parameters
refpAddress[IN] Pointer to object address.
refpObject[OUT] Location to pointer to store data object
Returns
Status code indicating success or failure.

Reimplemented from Gaudi::RootDirectoryCnv.

Definition at line 37 of file RootDatabaseCnv.cpp.

37  {
39  if ( pAddr ) {
40  RootDataConnection* con = 0;
41  IRegistry* pReg = pAddr->registry();
42  const unsigned long* ipars = pAddr->ipar();
43  const string* spars = pAddr->par();
44  char mode = char(ipars[1]);
45  string fname = spars[0];
46  string oname = pReg->name();
47  bool recrea = mode == 'R';
48  bool create = mode == 'N';
49  bool update = mode == 'U';
50  bool read = mode == 'O';
51  const CLID& clid = objType();
52  status = StatusCode::SUCCESS;
53  string cntName = containerName(pReg);
54  if ( create ) {
56  status = saveDescription(fname, cntName, "File containing statistics results.","", clid);
57  if ( status.isSuccess() ) {
58  log() << MSG::INFO << "Opened NEW Database file:"
59  << fname << " as " << oname << endmsg;
60  }
61  }
62  else if ( update ) {
64  status = saveDescription(fname, cntName, "File containing statistics results.","", clid);
65  if ( status.isSuccess() ) {
66  log() << MSG::INFO << "Connect to existing Database file:"
67  << fname << " as " << oname << " for UPDATE" << endmsg;
68  }
69  }
70  else if ( read ) {
71  status = m_dbMgr->connectDatabase(fname,IDataConnection::READ,&con);
72  if ( status.isSuccess() ) {
73  log() << MSG::INFO << "Connect to existing Database file:"
74  << fname << " as " << oname << " for READ" << endmsg;
75  }
76  }
77  else if ( recrea ) {
79  status = saveDescription(fname, cntName, "File containing statistics results.","", clid);
80  if ( status.isSuccess() ) {
81  log() << MSG::INFO << "Recreate Database file:" << fname << " as " << oname << endmsg;
82  }
83  }
84  else {
85  log() << MSG::ERROR << "Don't know what to do:" << fname << endmsg;
86  status = StatusCode::FAILURE;
87  }
88  // Now create object
89  if ( status.isSuccess() ) {
90  NTuple::File* pFile = new NTuple::File(objType(), fname, oname);
91  pFile->setOpen(false);
92  refpObj = pFile;
93  }
94  }
95  return status;
96 }
MsgStream & log() const
Helper to use mesage logger.
Definition: RootStatCnv.h:39
virtual const std::string * par() const =0
Retrieve String parameters.
void setOpen(bool flag)
Set "open" flag.
Definition: NTuple.h:1138
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:62
RootCnvSvc * m_dbMgr
Conversion service needed for proper operation to forward requests.
Definition: RootConverter.h:37
virtual const name_type & name() const =0
Name of the directory (or key)
StatusCode connectDatabase(const std::string &dataset, int mode, RootDataConnection **con)
Connect the output file to the service with open mode.
Definition: RootCnvSvc.cpp:224
virtual const std::string containerName(IRegistry *) const
Retrieve the name of the container a given object is placed into.
virtual const CLID & objType() const
Retrieve the class type of objects the converter produces.
Definition: Converter.cpp:16
virtual IRegistry * registry() const =0
Update branch name.
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:30
StatusCode saveDescription(const std::string &path, const std::string &ident, const std::string &desc, const std::string &opt, const CLID &clid)
Save statistics object description.
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
def update
Definition: install.py:213
void ignore() const
Definition: StatusCode.h:94
Concrete implementation of the IDataConnection interface to access ROOT files.
virtual const unsigned long * ipar() const =0
Access to generic link parameters.
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
Small class representing an N tuple file in the transient store.
Definition: NTuple.h:1085

The documentation for this class was generated from the following files: