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

Data service base class. More...

Inheritance diagram for MultiStoreSvc:
Collaboration diagram for MultiStoreSvc:

Classes

struct  tagROOT
 

Public Member Functions

virtual CLID rootCLID () const
 IDataManagerSvc: Accessor for root event CLID. More...
 
std::string rootName () const
 Name for root Event. More...
 
virtual STATUS registerAddress (CSTR &path, ADDRESS *pAddr)
 IDataManagerSvc: Register object address with the data store. More...
 
virtual STATUS registerAddress (OBJECT *parent, CSTR &path, ADDRESS *pAddr)
 IDataManagerSvc: Register object address with the data store. More...
 
virtual STATUS registerAddress (IRegistry *parent, CSTR &path, ADDRESS *pAdd)
 IDataManagerSvc: Register object address with the data store. More...
 
virtual STATUS unregisterAddress (CSTR &path)
 IDataManagerSvc: Unregister object address from the data store. More...
 
virtual STATUS unregisterAddress (OBJECT *pParent, CSTR &path)
 IDataManagerSvc: Unregister object address from the data store. More...
 
virtual STATUS unregisterAddress (IRegistry *pParent, CSTR &path)
 IDataManagerSvc: Unregister object address from the data store. More...
 
virtual STATUS objectLeaves (const OBJECT *pObject, std::vector< IRegistry * > &leaves)
 Explore the object store: retrieve all leaves attached to the object. More...
 
virtual STATUS objectLeaves (const IRegistry *pObject, std::vector< IRegistry * > &leaves)
 Explore the object store: retrieve all leaves attached to the object. More...
 
virtual STATUS objectParent (const OBJECT *pObject, IRegistry *&refpParent)
 IDataManagerSvc: Explore the object store: retrieve the object's parent. More...
 
virtual STATUS objectParent (const IRegistry *pObject, IRegistry *&refpParent)
 IDataManagerSvc: Explore the object store: retrieve the object's parent. More...
 
virtual STATUS clearSubTree (CSTR &path)
 Remove all data objects below the sub tree identified. More...
 
virtual STATUS clearSubTree (OBJECT *pObject)
 Remove all data objects below the sub tree identified. More...
 
virtual STATUS clearStore ()
 IDataManagerSvc: Remove all data objects in the data store. More...
 
virtual STATUS traverseSubTree (CSTR &path, AGENT *pAgent)
 Analyze by traversing all data objects below the sub tree. More...
 
virtual STATUS traverseSubTree (OBJECT *pObject, AGENT *pAgent)
 IDataManagerSvc: Analyze by traversing all data objects below the sub tree. More...
 
virtual STATUS traverseTree (AGENT *pAgent)
 IDataManagerSvc: Analyze by traversing all data objects in the data store. More...
 
virtual STATUS setRoot (CSTR &path, OBJECT *pObj)
 Initialize data store for new event by giving new event path and root object. More...
 
virtual STATUS setRoot (CSTR &path, ADDRESS *pAddr)
 Initialize data store for new event by giving new event path and address of root object. More...
 
virtual STATUS setDataLoader (IConversionSvc *pDataLoader)
 IDataManagerSvc: Pass a default data loader to the service. More...
 
virtual STATUS addPreLoadItem (const DataStoreItem &item)
 Add an item to the preload list. More...
 
virtual STATUS addPreLoadItem (CSTR &item)
 Add an item to the preload list. More...
 
virtual STATUS removePreLoadItem (const DataStoreItem &item)
 Remove an item from the preload list. More...
 
virtual STATUS removePreLoadItem (CSTR &item)
 Add an item to the preload list. More...
 
virtual STATUS resetPreLoad ()
 Clear the preload list. More...
 
virtual STATUS preLoad ()
 load all preload items of the list More...
 
virtual STATUS registerObject (CSTR &path, OBJECT *pObj)
 Register object with the data store. More...
 
virtual STATUS registerObject (CSTR &parent, CSTR &obj, OBJECT *pObj)
 Register object with the data store. More...
 
virtual STATUS registerObject (CSTR &parent, int item, OBJECT *pObj)
 Register object with the data store. More...
 
virtual STATUS registerObject (OBJECT *parent, CSTR &obj, OBJECT *pObj)
 Register object with the data store. More...
 
virtual STATUS registerObject (OBJECT *parent, int obj, OBJECT *pObj)
 Register object with the data store. More...
 
virtual STATUS unregisterObject (CSTR &path)
 Unregister object from the data store. More...
 
virtual STATUS unregisterObject (CSTR &parent, CSTR &obj)
 Unregister object from the data store. More...
 
virtual STATUS unregisterObject (CSTR &parent, int obj)
 Unregister object from the data store. More...
 
virtual STATUS unregisterObject (OBJECT *pObj)
 Unregister object from the data store. More...
 
virtual STATUS unregisterObject (OBJECT *pObj, CSTR &path)
 Unregister object from the data store. More...
 
virtual STATUS unregisterObject (OBJECT *pObj, int item)
 Unregister object from the data store. More...
 
virtual STATUS retrieveObject (IRegistry *parent, CSTR &path, OBJECT *&pObj)
 Retrieve object from data store. More...
 
virtual STATUS retrieveObject (CSTR &path, OBJECT *&pObj)
 Retrieve object identified by its full path from the data store. More...
 
virtual STATUS retrieveObject (CSTR &parent, CSTR &path, OBJECT *&pObj)
 Retrieve object from data store. More...
 
virtual STATUS retrieveObject (CSTR &parent, int item, OBJECT *&pObj)
 Retrieve object from data store. More...
 
virtual STATUS retrieveObject (OBJECT *parent, CSTR &path, OBJECT *&pObj)
 Retrieve object from data store. More...
 
virtual STATUS retrieveObject (OBJECT *parent, int item, OBJECT *&pObj)
 Retrieve object from data store. More...
 
virtual STATUS findObject (CSTR &path, OBJECT *&pObj)
 Find object identified by its full path in the data store. More...
 
virtual STATUS findObject (IRegistry *parent, CSTR &path, OBJECT *&pObj)
 Find object identified by its full path in the data store. More...
 
virtual STATUS findObject (CSTR &parent, CSTR &path, OBJECT *&pObj)
 Find object in the data store. More...
 
virtual STATUS findObject (CSTR &parent, int item, OBJECT *&pObject)
 Find object in the data store. More...
 
virtual STATUS findObject (OBJECT *parent, CSTR &path, OBJECT *&pObject)
 Find object in the data store. More...
 
virtual STATUS findObject (OBJECT *parent, int item, OBJECT *&pObject)
 Find object in the data store. More...
 
virtual STATUS linkObject (IRegistry *from, CSTR &objPath, OBJECT *to)
 Add a link to another object. More...
 
virtual STATUS linkObject (CSTR &from, CSTR &objPath, OBJECT *to)
 Add a link to another object. More...
 
virtual STATUS linkObject (OBJECT *from, CSTR &objPath, OBJECT *to)
 Add a link to another object. More...
 
virtual STATUS linkObject (CSTR &fullPath, OBJECT *to)
 Add a link to another object. More...
 
virtual STATUS unlinkObject (IRegistry *from, CSTR &objPath)
 Remove a link to another object. More...
 
virtual STATUS unlinkObject (CSTR &from, CSTR &objPath)
 Remove a link to another object. More...
 
virtual STATUS unlinkObject (OBJECT *from, CSTR &objPath)
 Remove a link to another object. More...
 
virtual STATUS unlinkObject (CSTR &path)
 Remove a link to another object. More...
 
virtual STATUS updateObject (IRegistry *pDirectory)
 Update object identified by its directory entry. More...
 
virtual STATUS updateObject (CSTR &path)
 Update object. More...
 
virtual STATUS updateObject (OBJECT *pObj)
 Update object. More...
 
virtual STATUS updateObject (CSTR &parent, CSTR &updatePath)
 Update object. More...
 
virtual STATUS updateObject (OBJECT *parent, CSTR &updatePath)
 Update object. More...
 
virtual STATUS create (CSTR &nam, CSTR &typ)
 Create a partition object. The name identifies the partition uniquely. More...
 
virtual STATUS create (CSTR &nam, CSTR &typ, IInterface *&pPartition)
 Create a partition object. The name identifies the partition uniquely. More...
 
virtual STATUS drop (CSTR &nam)
 Drop a partition object. The name identifies the partition uniquely. More...
 
virtual STATUS drop (IInterface *pPartition)
 Drop a partition object. The name identifies the partition uniquely. More...
 
virtual STATUS activate (CSTR &nam)
 Activate a partition object. The name identifies the partition uniquely. More...
 
virtual STATUS activate (IInterface *pPartition)
 Activate a partition object. More...
 
virtual STATUS get (CSTR &nam, IInterface *&pPartition) const
 Access a partition object. The name identifies the partition uniquely. More...
 
virtual StatusCode activePartition (std::string &nam, IInterface *&pPartition) const
 Access the active partition object. More...
 
STATUS attachServices ()
 
STATUS detachServices ()
 
virtual STATUS initialize ()
 Service initialisation. More...
 
virtual STATUS reinitialize ()
 Service initialisation. More...
 
virtual STATUS finalize ()
 Service initialisation. More...
 
 MultiStoreSvc (CSTR &name, ISvcLocator *svc)
 Standard Constructor. More...
 
virtual ~MultiStoreSvc ()
 Standard Destructor. More...
 
STATUS preparePartitions ()
 Prepare partition for usage. More...
 
STATUS clearPartitions ()
 Clear all partitions. More...
 
STATUS makePartitions ()
 Create all partitions according to job options. More...
 
- Public Member Functions inherited from extends3< Service, IDataProviderSvc, IDataManagerSvc, IPartitionControl >
 extends3 (A1 a1, A2 a2, A3 a3)
 Templated constructor with 3 arguments. More...
 
 extends3 (A1 a1, A2 a2)
 Templated constructor with 2 arguments. More...
 
 extends3 (A1 a1)
 Templated constructor with 1 argument. More...
 
 extends3 ()
 Default constructor. More...
 
virtual void * i_cast (const InterfaceID &tid) const
 Implementation of IInterface::i_cast. More...
 
virtual StatusCode queryInterface (const InterfaceID &ti, void **pp)
 Implementation of IInterface::queryInterface. More...
 
virtual std::vector< std::string > getInterfaceNames () const
 Implementation of IInterface::getInterfaceNames. More...
 
virtual ~extends3 ()
 Virtual destructor. More...
 
- Public Member Functions inherited from Service
virtual unsigned long release ()
 Release Interface instance. More...
 
virtual const std::string & name () const
 Retrieve name of the service. More...
 
virtual StatusCode configure ()
 Configuration (from OFFLINE to CONFIGURED). More...
 
virtual StatusCode start ()
 Start (from INITIALIZED to RUNNING). More...
 
virtual StatusCode stop ()
 Stop (from RUNNING to INITIALIZED). More...
 
virtual StatusCode terminate ()
 Initialization (from CONFIGURED to OFFLINE). More...
 
virtual Gaudi::StateMachine::State FSMState () const
 Get the current state. More...
 
virtual Gaudi::StateMachine::State targetFSMState () const
 When we are in the middle of a transition, get the state where the transition is leading us. More...
 
virtual StatusCode restart ()
 Initialization (from RUNNING to RUNNING, via INITIALIZED). More...
 
virtual StatusCode sysInitialize ()
 Initialize Service. More...
 
virtual StatusCode sysStart ()
 Initialize Service. More...
 
virtual StatusCode sysStop ()
 Initialize Service. More...
 
virtual StatusCode sysFinalize ()
 Finalize Service. More...
 
virtual StatusCode sysReinitialize ()
 Re-initialize the Service. More...
 
virtual StatusCode sysRestart ()
 Re-initialize the Service. More...
 
virtual StatusCode setProperty (const Property &p)
 Set the property by property. More...
 
virtual StatusCode setProperty (const std::string &s)
 Set the property by string. More...
 
virtual StatusCode setProperty (const std::string &n, const std::string &v)
 Set the property by std::string. More...
 
virtual StatusCode getProperty (Property *p) const
 Get the property by property. More...
 
virtual const PropertygetProperty (const std::string &name) const
 Get the property by name. More...
 
virtual StatusCode getProperty (const std::string &n, std::string &v) const
 Get the property by std::string. More...
 
virtual const std::vector
< Property * > & 
getProperties () const
 Get list of properties. More...
 
template<class TYPE >
StatusCode setProperty (const std::string &name, const TYPE &value)
 set the property form the value More...
 
 Service (const std::string &name, ISvcLocator *svcloc)
 Standard Constructor. More...
 
SmartIF< ISvcLocator > & serviceLocator () const
 Retrieve pointer to service locator. More...
 
StatusCode setProperties ()
 Method for setting declared properties to the values specified for the job. More...
 
template<class T >
StatusCode service (const std::string &name, const T *&psvc, bool createIf=true) const
 Access a service by name, creating it if it doesn't already exist. More...
 
template<class T >
StatusCode service (const std::string &name, T *&psvc, bool createIf=true) const
 
template<class T >
StatusCode service (const std::string &svcType, const std::string &svcName, T *&psvc) const
 Access a service by name and type, creating it if it doesn't already exist. More...
 
template<class T >
PropertydeclareProperty (const std::string &name, T &property, const std::string &doc="none") const
 Declare the named property. More...
 
PropertydeclareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="") const
 Declare remote named properties. More...
 
SmartIF< IAuditorSvc > & auditorSvc () const
 The standard auditor service.May not be invoked before sysInitialize() has been invoked. More...
 
- Public Member Functions inherited from CommonMessaging< implements3< IService, IProperty, IStateful > >
 CommonMessaging (const A1 &a1, const A2 &a2, const A3 &a3)
 Templated constructor with 3 arguments. More...
 
 CommonMessaging (const A1 &a1, const A2 &a2)
 Templated constructor with 2 arguments. More...
 
 CommonMessaging (const A1 &a1)
 Templated constructor with 1 argument. More...
 
 CommonMessaging ()
 Default constructor. More...
 
virtual ~CommonMessaging ()
 Virtual destructor. More...
 
SmartIF< IMessageSvc > & msgSvc () const
 The standard message service. More...
 
MsgStreammsgStream () const
 Return an uninitialized MsgStream. More...
 
MsgStreammsgStream (const MSG::Level level) const
 Predefined configurable message stream for the efficient printouts. More...
 
MsgStreamalways () const
 shortcut for the method msgStream(MSG::ALWAYS) More...
 
MsgStreamfatal () const
 shortcut for the method msgStream(MSG::FATAL) More...
 
MsgStreamerr () const
 shortcut for the method msgStream(MSG::ERROR) More...
 
MsgStreamerror () const
 shortcut for the method msgStream(MSG::ERROR) More...
 
MsgStreamwarning () const
 shortcut for the method msgStream(MSG::WARNING) More...
 
MsgStreaminfo () const
 shortcut for the method msgStream(MSG::INFO) More...
 
MsgStreamdebug () const
 shortcut for the method msgStream(MSG::DEBUG) More...
 
MsgStreamverbose () const
 shortcut for the method msgStream(MSG::VERBOSE) More...
 
MsgStreammsg () const
 shortcut for the method msgStream(MSG::INFO) More...
 
MSG::Level msgLevel () const
 get the output level from the embedded MsgStream More...
 
bool msgLevel (MSG::Level lvl) const
 get the output level from the embedded MsgStream More...
 
- Public Member Functions inherited from extend_interfaces3< IService, IProperty, IStateful >
virtual ~extend_interfaces3 ()
 Virtual destructor. More...
 
- Public Member Functions inherited from IService
 DeclareInterfaceID (IService, 3, 0)
 InterfaceID. More...
 
virtual ~IService ()
 virtual destructor More...
 
- Public Member Functions inherited from INamedInterface
 DeclareInterfaceID (INamedInterface, 1, 0)
 InterfaceID. More...
 
virtual ~INamedInterface ()
 Virtual destructor (always needed for abstract classes). More...
 
- Public Member Functions inherited from IInterface
virtual unsigned long addRef ()=0
 Increment the reference count of Interface instance. More...
 
virtual unsigned long refCount () const =0
 Current reference count. More...
 
virtual ~IInterface ()
 Virtual destructor. More...
 
- Public Member Functions inherited from IProperty
 DeclareInterfaceID (IProperty, 2, 0)
 InterfaceID. More...
 
- Public Member Functions inherited from IStateful
 DeclareInterfaceID (IStateful, 1, 0)
 InterfaceID. More...
 
virtual ~IStateful ()
 
- Public Member Functions inherited from extend_interfaces3< IDataProviderSvc, IDataManagerSvc, IPartitionControl >
virtual ~extend_interfaces3 ()
 Virtual destructor. More...
 
- Public Member Functions inherited from IDataProviderSvc
 DeclareInterfaceID (IDataProviderSvc, 3, 0)
 InterfaceID. More...
 
virtual StatusCode registerObject (const std::string &fullPath, DataObject *pObject)=0
 Register object with the data store. More...
 
virtual StatusCode registerObject (const std::string &parentPath, const std::string &objectPath, DataObject *pObject)=0
 Register object with the data store. More...
 
virtual StatusCode registerObject (const std::string &parentPath, int item, DataObject *pObject)=0
 Register object with the data store. More...
 
virtual StatusCode registerObject (DataObject *parentObj, const std::string &objectPath, DataObject *pObject)=0
 Register object with the data store. More...
 
virtual StatusCode unregisterObject (const std::string &fullPath)=0
 Unregister object from the data store. More...
 
virtual StatusCode unregisterObject (const std::string &parentPath, const std::string &objPath)=0
 Unregister object from the data store. More...
 
virtual StatusCode unregisterObject (const std::string &parentPath, int item)=0
 Unregister object from the data store. More...
 
virtual StatusCode unregisterObject (DataObject *pParent, const std::string &objPath)=0
 Unregister object from the data store. More...
 
virtual StatusCode retrieveObject (IRegistry *pDirectory, const std::string &path, DataObject *&pObject)=0
 Retrieve object identified by its directory entry. More...
 
virtual StatusCode retrieveObject (const std::string &fullPath, DataObject *&pObject)=0
 Retrieve object identified by its full path from the data store. More...
 
virtual StatusCode retrieveObject (const std::string &parentPath, const std::string &objectPath, DataObject *&pObject)=0
 Retrieve object from data store. More...
 
virtual StatusCode retrieveObject (const std::string &parentPath, int item, DataObject *&pObject)=0
 Retrieve object from data store. More...
 
virtual StatusCode retrieveObject (DataObject *parentObj, const std::string &objectPath, DataObject *&pObject)=0
 Retrieve object from data store. More...
 
virtual StatusCode findObject (IRegistry *pDirectory, const std::string &path, DataObject *&pObject)=0
 Find object identified by its directory entry. More...
 
virtual StatusCode findObject (const std::string &fullPath, DataObject *&pObject)=0
 Find object identified by its full path in the data store. More...
 
virtual StatusCode findObject (const std::string &parentPath, const std::string &objectPath, DataObject *&pObject)=0
 Find object identified by its parent object and the path to the object relative to the parent. More...
 
virtual StatusCode findObject (const std::string &parentPath, int item, DataObject *&pObject)=0
 Find object identified by its parent object and an integer identifier in the data store. More...
 
virtual StatusCode findObject (DataObject *pNode, const std::string &objectPath, DataObject *&pObject)=0
 Find object identified by its parent object and the path to the object relative to the parent. More...
 
virtual StatusCode updateObject (const std::string &fullPath)=0
 Update object identified by its full path in the data store. More...
 
virtual StatusCode updateObject (const std::string &parentPath, const std::string &updatePath)=0
 Update object identified by its parent's path and the path relative to the parent. More...
 
virtual StatusCode updateObject (DataObject *pParent, const std::string &updatePath)=0
 Update object identified by its parent's pointer and the path relative to the parent. More...
 
virtual StatusCode addPreLoadItem (const std::string &itemPath)=0
 Add an item to the preload list. More...
 
virtual StatusCode removePreLoadItem (const std::string &itemPath)=0
 Remove an item from the preload list. More...
 
virtual StatusCode linkObject (IRegistry *from, const std::string &objPath, DataObject *toObj)=0
 Add a link to another object. More...
 
virtual StatusCode linkObject (const std::string &fromPath, const std::string &objPath, DataObject *toObj)=0
 Add a link to another object. More...
 
virtual StatusCode linkObject (DataObject *fromObj, const std::string &objPath, DataObject *toObj)=0
 Add a link to another object. More...
 
virtual StatusCode linkObject (const std::string &fullPath, DataObject *toObj)=0
 Add a link to another object. More...
 
virtual StatusCode unlinkObject (IRegistry *from, const std::string &objPath)=0
 Remove a link to another object. More...
 
virtual StatusCode unlinkObject (const std::string &fromPath, const std::string &objPath)=0
 Remove a link to another object. More...
 
virtual StatusCode unlinkObject (DataObject *fromObj, const std::string &objPath)=0
 Remove a link to another object. More...
 
virtual StatusCode unlinkObject (const std::string &fullPath)=0
 Remove a link to another object. More...
 
virtual ~IDataProviderSvc ()
 virtual destructor More...
 
- Public Member Functions inherited from IDataManagerSvc
 DeclareInterfaceID (IDataManagerSvc, 2, 0)
 InterfaceID. More...
 
virtual StatusCode clearSubTree (const std::string &sub_path)=0
 Remove all data objects below the sub tree identified by its full path name. More...
 
virtual StatusCode traverseSubTree (const std::string &sub_path, IDataStoreAgent *pAgent)=0
 Analyse by traversing all data objects below the sub tree identified by its full path name. More...
 
virtual StatusCode setRoot (const std::string &root_name, DataObject *pObject)=0
 Initialize data store for new event by giving new event path. More...
 
virtual StatusCode setRoot (const std::string &root_path, IOpaqueAddress *pRootAddr)=0
 Initialize data store for new event by giving new event path. More...
 
virtual StatusCode registerAddress (const std::string &fullPath, IOpaqueAddress *pAddress)=0
 Register object address with the data store. More...
 
virtual StatusCode registerAddress (DataObject *parentObj, const std::string &objectPath, IOpaqueAddress *pAddress)=0
 Register object address with the data store. More...
 
virtual StatusCode registerAddress (IRegistry *parentObj, const std::string &objectPath, IOpaqueAddress *pAddress)=0
 Register object address with the data store. More...
 
virtual StatusCode unregisterAddress (const std::string &fullPath)=0
 Unregister object address from the data store. More...
 
virtual StatusCode unregisterAddress (DataObject *pParent, const std::string &objPath)=0
 Unregister object address from the data store. More...
 
virtual StatusCode unregisterAddress (IRegistry *pParent, const std::string &objPath)=0
 Unregister object address from the data store. More...
 
- Public Member Functions inherited from IPartitionControl
 DeclareInterfaceID (IPartitionControl, 1, 0)
 InterfaceID. More...
 
virtual StatusCode create (const std::string &name, const std::string &type)=0
 Create a partition object. The name identifies the partition uniquely. More...
 
virtual StatusCode create (const std::string &name, const std::string &type, IInterface *&pPartition)=0
 Create a partition object. The name identifies the partition uniquely. More...
 
virtual StatusCode drop (const std::string &name)=0
 Drop a partition object. The name identifies the partition uniquely. More...
 
virtual StatusCode activate (const std::string &name)=0
 Activate a partition object. The name identifies the partition uniquely. More...
 
virtual StatusCode get (const std::string &name, IInterface *&pPartition) const =0
 Access a partition object. The name identifies the partition uniquely. More...
 

Protected Types

enum  { no_type = 0, address_type = 1, object_type = 2 }
 Root type (address or object) More...
 
typedef std::vector< std::string > PartitionDefs
 
typedef std::map< std::string,
Partition > 
Partitions
 

Protected Attributes

CLID m_rootCLID
 Integer Property corresponding to CLID of root entry. More...
 
std::string m_rootName
 Name of root event. More...
 
std::string m_loader
 Data loader name. More...
 
IConversionSvcm_dataLoader
 Pointer to data loader service. More...
 
IAddressCreatorm_addrCreator
 Reference to address creator. More...
 
struct MultiStoreSvc::tagROOT m_root
 
Partition m_current
 Current partition. More...
 
Partitions m_partitions
 Datastore partitions. More...
 
PartitionDefs m_partitionDefs
 Datastore partition definitions. More...
 
std::string m_defaultPartition
 Default partition. More...
 
- Protected Attributes inherited from Service
IntegerProperty m_outputLevel
 Service output level. More...
 
Gaudi::StateMachine::State m_state
 Service state. More...
 
Gaudi::StateMachine::State m_targetState
 Service state. More...
 
- Protected Attributes inherited from CommonMessaging< implements3< IService, IProperty, IStateful > >
SmartIF< IMessageSvcm_msgsvc
 Pointer to the message service;. More...
 
std::auto_ptr< MsgStreamm_msgStream
 The predefined message stream. More...
 
bool m_streamWithService
 Flag to create a new MsgStream if it was created without the message service. More...
 

Additional Inherited Members

- Public Types inherited from extends3< Service, IDataProviderSvc, IDataManagerSvc, IPartitionControl >
typedef extends3 base_class
 Typedef to this class. More...
 
typedef extend_interfaces3
< IDataProviderSvc,
IDataManagerSvc,
IPartitionControl
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 Service
typedef
Gaudi::PluginService::Factory2
< IService *, const
std::string &, ISvcLocator * > 
Factory
 
- Public Types inherited from CommonMessaging< implements3< IService, IProperty, IStateful > >
typedef CommonMessaging base_class
 
- Public Types inherited from implements3< IService, IProperty, IStateful >
typedef implements3 base_class
 Typedef to this class. More...
 
typedef extend_interfaces3
< IService, IProperty,
IStateful
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_interfaces3< IService, IProperty, IStateful >
typedef mpl::fold< typename
IService::iid::iids::type,
typename mpl::fold< typename
IProperty::iid::iids::type,
typename
IStateful::iid::iids::type,
mpl::insert< mpl::_1, mpl::_2 >
>::type, mpl::insert< mpl::_1,
mpl::_2 > >::type 
ext_iids
 MPL set of interfaces extended by this one. 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...
 
- Public Types inherited from extend_interfaces3< IDataProviderSvc, IDataManagerSvc, IPartitionControl >
typedef mpl::fold< typename
IDataProviderSvc::iid::iids::type,
typename mpl::fold< typename
IDataManagerSvc::iid::iids::type,
typename
IPartitionControl::iid::iids::type,
mpl::insert< mpl::_1, mpl::_2 >
>::type, mpl::insert< mpl::_1,
mpl::_2 > >::type 
ext_iids
 MPL set of interfaces extended by this one. More...
 
- Public Types inherited from IDataProviderSvc
enum  { SEPARATOR = '/' }
 
enum  Status {
  IDataProviderSvc_NO_ERROR = 1, DOUBL_OBJ_PATH, INVALID_OBJ_PATH, INVALID_ROOT,
  INVALID_OBJECT, INVALID_PARENT, OBJ_NOT_LOADED, NO_DATA_LOADER,
  INVALID_OBJ_ADDR, DIR_NOT_EMPTY, NO_MORE_LEVELS, NO_ACCESS,
  LAST
}
 Status code definitions. More...
 
- Public Types inherited from IPartitionControl
enum  { PARTITION_NOT_PRESENT = 2, PARTITION_EXISTS = 4, NO_ACTIVE_PARTITION = 6 }
 
- Static Public Member Functions inherited from IInterface
static const InterfaceIDinterfaceID ()
 Return an instance of InterfaceID identifying the interface. More...
 
- Protected Member Functions inherited from Service
virtual ~Service ()
 Standard Destructor. More...
 
int outputLevel () const
 get the Service's output level More...
 
- Protected Member Functions inherited from CommonMessaging< implements3< IService, IProperty, IStateful > >
void updateMsgStreamOutputLevel (int level)
 Update the output level of the cached MsgStream. More...
 

Detailed Description

Data service base class.

A data service manages the transient data stores and implements the IDataProviderSvc, the IDataManagerSvc and the IPartitionControl interfaces.

Author
Markus Frank
Sebastien Ponce
Version
1.0

Definition at line 83 of file MultiStoreSvc.cpp.

Member Typedef Documentation

typedef std::vector<std::string> MultiStoreSvc::PartitionDefs
protected

Definition at line 89 of file MultiStoreSvc.cpp.

typedef std::map<std::string, Partition> MultiStoreSvc::Partitions
protected

Definition at line 90 of file MultiStoreSvc.cpp.

Member Enumeration Documentation

anonymous enum
protected

Root type (address or object)

Enumerator
no_type 
address_type 
object_type 

Definition at line 102 of file MultiStoreSvc.cpp.

Constructor & Destructor Documentation

MultiStoreSvc::MultiStoreSvc ( CSTR name,
ISvcLocator svc 
)
inline

Standard Constructor.

Definition at line 657 of file MultiStoreSvc.cpp.

658  : base_class(name,svc), m_rootCLID(110), m_rootName("/Event"),
660  {
661  m_dataLoader = 0;
662  declareProperty("RootCLID", m_rootCLID);
663  declareProperty("RootName", m_rootName);
664  declareProperty("Partitions", m_partitionDefs);
665  declareProperty("DataLoader", m_loader="EventPersistencySvc");
666  declareProperty("DefaultPartition", m_defaultPartition="Default");
667  }
PartitionDefs m_partitionDefs
Datastore partition definitions.
std::string m_rootName
Name of root event.
IConversionSvc * m_dataLoader
Pointer to data loader service.
IAddressCreator * m_addrCreator
Reference to address creator.
std::string m_loader
Data loader name.
virtual const std::string & name() const
Retrieve name of the service.
Definition: Service.cpp:331
CLID m_rootCLID
Integer Property corresponding to CLID of root entry.
Property * declareProperty(const std::string &name, T &property, const std::string &doc="none") const
Declare the named property.
Definition: Service.h:209
std::string m_defaultPartition
Default partition.
virtual MultiStoreSvc::~MultiStoreSvc ( )
inlinevirtual

Standard Destructor.

Definition at line 670 of file MultiStoreSvc.cpp.

670  {
671  setDataLoader(0).ignore();
672  resetPreLoad().ignore();
673  clearStore().ignore();
675  }
virtual STATUS resetPreLoad()
Clear the preload list.
virtual STATUS setDataLoader(IConversionSvc *pDataLoader)
IDataManagerSvc: Pass a default data loader to the service.
virtual STATUS clearStore()
IDataManagerSvc: Remove all data objects in the data store.
STATUS clearPartitions()
Clear all partitions.
void ignore() const
Definition: StatusCode.h:94

Member Function Documentation

virtual STATUS MultiStoreSvc::activate ( CSTR nam)
inlinevirtual

Activate a partition object. The name identifies the partition uniquely.

Definition at line 517 of file MultiStoreSvc.cpp.

517  {
518  Partitions::const_iterator i = m_partitions.find(nam);
519  if ( i != m_partitions.end() ) {
520  m_current = (*i).second;
521  return STATUS::SUCCESS;
522  }
523  m_current = Partition();
524  return PARTITION_NOT_PRESENT;
525  }
Partitions m_partitions
Datastore partitions.
Partition m_current
Current partition.
list i
Definition: ana.py:128
virtual STATUS MultiStoreSvc::activate ( IInterface pPartition)
inlinevirtual

Activate a partition object.

Implements IPartitionControl.

Definition at line 528 of file MultiStoreSvc.cpp.

528  {
529  SmartIF<IDataProviderSvc> provider(pPartition);
530  m_current = Partition();
531  if ( provider ) {
532  Partitions::iterator i;
533  for(i=m_partitions.begin(); i != m_partitions.end(); ++i) {
534  if ( (*i).second.dataProvider == provider ) {
535  m_current = (*i).second;
536  return STATUS::SUCCESS;
537  }
538  }
539  return PARTITION_NOT_PRESENT;
540  }
541  return NO_INTERFACE;
542  }
Partitions m_partitions
Datastore partitions.
Requested interface is not available.
Definition: IInterface.h:221
Partition m_current
Current partition.
list i
Definition: ana.py:128
virtual StatusCode MultiStoreSvc::activePartition ( std::string &  nam,
IInterface *&  pPartition 
) const
inlinevirtual

Access the active partition object.

Implements IPartitionControl.

Definition at line 556 of file MultiStoreSvc.cpp.

556  {
557  if ( m_current.dataProvider ) {
558  nam = m_current.name;
559  pPartition = m_current.dataProvider;
560  return STATUS::SUCCESS;
561  }
562  nam = "";
563  pPartition = 0;
564  return NO_ACTIVE_PARTITION;
565  }
Partition m_current
Current partition.
virtual STATUS MultiStoreSvc::addPreLoadItem ( const DataStoreItem item)
inlinevirtual

Add an item to the preload list.

Implements IDataProviderSvc.

Definition at line 274 of file MultiStoreSvc.cpp.

274  {
275  return _CALL(m_current.dataProvider, addPreLoadItem, (item));
276  }
virtual STATUS addPreLoadItem(const DataStoreItem &item)
Add an item to the preload list.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
virtual STATUS MultiStoreSvc::addPreLoadItem ( CSTR item)
inlinevirtual

Add an item to the preload list.

Definition at line 278 of file MultiStoreSvc.cpp.

278  {
279  return _CALL(m_current.dataProvider, addPreLoadItem, (item));
280  }
virtual STATUS addPreLoadItem(const DataStoreItem &item)
Add an item to the preload list.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
tuple item
print s1,s2
Definition: ana.py:146
STATUS MultiStoreSvc::attachServices ( )
inline

Definition at line 567 of file MultiStoreSvc.cpp.

567  {
568  MsgStream log(msgSvc(), name());
569  // Attach address creator facility
571  if (!sc.isSuccess()) {
572  log << MSG::ERROR
573  << "Failed to retrieve data loader "
574  << "\"" << m_loader << "\"" << endmsg;
575  return sc;
576  }
577  IConversionSvc* dataLoader = 0;
578  // Attach data loader facility
579  sc = service(m_loader, dataLoader, true);
580  if (!sc.isSuccess()) {
581  log << MSG::ERROR << "Failed to retrieve data loader "
582  << "\"" << m_loader << "\"" << endmsg;
583  return sc;
584  }
585  sc = setDataLoader(dataLoader);
586  dataLoader->release();
587  if (!sc.isSuccess()) {
588  log << MSG::ERROR << "Failed to set data loader "
589  << "\"" << m_loader << "\"" << endmsg;
590  return sc;
591  }
592  return sc;
593  }
Definition of the MsgStream class used to transmit messages.
Definition: MsgStream.h:24
virtual STATUS setDataLoader(IConversionSvc *pDataLoader)
IDataManagerSvc: Pass a default data loader to the service.
SmartIF< IMessageSvc > & msgSvc() const
The standard message service.
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:62
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:30
IAddressCreator * m_addrCreator
Reference to address creator.
std::string m_loader
Data loader name.
virtual const std::string & name() const
Retrieve name of the service.
Definition: Service.cpp:331
virtual unsigned long release()=0
Release Interface instance.
StatusCode service(const std::string &name, const T *&psvc, bool createIf=true) const
Access a service by name, creating it if it doesn't already exist.
Definition: Service.h:140
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:243
STATUS MultiStoreSvc::clearPartitions ( )
inline

Clear all partitions.

Definition at line 717 of file MultiStoreSvc.cpp.

717  {
718  Partitions::iterator i;
719  for(i=m_partitions.begin(); i != m_partitions.end(); ++i) {
720  (*i).second.dataManager->clearStore().ignore();
721  (*i).second.dataProvider->release();
722  (*i).second.dataManager->release();
723  }
724  m_partitions.clear();
725  return STATUS::SUCCESS;
726  }
Partitions m_partitions
Datastore partitions.
list i
Definition: ana.py:128
virtual STATUS MultiStoreSvc::clearStore ( )
inlinevirtual

IDataManagerSvc: Remove all data objects in the data store.

Implements IDataManagerSvc.

Definition at line 184 of file MultiStoreSvc.cpp.

184  {
185  Partitions::iterator i;
186  for(i=m_partitions.begin(); i != m_partitions.end(); ++i) {
187  (*i).second.dataManager->clearStore().ignore();
188  }
189  if ( m_root.root.object ) {
190  switch ( m_root.type ) {
191  case address_type:
193  break;
194  case object_type:
196  break;
197  }
198  m_root.root.object = 0;
199  }
200  m_root.path = "";
201  m_root.type = no_type;
202  return STATUS::SUCCESS;
203  }
Partitions m_partitions
Datastore partitions.
virtual unsigned long release()=0
release reference to object
struct MultiStoreSvc::tagROOT m_root
union MultiStoreSvc::tagROOT::@1 root
virtual unsigned long release()
release reference to object
Definition: DataObject.cpp:44
list i
Definition: ana.py:128
virtual STATUS MultiStoreSvc::clearSubTree ( CSTR path)
inlinevirtual

Remove all data objects below the sub tree identified.

Definition at line 176 of file MultiStoreSvc.cpp.

176  {
177  return _CALL(m_current.dataManager, clearSubTree, (path));
178  }
virtual STATUS clearSubTree(CSTR &path)
Remove all data objects below the sub tree identified.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
virtual STATUS MultiStoreSvc::clearSubTree ( OBJECT pObject)
inlinevirtual

Remove all data objects below the sub tree identified.

Implements IDataManagerSvc.

Definition at line 180 of file MultiStoreSvc.cpp.

180  {
181  return _CALL(m_current.dataManager, clearSubTree, (pObject));
182  }
virtual STATUS clearSubTree(CSTR &path)
Remove all data objects below the sub tree identified.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
virtual STATUS MultiStoreSvc::create ( CSTR nam,
CSTR typ 
)
inlinevirtual

Create a partition object. The name identifies the partition uniquely.

Definition at line 443 of file MultiStoreSvc.cpp.

443  {
444  IInterface* pPartition = 0;
445  return create(nam, typ, pPartition);
446  }
Definition of the basic interface.
Definition: IInterface.h:160
virtual STATUS create(CSTR &nam, CSTR &typ)
Create a partition object. The name identifies the partition uniquely.
virtual STATUS MultiStoreSvc::create ( CSTR nam,
CSTR typ,
IInterface *&  pPartition 
)
inlinevirtual

Create a partition object. The name identifies the partition uniquely.

Fix-Me:
: In the old implementation the services were "unmanaged" (non-active)

Definition at line 449 of file MultiStoreSvc.cpp.

449  {
450  STATUS sc = get(nam, pPartition);
451  if ( !sc.isSuccess() ) {
454  SmartIF<IService>& isvc = serviceLocator()->service(typ);
455  if (isvc.isValid()) {
456  SmartIF<IDataManagerSvc> dataMgr(isvc);
457  SmartIF<IDataProviderSvc> dataProv(isvc);
458  if ( dataMgr.isValid() && dataProv.isValid() ) {
459  Partition p;
460  p.name = nam;
461  p.dataManager = dataMgr;
462  p.dataProvider = dataProv;
463  p.dataManager->addRef();
464  p.dataProvider->addRef();
465  m_partitions.insert(std::make_pair(nam, p));
466  return STATUS::SUCCESS;
467  }
468  else {
469  // Error
470  return NO_INTERFACE;
471  }
472  }
473  else {
474  // Error
475  return NO_INTERFACE;
476  }
477  }
478  return PARTITION_EXISTS;
479  }
Partitions m_partitions
Datastore partitions.
Requested interface is not available.
Definition: IInterface.h:221
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:62
Helper class to parse a string of format "type/name".
Definition: TypeNameString.h:9
bool isValid() const
Allow for check if smart pointer is valid.
Definition: SmartIF.h:51
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:30
tuple item
print s1,s2
Definition: ana.py:146
SmartIF< ISvcLocator > & serviceLocator() const
Retrieve pointer to service locator.
Definition: Service.cpp:336
STATUS MultiStoreSvc::detachServices ( )
inline

Definition at line 595 of file MultiStoreSvc.cpp.

595  {
598  m_addrCreator = 0;
599  m_dataLoader = 0;
600  return STATUS::SUCCESS;
601  }
IConversionSvc * m_dataLoader
Pointer to data loader service.
IAddressCreator * m_addrCreator
Reference to address creator.
virtual unsigned long release()=0
Release Interface instance.
virtual STATUS MultiStoreSvc::drop ( CSTR nam)
inlinevirtual

Drop a partition object. The name identifies the partition uniquely.

Definition at line 482 of file MultiStoreSvc.cpp.

482  {
483  Partitions::iterator i = m_partitions.find(nam);
484  if ( i != m_partitions.end() ) {
485  if ( (*i).second.dataManager == m_current.dataManager ) {
486  m_current = Partition();
487  }
488  (*i).second.dataManager->clearStore().ignore();
489  (*i).second.dataProvider->release();
490  (*i).second.dataManager->release();
491  m_partitions.erase(i);
492  return STATUS::SUCCESS;
493  }
494  return PARTITION_NOT_PRESENT;
495  }
Partitions m_partitions
Datastore partitions.
Partition m_current
Current partition.
list i
Definition: ana.py:128
virtual STATUS MultiStoreSvc::drop ( IInterface pPartition)
inlinevirtual

Drop a partition object. The name identifies the partition uniquely.

Implements IPartitionControl.

Definition at line 498 of file MultiStoreSvc.cpp.

498  {
499  SmartIF<IDataProviderSvc> provider(pPartition);
500  if ( provider.isValid() ) {
501  Partitions::iterator i;
502  for(i=m_partitions.begin(); i != m_partitions.end(); ++i) {
503  if ( (*i).second.dataProvider == provider ) {
504  (*i).second.dataManager->clearStore().ignore();
505  (*i).second.dataProvider->release();
506  (*i).second.dataManager->release();
507  m_partitions.erase(i);
508  return STATUS::SUCCESS;
509  }
510  }
511  return PARTITION_NOT_PRESENT;
512  }
513  return NO_INTERFACE;
514  }
Partitions m_partitions
Datastore partitions.
Requested interface is not available.
Definition: IInterface.h:221
list i
Definition: ana.py:128
virtual STATUS MultiStoreSvc::finalize ( )
inlinevirtual

Service initialisation.

Reimplemented from Service.

Definition at line 644 of file MultiStoreSvc.cpp.

644  {
645  setDataLoader(0).ignore();
646  clearStore().ignore();
648  m_current = Partition();
649  detachServices();
650  return Service::finalize();
651  }
virtual STATUS setDataLoader(IConversionSvc *pDataLoader)
IDataManagerSvc: Pass a default data loader to the service.
STATUS detachServices()
virtual STATUS clearStore()
IDataManagerSvc: Remove all data objects in the data store.
STATUS clearPartitions()
Clear all partitions.
Partition m_current
Current partition.
void ignore() const
Definition: StatusCode.h:94
virtual StatusCode finalize()
Finalize (from INITIALIZED to CONFIGURED).
Definition: Service.cpp:199
virtual STATUS MultiStoreSvc::findObject ( CSTR path,
OBJECT *&  pObj 
)
inlinevirtual

Find object identified by its full path in the data store.

Definition at line 366 of file MultiStoreSvc.cpp.

366  {
367  return _CALL(m_current.dataProvider, retrieveObject, (path, pObj));
368  }
virtual STATUS retrieveObject(IRegistry *parent, CSTR &path, OBJECT *&pObj)
Retrieve object from data store.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
virtual STATUS MultiStoreSvc::findObject ( IRegistry parent,
CSTR path,
OBJECT *&  pObj 
)
inlinevirtual

Find object identified by its full path in the data store.

Definition at line 370 of file MultiStoreSvc.cpp.

370  {
371  return _CALL(m_current.dataProvider, retrieveObject, (parent, path, pObj));
372  }
virtual STATUS retrieveObject(IRegistry *parent, CSTR &path, OBJECT *&pObj)
Retrieve object from data store.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
virtual STATUS MultiStoreSvc::findObject ( CSTR parent,
CSTR path,
OBJECT *&  pObj 
)
inlinevirtual

Find object in the data store.

Definition at line 374 of file MultiStoreSvc.cpp.

374  {
375  return _CALL(m_current.dataProvider, retrieveObject, (parent, path, pObj));
376  }
virtual STATUS retrieveObject(IRegistry *parent, CSTR &path, OBJECT *&pObj)
Retrieve object from data store.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
virtual STATUS MultiStoreSvc::findObject ( CSTR parent,
int  item,
OBJECT *&  pObject 
)
inlinevirtual

Find object in the data store.

Definition at line 378 of file MultiStoreSvc.cpp.

378  {
379  return _CALL(m_current.dataProvider, findObject, (parent, item, pObject));
380  }
virtual STATUS findObject(CSTR &path, OBJECT *&pObj)
Find object identified by its full path in the data store.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
tuple item
print s1,s2
Definition: ana.py:146
virtual STATUS MultiStoreSvc::findObject ( OBJECT parent,
CSTR path,
OBJECT *&  pObject 
)
inlinevirtual

Find object in the data store.

Definition at line 382 of file MultiStoreSvc.cpp.

382  {
383  return _CALL(m_current.dataProvider, findObject, (parent, path, pObject));
384  }
virtual STATUS findObject(CSTR &path, OBJECT *&pObj)
Find object identified by its full path in the data store.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
virtual STATUS MultiStoreSvc::findObject ( OBJECT parent,
int  item,
OBJECT *&  pObject 
)
inlinevirtual

Find object in the data store.

Implements IDataProviderSvc.

Definition at line 386 of file MultiStoreSvc.cpp.

386  {
387  return _CALL(m_current.dataProvider, findObject, (parent, item, pObject));
388  }
virtual STATUS findObject(CSTR &path, OBJECT *&pObj)
Find object identified by its full path in the data store.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
tuple item
print s1,s2
Definition: ana.py:146
virtual STATUS MultiStoreSvc::get ( CSTR nam,
IInterface *&  pPartition 
) const
inlinevirtual

Access a partition object. The name identifies the partition uniquely.

Definition at line 545 of file MultiStoreSvc.cpp.

545  {
546  Partitions::const_iterator i = m_partitions.find(nam);
547  if ( i != m_partitions.end() ) {
548  pPartition = (*i).second.dataProvider;
549  return STATUS::SUCCESS;
550  }
551  pPartition = 0;
552  return PARTITION_NOT_PRESENT;
553  }
Partitions m_partitions
Datastore partitions.
list i
Definition: ana.py:128
virtual STATUS MultiStoreSvc::initialize ( )
inlinevirtual

Service initialisation.

Reimplemented from Service.

Definition at line 604 of file MultiStoreSvc.cpp.

604  {
605  // Nothing to do: just call base class initialisation
607  if ( !sc.isSuccess() ) {
608  return sc;
609  }
610  sc = makePartitions();
611  if (!sc.isSuccess()) {
612  MsgStream log(msgSvc(), name());
613  log << MSG::ERROR << "Failed to connect to all store partitions." << endmsg;
614  return sc;
615  }
616  return attachServices();
617  }
Definition of the MsgStream class used to transmit messages.
Definition: MsgStream.h:24
SmartIF< IMessageSvc > & msgSvc() const
The standard message service.
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:62
STATUS makePartitions()
Create all partitions according to job options.
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:30
virtual const std::string & name() const
Retrieve name of the service.
Definition: Service.cpp:331
virtual StatusCode initialize()
Initialization (from CONFIGURED to INITIALIZED).
Definition: Service.cpp:74
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:243
STATUS attachServices()
virtual STATUS MultiStoreSvc::linkObject ( IRegistry from,
CSTR objPath,
OBJECT to 
)
inlinevirtual

Add a link to another object.

Definition at line 390 of file MultiStoreSvc.cpp.

390  {
391  return _CALL(m_current.dataProvider, linkObject, (from, objPath, to));
392  }
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
virtual STATUS linkObject(IRegistry *from, CSTR &objPath, OBJECT *to)
Add a link to another object.
virtual STATUS MultiStoreSvc::linkObject ( CSTR from,
CSTR objPath,
OBJECT to 
)
inlinevirtual

Add a link to another object.

Definition at line 394 of file MultiStoreSvc.cpp.

394  {
395  return _CALL(m_current.dataProvider, linkObject, (from, objPath, to));
396  }
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
virtual STATUS linkObject(IRegistry *from, CSTR &objPath, OBJECT *to)
Add a link to another object.
virtual STATUS MultiStoreSvc::linkObject ( OBJECT from,
CSTR objPath,
OBJECT to 
)
inlinevirtual

Add a link to another object.

Definition at line 398 of file MultiStoreSvc.cpp.

398  {
399  return _CALL(m_current.dataProvider, linkObject, (from, objPath, to));
400  }
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
virtual STATUS linkObject(IRegistry *from, CSTR &objPath, OBJECT *to)
Add a link to another object.
virtual STATUS MultiStoreSvc::linkObject ( CSTR fullPath,
OBJECT to 
)
inlinevirtual

Add a link to another object.

Definition at line 402 of file MultiStoreSvc.cpp.

402  {
403  return _CALL(m_current.dataProvider, linkObject, (fullPath, to));
404  }
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
virtual STATUS linkObject(IRegistry *from, CSTR &objPath, OBJECT *to)
Add a link to another object.
STATUS MultiStoreSvc::makePartitions ( )
inline

Create all partitions according to job options.

Definition at line 729 of file MultiStoreSvc.cpp.

729  {
730  std::string typ, nam;
731  PartitionDefs::iterator j;
733  for(j=m_partitionDefs.begin(); j != m_partitionDefs.end(); ++j) {
734  Tokenizer tok(true);
735  Tokenizer::Items::iterator i;
736  tok.analyse(*j, " ", "", "", "=", "'", "'");
737  for(i = tok.items().begin(); i != tok.items().end(); i++ ) {
738  CSTR& t = (*i).tag();
739  CSTR& v = (*i).value();
740  switch( ::toupper(t[0]) ) {
741  case 'N':
742  nam = v;
743  break;
744  case 'T':
745  typ = v;
746  break;
747  }
748  }
749  STATUS sc = create(nam, typ);
750  if ( !sc.isSuccess() ) {
751  return sc;
752  }
753  else if ( !m_defaultPartition.length() ) {
754  m_defaultPartition = nam;
755  }
756  }
757  return STATUS::SUCCESS;
758  }
PartitionDefs m_partitionDefs
Datastore partition definitions.
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:62
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:30
STL Include files.
Definition: Tokenizer.h:24
const std::string CSTR
STATUS clearPartitions()
Clear all partitions.
virtual STATUS create(CSTR &nam, CSTR &typ)
Create a partition object. The name identifies the partition uniquely.
void ignore() const
Definition: StatusCode.h:94
list i
Definition: ana.py:128
std::string m_defaultPartition
Default partition.
void toupper(std::string &s)
virtual STATUS MultiStoreSvc::objectLeaves ( const OBJECT pObject,
std::vector< IRegistry * > &  leaves 
)
inlinevirtual

Explore the object store: retrieve all leaves attached to the object.

Implements IDataManagerSvc.

Definition at line 160 of file MultiStoreSvc.cpp.

160  {
161  return _CALL(m_current.dataManager, objectLeaves, (pObject, leaves));
162  }
virtual STATUS objectLeaves(const OBJECT *pObject, std::vector< IRegistry * > &leaves)
Explore the object store: retrieve all leaves attached to the object.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
virtual STATUS MultiStoreSvc::objectLeaves ( const IRegistry pObject,
std::vector< IRegistry * > &  leaves 
)
inlinevirtual

Explore the object store: retrieve all leaves attached to the object.

Implements IDataManagerSvc.

Definition at line 164 of file MultiStoreSvc.cpp.

164  {
165  return _CALL(m_current.dataManager, objectLeaves, (pObject, leaves));
166  }
virtual STATUS objectLeaves(const OBJECT *pObject, std::vector< IRegistry * > &leaves)
Explore the object store: retrieve all leaves attached to the object.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
virtual STATUS MultiStoreSvc::objectParent ( const OBJECT pObject,
IRegistry *&  refpParent 
)
inlinevirtual

IDataManagerSvc: Explore the object store: retrieve the object's parent.

Implements IDataManagerSvc.

Definition at line 168 of file MultiStoreSvc.cpp.

168  {
169  return _CALL(m_current.dataManager, objectParent, (pObject, refpParent));
170  }
virtual STATUS objectParent(const OBJECT *pObject, IRegistry *&refpParent)
IDataManagerSvc: Explore the object store: retrieve the object's parent.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
virtual STATUS MultiStoreSvc::objectParent ( const IRegistry pObject,
IRegistry *&  refpParent 
)
inlinevirtual

IDataManagerSvc: Explore the object store: retrieve the object's parent.

Implements IDataManagerSvc.

Definition at line 172 of file MultiStoreSvc.cpp.

172  {
173  return _CALL(m_current.dataManager, objectParent, (pObject, refpParent));
174  }
virtual STATUS objectParent(const OBJECT *pObject, IRegistry *&refpParent)
IDataManagerSvc: Explore the object store: retrieve the object's parent.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
virtual STATUS MultiStoreSvc::preLoad ( )
inlinevirtual

load all preload items of the list

Implements IDataProviderSvc.

Definition at line 294 of file MultiStoreSvc.cpp.

294  {
295  return _CALL(m_current.dataProvider, preLoad, ());
296  }
virtual STATUS preLoad()
load all preload items of the list
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
STATUS MultiStoreSvc::preparePartitions ( )
inline

Prepare partition for usage.

Definition at line 678 of file MultiStoreSvc.cpp.

678  {
679  STATUS iret = STATUS::SUCCESS;
680  for(Partitions::iterator i=m_partitions.begin(); i != m_partitions.end(); ++i) {
682  switch ( m_root.type ) {
683  case address_type:
684  if ( m_root.root.address ) {
685  ADDRESS* pAdd = 0;
686  ADDRESS* p = m_root.root.address;
688  p->clID(),
689  p->par(),
690  p->ipar(),
691  pAdd);
692  if ( sc.isSuccess() ) {
693  sc = (*i).second.dataManager->setRoot(m_root.path, pAdd);
694  }
695  }
696  break;
697  case object_type:
698  if ( m_root.root.object ) {
699  if ( m_root.root.object->clID() == CLID_DataObject ) {
700  DataObject* pObj = new DataObject();
701  sc = (*i).second.dataManager->setRoot(m_root.path, pObj);
702  }
703  }
704  break;
705  default:
706  sc = STATUS::FAILURE;
707  break;
708  }
709  if ( !sc.isSuccess() ) {
710  iret = sc;
711  }
712  }
713  return iret;
714  }
virtual const std::string * par() const =0
Retrieve String parameters.
Partitions m_partitions
Datastore partitions.
virtual StatusCode createAddress(long svc_type, const CLID &clid, const std::string *par, const unsigned long *ipar, IOpaqueAddress *&refpAddress)=0
Create a Generic address using explicit arguments to identify a single object.
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:62
virtual long svcType() const =0
Retrieve service type.
virtual const CLID & clID() const
Retrieve reference to class definition structure.
Definition: DataObject.cpp:58
virtual const CLID & clID() const =0
Retrieve class information from link.
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:30
struct MultiStoreSvc::tagROOT m_root
IAddressCreator * m_addrCreator
Reference to address creator.
union MultiStoreSvc::tagROOT::@1 root
Opaque address interface definition.
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:31
list i
Definition: ana.py:128
virtual const unsigned long * ipar() const =0
Access to generic link parameters.
virtual STATUS MultiStoreSvc::registerAddress ( CSTR path,
ADDRESS pAddr 
)
inlinevirtual

IDataManagerSvc: Register object address with the data store.

Definition at line 136 of file MultiStoreSvc.cpp.

136  {
137  return _CALL(m_current.dataManager, registerAddress, (path, pAddr));
138  }
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
virtual STATUS registerAddress(CSTR &path, ADDRESS *pAddr)
IDataManagerSvc: Register object address with the data store.
virtual STATUS MultiStoreSvc::registerAddress ( OBJECT parent,
CSTR path,
ADDRESS pAddr 
)
inlinevirtual

IDataManagerSvc: Register object address with the data store.

Definition at line 140 of file MultiStoreSvc.cpp.

140  {
141  return _CALL(m_current.dataManager, registerAddress, (parent, path, pAddr));
142  }
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
virtual STATUS registerAddress(CSTR &path, ADDRESS *pAddr)
IDataManagerSvc: Register object address with the data store.
virtual STATUS MultiStoreSvc::registerAddress ( IRegistry parent,
CSTR path,
ADDRESS pAdd 
)
inlinevirtual

IDataManagerSvc: Register object address with the data store.

Definition at line 144 of file MultiStoreSvc.cpp.

144  {
145  return _CALL(m_current.dataManager, registerAddress, (parent, path, pAdd));
146  }
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
virtual STATUS registerAddress(CSTR &path, ADDRESS *pAddr)
IDataManagerSvc: Register object address with the data store.
virtual STATUS MultiStoreSvc::registerObject ( CSTR path,
OBJECT pObj 
)
inlinevirtual

Register object with the data store.

Definition at line 298 of file MultiStoreSvc.cpp.

298  {
299  return registerObject(0, path, pObj);
300  }
virtual STATUS registerObject(CSTR &path, OBJECT *pObj)
Register object with the data store.
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
virtual STATUS MultiStoreSvc::registerObject ( CSTR parent,
CSTR obj,
OBJECT pObj 
)
inlinevirtual

Register object with the data store.

Definition at line 302 of file MultiStoreSvc.cpp.

302  {
303  return _CALL(m_current.dataProvider, registerObject, (parent, obj, pObj));
304  }
virtual STATUS registerObject(CSTR &path, OBJECT *pObj)
Register object with the data store.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
virtual STATUS MultiStoreSvc::registerObject ( CSTR parent,
int  item,
OBJECT pObj 
)
inlinevirtual

Register object with the data store.

Definition at line 306 of file MultiStoreSvc.cpp.

306  {
307  return _CALL(m_current.dataProvider, registerObject, (parent, item, pObj));
308  }
virtual STATUS registerObject(CSTR &path, OBJECT *pObj)
Register object with the data store.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
tuple item
print s1,s2
Definition: ana.py:146
virtual STATUS MultiStoreSvc::registerObject ( OBJECT parent,
CSTR obj,
OBJECT pObj 
)
inlinevirtual

Register object with the data store.

Definition at line 310 of file MultiStoreSvc.cpp.

310  {
311  return _CALL(m_current.dataProvider, registerObject, (parent, obj, pObj));
312  }
virtual STATUS registerObject(CSTR &path, OBJECT *pObj)
Register object with the data store.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
virtual STATUS MultiStoreSvc::registerObject ( OBJECT parent,
int  obj,
OBJECT pObj 
)
inlinevirtual

Register object with the data store.

Implements IDataProviderSvc.

Definition at line 314 of file MultiStoreSvc.cpp.

314  {
315  return _CALL(m_current.dataProvider, registerObject, (parent, obj, pObj));
316  }
virtual STATUS registerObject(CSTR &path, OBJECT *pObj)
Register object with the data store.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
virtual STATUS MultiStoreSvc::reinitialize ( )
inlinevirtual

Service initialisation.

Reimplemented from Service.

Definition at line 620 of file MultiStoreSvc.cpp.

620  {
622  MsgStream log(msgSvc(), name());
623  if (!sc.isSuccess()) {
624  log << MSG::ERROR << "Enable to reinitialize base class"
625  << endmsg;
626  return sc;
627  }
628  detachServices();
629  sc = attachServices();
630  if ( !sc.isSuccess() ) {
631  log << MSG::ERROR << "Failed to attach necessary services." << endmsg;
632  return sc;
633  }
634  sc = makePartitions();
635  if (!sc.isSuccess()) {
636  log << MSG::ERROR << "Failed to connect to store partitions." << endmsg;
637  return sc;
638  }
639  // return
640  return STATUS::SUCCESS;
641  }
Definition of the MsgStream class used to transmit messages.
Definition: MsgStream.h:24
SmartIF< IMessageSvc > & msgSvc() const
The standard message service.
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:62
STATUS detachServices()
STATUS makePartitions()
Create all partitions according to job options.
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:30
virtual const std::string & name() const
Retrieve name of the service.
Definition: Service.cpp:331
virtual StatusCode reinitialize()
Initialization (from INITIALIZED or RUNNING to INITIALIZED, via CONFIGURED).
Definition: Service.cpp:294
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:243
STATUS attachServices()
virtual STATUS MultiStoreSvc::removePreLoadItem ( const DataStoreItem item)
inlinevirtual

Remove an item from the preload list.

Implements IDataProviderSvc.

Definition at line 282 of file MultiStoreSvc.cpp.

282  {
283  return _CALL(m_current.dataProvider, removePreLoadItem, (item));
284  }
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
virtual STATUS removePreLoadItem(const DataStoreItem &item)
Remove an item from the preload list.
virtual STATUS MultiStoreSvc::removePreLoadItem ( CSTR item)
inlinevirtual

Add an item to the preload list.

Definition at line 286 of file MultiStoreSvc.cpp.

286  {
287  return _CALL(m_current.dataProvider, removePreLoadItem, (item));
288  }
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
tuple item
print s1,s2
Definition: ana.py:146
virtual STATUS removePreLoadItem(const DataStoreItem &item)
Remove an item from the preload list.
virtual STATUS MultiStoreSvc::resetPreLoad ( )
inlinevirtual

Clear the preload list.

Implements IDataProviderSvc.

Definition at line 290 of file MultiStoreSvc.cpp.

290  {
291  return _CALL(m_current.dataProvider, resetPreLoad, ());
292  }
virtual STATUS resetPreLoad()
Clear the preload list.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
virtual STATUS MultiStoreSvc::retrieveObject ( IRegistry parent,
CSTR path,
OBJECT *&  pObj 
)
inlinevirtual

Retrieve object from data store.

Definition at line 342 of file MultiStoreSvc.cpp.

342  {
343  return _CALL(m_current.dataProvider, retrieveObject, (parent, path, pObj));
344  }
virtual STATUS retrieveObject(IRegistry *parent, CSTR &path, OBJECT *&pObj)
Retrieve object from data store.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
virtual STATUS MultiStoreSvc::retrieveObject ( CSTR path,
OBJECT *&  pObj 
)
inlinevirtual

Retrieve object identified by its full path from the data store.

Definition at line 346 of file MultiStoreSvc.cpp.

346  {
347  return _CALL(m_current.dataProvider, retrieveObject, (path, pObj));
348  }
virtual STATUS retrieveObject(IRegistry *parent, CSTR &path, OBJECT *&pObj)
Retrieve object from data store.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
virtual STATUS MultiStoreSvc::retrieveObject ( CSTR parent,
CSTR path,
OBJECT *&  pObj 
)
inlinevirtual

Retrieve object from data store.

Definition at line 350 of file MultiStoreSvc.cpp.

350  {
351  return _CALL(m_current.dataProvider, retrieveObject, (parent, path, pObj));
352  }
virtual STATUS retrieveObject(IRegistry *parent, CSTR &path, OBJECT *&pObj)
Retrieve object from data store.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
virtual STATUS MultiStoreSvc::retrieveObject ( CSTR parent,
int  item,
OBJECT *&  pObj 
)
inlinevirtual

Retrieve object from data store.

Definition at line 354 of file MultiStoreSvc.cpp.

354  {
355  return _CALL(m_current.dataProvider, retrieveObject, (parent, item, pObj));
356  }
virtual STATUS retrieveObject(IRegistry *parent, CSTR &path, OBJECT *&pObj)
Retrieve object from data store.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
tuple item
print s1,s2
Definition: ana.py:146
virtual STATUS MultiStoreSvc::retrieveObject ( OBJECT parent,
CSTR path,
OBJECT *&  pObj 
)
inlinevirtual

Retrieve object from data store.

Definition at line 358 of file MultiStoreSvc.cpp.

358  {
359  return _CALL(m_current.dataProvider, retrieveObject, (parent, path, pObj));
360  }
virtual STATUS retrieveObject(IRegistry *parent, CSTR &path, OBJECT *&pObj)
Retrieve object from data store.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
virtual STATUS MultiStoreSvc::retrieveObject ( OBJECT parent,
int  item,
OBJECT *&  pObj 
)
inlinevirtual

Retrieve object from data store.

Implements IDataProviderSvc.

Definition at line 362 of file MultiStoreSvc.cpp.

362  {
363  return _CALL(m_current.dataProvider, retrieveObject, (parent, item, pObj));
364  }
virtual STATUS retrieveObject(IRegistry *parent, CSTR &path, OBJECT *&pObj)
Retrieve object from data store.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
tuple item
print s1,s2
Definition: ana.py:146
virtual CLID MultiStoreSvc::rootCLID ( ) const
inlinevirtual

IDataManagerSvc: Accessor for root event CLID.

Implements IDataManagerSvc.

Definition at line 123 of file MultiStoreSvc.cpp.

123  {
124  return (CLID)m_rootCLID;
125  }
unsigned int CLID
Class ID definition.
Definition: ClassID.h:9
CLID m_rootCLID
Integer Property corresponding to CLID of root entry.
std::string MultiStoreSvc::rootName ( ) const
inlinevirtual

Name for root Event.

Implements IDataManagerSvc.

Definition at line 127 of file MultiStoreSvc.cpp.

127  {
128  return m_rootName;
129  }
std::string m_rootName
Name of root event.
virtual STATUS MultiStoreSvc::setDataLoader ( IConversionSvc pDataLoader)
inlinevirtual

IDataManagerSvc: Pass a default data loader to the service.

Implements IDataManagerSvc.

Definition at line 260 of file MultiStoreSvc.cpp.

260  {
261  Partitions::iterator i;
262  if ( 0 != pDataLoader ) pDataLoader->addRef();
263  if ( 0 != m_dataLoader ) m_dataLoader->release();
264  if ( 0 != pDataLoader ) {
265  pDataLoader->setDataProvider(this);
266  }
267  m_dataLoader = pDataLoader;
268  for(i=m_partitions.begin(); i != m_partitions.end(); ++i) {
269  (*i).second.dataManager->setDataLoader(m_dataLoader).ignore();
270  }
271  return SUCCESS;
272  }
Partitions m_partitions
Datastore partitions.
Normal successful completion.
Definition: IInterface.h:219
virtual StatusCode setDataProvider(IDataProviderSvc *pService)=0
Set Data provider service.
IConversionSvc * m_dataLoader
Pointer to data loader service.
virtual unsigned long release()=0
Release Interface instance.
virtual unsigned long addRef()=0
Increment the reference count of Interface instance.
list i
Definition: ana.py:128
virtual STATUS MultiStoreSvc::setRoot ( CSTR path,
OBJECT pObj 
)
inlinevirtual

Initialize data store for new event by giving new event path and root object.

Takes care to clear the store before reinitializing it

Definition at line 218 of file MultiStoreSvc.cpp.

218  {
219  if ( m_root.root.object ) {
220  switch ( m_root.type ) {
221  case address_type:
223  break;
224  case object_type:
226  break;
227  }
228  }
229  m_root.path = path;
231  m_root.root.object = pObj;
234  }
virtual STATUS activate(CSTR &nam)
Activate a partition object. The name identifies the partition uniquely.
virtual unsigned long release()=0
release reference to object
struct MultiStoreSvc::tagROOT m_root
union MultiStoreSvc::tagROOT::@1 root
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
STATUS preparePartitions()
Prepare partition for usage.
virtual unsigned long release()
release reference to object
Definition: DataObject.cpp:44
std::string m_defaultPartition
Default partition.
virtual STATUS MultiStoreSvc::setRoot ( CSTR path,
ADDRESS pAddr 
)
inlinevirtual

Initialize data store for new event by giving new event path and address of root object.

Takes care to clear the store before reinitializing it

Definition at line 238 of file MultiStoreSvc.cpp.

238  {
239  if ( m_root.root.object ) {
240  switch ( m_root.type ) {
241  case address_type:
243  break;
244  case object_type:
246  break;
247  }
248  }
249  m_root.path = path;
251  m_root.root.address = pAddr;
252  if ( m_root.root.address ) {
256  }
257  return STATUS::FAILURE;
258  }
virtual STATUS activate(CSTR &nam)
Activate a partition object. The name identifies the partition uniquely.
virtual unsigned long release()=0
release reference to object
struct MultiStoreSvc::tagROOT m_root
union MultiStoreSvc::tagROOT::@1 root
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
STATUS preparePartitions()
Prepare partition for usage.
virtual unsigned long release()
release reference to object
Definition: DataObject.cpp:44
std::string m_defaultPartition
Default partition.
virtual unsigned long addRef()=0
Add reference to object.
virtual STATUS MultiStoreSvc::traverseSubTree ( CSTR path,
AGENT pAgent 
)
inlinevirtual

Analyze by traversing all data objects below the sub tree.

Definition at line 205 of file MultiStoreSvc.cpp.

205  {
206  return _CALL(m_current.dataManager, traverseSubTree, (path, pAgent));
207  }
virtual STATUS traverseSubTree(CSTR &path, AGENT *pAgent)
Analyze by traversing all data objects below the sub tree.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
virtual STATUS MultiStoreSvc::traverseSubTree ( OBJECT pObject,
AGENT pAgent 
)
inlinevirtual

IDataManagerSvc: Analyze by traversing all data objects below the sub tree.

Implements IDataManagerSvc.

Definition at line 209 of file MultiStoreSvc.cpp.

209  {
210  return _CALL(m_current.dataManager, traverseSubTree, (pObject, pAgent));
211  }
virtual STATUS traverseSubTree(CSTR &path, AGENT *pAgent)
Analyze by traversing all data objects below the sub tree.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
virtual STATUS MultiStoreSvc::traverseTree ( AGENT pAgent)
inlinevirtual

IDataManagerSvc: Analyze by traversing all data objects in the data store.

Implements IDataManagerSvc.

Definition at line 213 of file MultiStoreSvc.cpp.

213  {
214  return _CALL(m_current.dataManager, traverseTree, (pAgent));
215  }
virtual STATUS traverseTree(AGENT *pAgent)
IDataManagerSvc: Analyze by traversing all data objects in the data store.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
virtual STATUS MultiStoreSvc::unlinkObject ( IRegistry from,
CSTR objPath 
)
inlinevirtual

Remove a link to another object.

Definition at line 406 of file MultiStoreSvc.cpp.

406  {
407  return _CALL(m_current.dataProvider, unlinkObject, (from, objPath));
408  }
virtual STATUS unlinkObject(IRegistry *from, CSTR &objPath)
Remove a link to another object.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
virtual STATUS MultiStoreSvc::unlinkObject ( CSTR from,
CSTR objPath 
)
inlinevirtual

Remove a link to another object.

Definition at line 410 of file MultiStoreSvc.cpp.

410  {
411  return _CALL(m_current.dataProvider, unlinkObject, (from, objPath));
412  }
virtual STATUS unlinkObject(IRegistry *from, CSTR &objPath)
Remove a link to another object.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
virtual STATUS MultiStoreSvc::unlinkObject ( OBJECT from,
CSTR objPath 
)
inlinevirtual

Remove a link to another object.

Definition at line 414 of file MultiStoreSvc.cpp.

414  {
415  return _CALL(m_current.dataProvider, unlinkObject, (from, objPath));
416  }
virtual STATUS unlinkObject(IRegistry *from, CSTR &objPath)
Remove a link to another object.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
virtual STATUS MultiStoreSvc::unlinkObject ( CSTR path)
inlinevirtual

Remove a link to another object.

Definition at line 418 of file MultiStoreSvc.cpp.

418  {
419  return _CALL(m_current.dataProvider, unlinkObject, (path));
420  }
virtual STATUS unlinkObject(IRegistry *from, CSTR &objPath)
Remove a link to another object.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
virtual STATUS MultiStoreSvc::unregisterAddress ( CSTR path)
inlinevirtual

IDataManagerSvc: Unregister object address from the data store.

Definition at line 148 of file MultiStoreSvc.cpp.

148  {
149  return _CALL(m_current.dataManager, unregisterAddress, (path));
150  }
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
virtual STATUS unregisterAddress(CSTR &path)
IDataManagerSvc: Unregister object address from the data store.
virtual STATUS MultiStoreSvc::unregisterAddress ( OBJECT pParent,
CSTR path 
)
inlinevirtual

IDataManagerSvc: Unregister object address from the data store.

Definition at line 152 of file MultiStoreSvc.cpp.

152  {
153  return _CALL(m_current.dataManager, unregisterAddress, (pParent, path));
154  }
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
virtual STATUS unregisterAddress(CSTR &path)
IDataManagerSvc: Unregister object address from the data store.
virtual STATUS MultiStoreSvc::unregisterAddress ( IRegistry pParent,
CSTR path 
)
inlinevirtual

IDataManagerSvc: Unregister object address from the data store.

Definition at line 156 of file MultiStoreSvc.cpp.

156  {
157  return _CALL(m_current.dataManager, unregisterAddress, (pParent, path));
158  }
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
virtual STATUS unregisterAddress(CSTR &path)
IDataManagerSvc: Unregister object address from the data store.
virtual STATUS MultiStoreSvc::unregisterObject ( CSTR path)
inlinevirtual

Unregister object from the data store.

Definition at line 318 of file MultiStoreSvc.cpp.

318  {
319  return _CALL(m_current.dataProvider, unregisterObject, (path));
320  }
virtual STATUS unregisterObject(CSTR &path)
Unregister object from the data store.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
virtual STATUS MultiStoreSvc::unregisterObject ( CSTR parent,
CSTR obj 
)
inlinevirtual

Unregister object from the data store.

Definition at line 322 of file MultiStoreSvc.cpp.

322  {
323  return _CALL(m_current.dataProvider, unregisterObject, (parent, obj));
324  }
virtual STATUS unregisterObject(CSTR &path)
Unregister object from the data store.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
virtual STATUS MultiStoreSvc::unregisterObject ( CSTR parent,
int  obj 
)
inlinevirtual

Unregister object from the data store.

Definition at line 326 of file MultiStoreSvc.cpp.

326  {
327  return _CALL(m_current.dataProvider, unregisterObject, (parent, obj));
328  }
virtual STATUS unregisterObject(CSTR &path)
Unregister object from the data store.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
virtual STATUS MultiStoreSvc::unregisterObject ( OBJECT pObj)
inlinevirtual

Unregister object from the data store.

Implements IDataProviderSvc.

Definition at line 330 of file MultiStoreSvc.cpp.

330  {
331  return _CALL(m_current.dataProvider, unregisterObject, (pObj));
332  }
virtual STATUS unregisterObject(CSTR &path)
Unregister object from the data store.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
virtual STATUS MultiStoreSvc::unregisterObject ( OBJECT pObj,
CSTR path 
)
inlinevirtual

Unregister object from the data store.

Definition at line 334 of file MultiStoreSvc.cpp.

334  {
335  return _CALL(m_current.dataProvider, unregisterObject, (pObj, path));
336  }
virtual STATUS unregisterObject(CSTR &path)
Unregister object from the data store.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
virtual STATUS MultiStoreSvc::unregisterObject ( OBJECT pObj,
int  item 
)
inlinevirtual

Unregister object from the data store.

Implements IDataProviderSvc.

Definition at line 338 of file MultiStoreSvc.cpp.

338  {
339  return _CALL(m_current.dataProvider, unregisterObject, (pObj, item));
340  }
virtual STATUS unregisterObject(CSTR &path)
Unregister object from the data store.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
tuple item
print s1,s2
Definition: ana.py:146
virtual STATUS MultiStoreSvc::updateObject ( IRegistry pDirectory)
inlinevirtual

Update object identified by its directory entry.

Implements IDataProviderSvc.

Definition at line 422 of file MultiStoreSvc.cpp.

422  {
423  return _CALL(m_current.dataProvider, updateObject, (pDirectory));
424  }
virtual STATUS updateObject(IRegistry *pDirectory)
Update object identified by its directory entry.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
virtual STATUS MultiStoreSvc::updateObject ( CSTR path)
inlinevirtual

Update object.

Definition at line 426 of file MultiStoreSvc.cpp.

426  {
427  return _CALL(m_current.dataProvider, updateObject, (path));
428  }
virtual STATUS updateObject(IRegistry *pDirectory)
Update object identified by its directory entry.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
virtual STATUS MultiStoreSvc::updateObject ( OBJECT pObj)
inlinevirtual

Update object.

Implements IDataProviderSvc.

Definition at line 430 of file MultiStoreSvc.cpp.

430  {
431  return _CALL(m_current.dataProvider, updateObject, (pObj));
432  }
virtual STATUS updateObject(IRegistry *pDirectory)
Update object identified by its directory entry.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
virtual STATUS MultiStoreSvc::updateObject ( CSTR parent,
CSTR updatePath 
)
inlinevirtual

Update object.

Definition at line 434 of file MultiStoreSvc.cpp.

434  {
435  return _CALL(m_current.dataProvider, updateObject, (parent, updatePath));
436  }
virtual STATUS updateObject(IRegistry *pDirectory)
Update object identified by its directory entry.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.
virtual STATUS MultiStoreSvc::updateObject ( OBJECT parent,
CSTR updatePath 
)
inlinevirtual

Update object.

Definition at line 438 of file MultiStoreSvc.cpp.

438  {
439  return _CALL(m_current.dataProvider, updateObject, (parent, updatePath));
440  }
virtual STATUS updateObject(IRegistry *pDirectory)
Update object identified by its directory entry.
#define _CALL(P, F, ARGS)
Partition m_current
Current partition.

Member Data Documentation

IAddressCreator* MultiStoreSvc::m_addrCreator
protected

Reference to address creator.

Definition at line 100 of file MultiStoreSvc.cpp.

Partition MultiStoreSvc::m_current
protected

Current partition.

Definition at line 113 of file MultiStoreSvc.cpp.

IConversionSvc* MultiStoreSvc::m_dataLoader
protected

Pointer to data loader service.

Definition at line 98 of file MultiStoreSvc.cpp.

std::string MultiStoreSvc::m_defaultPartition
protected

Default partition.

Definition at line 119 of file MultiStoreSvc.cpp.

std::string MultiStoreSvc::m_loader
protected

Data loader name.

Definition at line 96 of file MultiStoreSvc.cpp.

PartitionDefs MultiStoreSvc::m_partitionDefs
protected

Datastore partition definitions.

Definition at line 117 of file MultiStoreSvc.cpp.

Partitions MultiStoreSvc::m_partitions
protected

Datastore partitions.

Definition at line 115 of file MultiStoreSvc.cpp.

struct MultiStoreSvc::tagROOT MultiStoreSvc::m_root
protected
CLID MultiStoreSvc::m_rootCLID
protected

Integer Property corresponding to CLID of root entry.

Definition at line 92 of file MultiStoreSvc.cpp.

std::string MultiStoreSvc::m_rootName
protected

Name of root event.

Definition at line 94 of file MultiStoreSvc.cpp.


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