| The Gaudi Framework v27r1

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Classes | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
MultiStoreSvc Class Reference

Data service base class. More...

Inheritance diagram for MultiStoreSvc:
[legend]
Collaboration diagram for MultiStoreSvc:
[legend]

## Classes
struct | tagROOT

## Public Member Functions
CLID | rootCLID () const override
| IDataManagerSvc: Accessor for root event CLID. More...
const std::string & | rootName () const override
| Name for root Event. More...
STATUS | registerAddress (CSTR &path, ADDRESS *pAddr) override
| IDataManagerSvc: Register object address with the data store. More...
STATUS | registerAddress (OBJECT *parent, CSTR &path, ADDRESS *pAddr) override
| IDataManagerSvc: Register object address with the data store. More...
STATUS | registerAddress (IRegistry *parent, CSTR &path, ADDRESS *pAdd) override
| IDataManagerSvc: Register object address with the data store. More...
STATUS | unregisterAddress (CSTR &path) override
| IDataManagerSvc: Unregister object address from the data store. More...
STATUS | unregisterAddress (OBJECT *pParent, CSTR &path) override
| IDataManagerSvc: Unregister object address from the data store. More...
STATUS | unregisterAddress (IRegistry *pParent, CSTR &path) override
| IDataManagerSvc: Unregister object address from the data store. More...
STATUS | objectLeaves (const OBJECT *pObject, std::vector< IRegistry * > &leaves) override
| Explore the object store: retrieve all leaves attached to the object. More...
STATUS | objectLeaves (const IRegistry *pObject, std::vector< IRegistry * > &leaves) override
| Explore the object store: retrieve all leaves attached to the object. More...
STATUS | objectParent (const OBJECT *pObject, IRegistry *&refpParent) override
| IDataManagerSvc: Explore the object store: retrieve the object's parent. More...
STATUS | objectParent (const IRegistry *pObject, IRegistry *&refpParent) override
| IDataManagerSvc: Explore the object store: retrieve the object's parent. More...
STATUS | clearSubTree (CSTR &path) override
| Remove all data objects below the sub tree identified. More...
STATUS | clearSubTree (OBJECT *pObject) override
| Remove all data objects below the sub tree identified. More...
STATUS | clearStore () override
| IDataManagerSvc: Remove all data objects in the data store. More...
STATUS | traverseSubTree (CSTR &path, AGENT *pAgent) override
| Analyze by traversing all data objects below the sub tree. More...
STATUS | traverseSubTree (OBJECT *pObject, AGENT *pAgent) override
| IDataManagerSvc: Analyze by traversing all data objects below the sub tree. More...
STATUS | traverseTree (AGENT *pAgent) override
| IDataManagerSvc: Analyze by traversing all data objects in the data store. More...
STATUS | setRoot (std::string path, OBJECT *pObj) override
| Initialize data store for new event by giving new event path and root object. More...
STATUS | setRoot (std::string path, ADDRESS *pAddr) override
| Initialize data store for new event by giving new event path and address of root object. More...
STATUS | setDataLoader (IConversionSvc *pDataLoader, IDataProviderSvc *dpsvc=nullptr) override
| IDataManagerSvc: Pass a default data loader to the service. More...
STATUS | addPreLoadItem (const DataStoreItem &item) override
| Add an item to the preload list. More...
STATUS | addPreLoadItem (CSTR &item) override
| Add an item to the preload list. More...
STATUS | removePreLoadItem (const DataStoreItem &item) override
| Remove an item from the preload list. More...
STATUS | removePreLoadItem (CSTR &item) override
| Add an item to the preload list. More...
STATUS | resetPreLoad () override
| Clear the preload list. More...
STATUS | preLoad () override
| load all preload items of the list More...
STATUS | registerObject (CSTR &path, OBJECT *pObj) override
| Register object with the data store. More...
STATUS | registerObject (CSTR &parent, CSTR &obj, OBJECT *pObj) override
| Register object with the data store. More...
STATUS | registerObject (CSTR &parent, int item, OBJECT *pObj) override
| Register object with the data store. More...
STATUS | registerObject (OBJECT *parent, CSTR &obj, OBJECT *pObj) override
| Register object with the data store. More...
STATUS | registerObject (OBJECT *parent, int obj, OBJECT *pObj) override
| Register object with the data store. More...
STATUS | unregisterObject (CSTR &path) override
| Unregister object from the data store. More...
STATUS | unregisterObject (CSTR &parent, CSTR &obj) override
| Unregister object from the data store. More...
STATUS | unregisterObject (CSTR &parent, int obj) override
| Unregister object from the data store. More...
STATUS | unregisterObject (OBJECT *pObj) override
| Unregister object from the data store. More...
STATUS | unregisterObject (OBJECT *pObj, CSTR &path) override
| Unregister object from the data store. More...
STATUS | unregisterObject (OBJECT *pObj, int item) override
| Unregister object from the data store. More...
STATUS | retrieveObject (IRegistry *parent, CSTR &path, OBJECT *&pObj) override
| Retrieve object from data store. More...
STATUS | retrieveObject (CSTR &path, OBJECT *&pObj) override
| Retrieve object identified by its full path from the data store. More...
STATUS | retrieveObject (CSTR &parent, CSTR &path, OBJECT *&pObj) override
| Retrieve object from data store. More...
STATUS | retrieveObject (CSTR &parent, int item, OBJECT *&pObj) override
| Retrieve object from data store. More...
STATUS | retrieveObject (OBJECT *parent, CSTR &path, OBJECT *&pObj) override
| Retrieve object from data store. More...
STATUS | retrieveObject (OBJECT *parent, int item, OBJECT *&pObj) override
| Retrieve object from data store. More...
STATUS | findObject (CSTR &path, OBJECT *&pObj) override
| Find object identified by its full path in the data store. More...
STATUS | findObject (IRegistry *parent, CSTR &path, OBJECT *&pObj) override
| Find object identified by its full path in the data store. More...
STATUS | findObject (CSTR &parent, CSTR &path, OBJECT *&pObj) override
| Find object in the data store. More...
STATUS | findObject (CSTR &parent, int item, OBJECT *&pObject) override
| Find object in the data store. More...
STATUS | findObject (OBJECT *parent, CSTR &path, OBJECT *&pObject) override
| Find object in the data store. More...
STATUS | findObject (OBJECT *parent, int item, OBJECT *&pObject) override
| Find object in the data store. More...
STATUS | linkObject (IRegistry *from, CSTR &objPath, OBJECT *to) override
| Add a link to another object. More...
STATUS | linkObject (CSTR &from, CSTR &objPath, OBJECT *to) override
| Add a link to another object. More...
STATUS | linkObject (OBJECT *from, CSTR &objPath, OBJECT *to) override
| Add a link to another object. More...
STATUS | linkObject (CSTR &fullPath, OBJECT *to) override
| Add a link to another object. More...
STATUS | unlinkObject (IRegistry *from, CSTR &objPath) override
| Remove a link to another object. More...
STATUS | unlinkObject (CSTR &from, CSTR &objPath) override
| Remove a link to another object. More...
STATUS | unlinkObject (OBJECT *from, CSTR &objPath) override
| Remove a link to another object. More...
STATUS | unlinkObject (CSTR &path) override
| Remove a link to another object. More...
STATUS | updateObject (IRegistry *pDirectory) override
| Update object identified by its directory entry. More...
STATUS | updateObject (CSTR &path) override
| Update object. More...
STATUS | updateObject (OBJECT *pObj) override
| Update object. More...
STATUS | updateObject (CSTR &parent, CSTR &updatePath) override
| Update object. More...
STATUS | updateObject (OBJECT *parent, CSTR &updatePath) override
| Update object. More...
STATUS | create (CSTR &nam, CSTR &typ) override
| Create a partition object. The name identifies the partition uniquely. More...
STATUS | create (CSTR &nam, CSTR &typ, IInterface *&pPartition) override
| Create a partition object. The name identifies the partition uniquely. More...
STATUS | drop (CSTR &nam) override
| Drop a partition object. The name identifies the partition uniquely. More...
STATUS | drop (IInterface *pPartition) override
| Drop a partition object. The name identifies the partition uniquely. More...
STATUS | activate (CSTR &nam) override
| Activate a partition object. The name identifies the partition uniquely. More...
STATUS | activate (IInterface *pPartition) override
| Activate a partition object. More...
STATUS | get (CSTR &nam, IInterface *&pPartition) const override
| Access a partition object. The name identifies the partition uniquely. More...
StatusCode | activePartition (std::string &nam, IInterface *&pPartition) const override
| Access the active partition object. More...
STATUS | attachServices ()
STATUS | detachServices ()
STATUS | initialize () override
| Service initialisation. More...
STATUS | reinitialize () override
| Service initialisation. More...
STATUS | finalize () override
| Service initialisation. More...
| MultiStoreSvc (CSTR &name, ISvcLocator *svc)
| Standard Constructor. More...
| ~MultiStoreSvc () override
| 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 extends< Service, IDataProviderSvc, IDataManagerSvc, IPartitionControl >
void * | i_cast (const InterfaceID &tid) const override
| Implementation of IInterface::i_cast. More...
StatusCode | queryInterface (const InterfaceID &ti, void **pp) override
| Implementation of IInterface::queryInterface. More...
std::vector< std::string > | getInterfaceNames () const override
| Implementation of IInterface::getInterfaceNames. More...
| ~extends () override=default
| Virtual destructor. More...
Public Member Functions inherited from Service
const std::string & | name () const override
| Retrieve name of the service. More...
StatusCode | configure () override
StatusCode | initialize () override
StatusCode | start () override
StatusCode | stop () override
StatusCode | finalize () override
StatusCode | terminate () override
Gaudi::StateMachine::State | FSMState () const override
Gaudi::StateMachine::State | targetFSMState () const override
StatusCode | reinitialize () override
StatusCode | restart () override
StatusCode | sysInitialize () override
| Initialize Service. More...
StatusCode | sysStart () override
| Initialize Service. More...
StatusCode | sysStop () override
| Initialize Service. More...
StatusCode | sysFinalize () override
| Finalize Service. More...
StatusCode | sysReinitialize () override
| Re-initialize the Service. More...
StatusCode | sysRestart () override
| Re-initialize the Service. More...
StatusCode | setProperty (const Property &p) override
StatusCode | setProperty (const std::string &s) override
StatusCode | setProperty (const std::string &n, const std::string &v) override
StatusCode | getProperty (Property *p) const override
const Property & | getProperty (const std::string &name) const override
StatusCode | getProperty (const std::string &n, std::string &v) const override
const std::vector< Property * > & | getProperties () const override
bool | hasProperty (const std::string &name) const override
template<class TYPE >
StatusCode | setProperty (const std::string &name, const TYPE &value)
| set the property form the value More...
| Service (std::string name, ISvcLocator *svcloc)
| Standard Constructor. More...
SmartIF< ISvcLocator > & | serviceLocator () const override
| 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<typename IFace = IService>
SmartIF< IFace > | service (const std::string &name, 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 >
Property * | declareProperty (const std::string &name, T &property, const std::string &doc="none") const
| Declare the named property. More...
Property * | declareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="") const
| Declare remote named properties. More...
template<class T >
StatusCode | declarePrivateTool (ToolHandle< T > &handle, std::string toolTypeAndName="", bool createIf=true)
| Declare used Private tool. More...
template<class T >
StatusCode | declarePublicTool (ToolHandle< T > &handle, std::string toolTypeAndName="", bool createIf=true)
| Declare used Public tool. More...
SmartIF< IAuditorSvc > & | auditorSvc () const
| The standard auditor service.May not be invoked before sysInitialize() has been invoked. More...
Public Member Functions inherited from CommonMessagingBase
virtual | ~CommonMessagingBase ()=default
| Virtual destructor. More...
SmartIF< IMessageSvc > & | msgSvc () const
| The standard message service. More...
MsgStream & | msgStream () const
| Return an uninitialized MsgStream. More...
MsgStream & | msgStream (const MSG::Level level) const
| Predefined configurable message stream for the efficient printouts. More...
MsgStream & | always () const
| shortcut for the method msgStream(MSG::ALWAYS) More...
MsgStream & | fatal () const
| shortcut for the method msgStream(MSG::FATAL) More...
MsgStream & | err () const
| shortcut for the method msgStream(MSG::ERROR) More...
MsgStream & | error () const
| shortcut for the method msgStream(MSG::ERROR) More...
MsgStream & | warning () const
| shortcut for the method msgStream(MSG::WARNING) More...
MsgStream & | info () const
| shortcut for the method msgStream(MSG::INFO) More...
MsgStream & | debug () const
| shortcut for the method msgStream(MSG::DEBUG) More...
MsgStream & | verbose () const
| shortcut for the method msgStream(MSG::VERBOSE) More...
MsgStream & | msg () const
| shortcut for the method msgStream(MSG::INFO) More...
MSG::Level | msgLevel () const
| get the output level from the embedded MsgStream More...
MSG::Level | outputLevel () const __attribute__((deprecated))
| Backward compatibility function for getting the output level. More...
bool | msgLevel (MSG::Level lvl) const
| get the output level from the embedded MsgStream More...
Public Member Functions inherited from extend_interfaces< Interfaces...>
| ~extend_interfaces () override=default
| Virtual destructor. 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 Member Functions
template<typename... Args, typename... UArgs>
STATUS | call_ (STATUS(IDataProviderSvc::*pmf)(Args...), UArgs &&...args)
template<typename... Args, typename... UArgs>
STATUS | call_ (STATUS(IDataManagerSvc::*pmf)(Args...), UArgs &&...args)
Protected Member Functions inherited from Service
| ~Service () override
| Standard Destructor. More...
int | outputLevel () const
| get the `Service's` output level More...
Protected Member Functions inherited from CommonMessaging< implements< IService, IProperty, IStateful > >
void | updateMsgStreamOutputLevel (int level)
| Update the output level of the cached MsgStream. More...

## 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...
SmartIF< IConversionSvc > | m_dataLoader
| Pointer to data loader service. More...
SmartIF< IAddressCreator > | m_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 = MSG::NIL
| Service output level. More...
Gaudi::StateMachine::State | m_state = Gaudi::StateMachine::OFFLINE
| Service state. More...
Gaudi::StateMachine::State | m_targetState = Gaudi::StateMachine::OFFLINE
| Service state. More...

## Additional Inherited Members
Public Types inherited from extends< Service, IDataProviderSvc, IDataManagerSvc, IPartitionControl >
using | base_class = extends
| Typedef to this class. More...
using | extend_interfaces_base = extend_interfaces< Interfaces...>
| Typedef to the base of this class. More...
Public Types inherited from Service
typedef Gaudi::PluginService::Factory< IService *, const std::string &, ISvcLocator * > | Factory
Public Types inherited from CommonMessaging< implements< IService, IProperty, IStateful > >
using | base_class = CommonMessaging
Public Types inherited from extend_interfaces< Interfaces...>
using | ext_iids = typename Gaudi::interface_list_cat< typename Interfaces::ext_iids...>::type
| take union of the ext_iids of all Interfaces... 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 67 of file MultiStoreSvc.cpp.

## Member Typedef Documentation

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

Definition at line 73 of file MultiStoreSvc.cpp.

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

Definition at line 74 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 86 of file MultiStoreSvc.cpp.

86 { no_type = 0, address_type = 1, object_type = 2};
MultiStoreSvc::address_type
Definition: MultiStoreSvc.cpp:86
MultiStoreSvc::object_type
Definition: MultiStoreSvc.cpp:86
MultiStoreSvc::no_type
Definition: MultiStoreSvc.cpp:86

## Constructor & Destructor Documentation

MultiStoreSvc::MultiStoreSvc | ( | CSTR & | name,
|  | ISvcLocator * | svc
| ) |  |
| inline

Standard Constructor.

Definition at line 602 of file MultiStoreSvc.cpp.

603 : base_class(name,svc)
604 {
605 declareProperty("RootCLID", m_rootCLID = 110);
606 declareProperty("RootName", m_rootName = "/Event");
607 declareProperty("Partitions", m_partitionDefs);
608 declareProperty("DataLoader", m_loader="EventPersistencySvc");
609 declareProperty("DefaultPartition", m_defaultPartition="Default");
610 }
MultiStoreSvc::m_partitionDefs
PartitionDefs m_partitionDefs
Datastore partition definitions.
Definition: MultiStoreSvc.cpp:101
extends< Service, IDataProviderSvc, IDataManagerSvc, IPartitionControl >::base_class
extends base_class
Typedef to this class.
Definition: extends.h:14
MultiStoreSvc::m_rootName
std::string m_rootName
Name of root event.
Definition: MultiStoreSvc.cpp:78
MultiStoreSvc::m_loader
std::string m_loader
Data loader name.
Definition: MultiStoreSvc.cpp:80
MultiStoreSvc::m_rootCLID
CLID m_rootCLID
Integer Property corresponding to CLID of root entry.
Definition: MultiStoreSvc.cpp:76
Service::declareProperty
Property * declareProperty(const std::string &name, T &property, const std::string &doc="none") const
Declare the named property.
Definition: Service.h:215
MultiStoreSvc::m_defaultPartition
std::string m_defaultPartition
Default partition.
Definition: MultiStoreSvc.cpp:103

MultiStoreSvc::~MultiStoreSvc | ( |  | ) |
| inline override

Standard Destructor.

Definition at line 613 of file MultiStoreSvc.cpp.

613 {
614 setDataLoader(nullptr).ignore();
615 resetPreLoad().ignore();
616 clearStore().ignore();
617 clearPartitions().ignore();
618 }
MultiStoreSvc::setDataLoader
STATUS setDataLoader(IConversionSvc *pDataLoader, IDataProviderSvc *dpsvc=nullptr) override
IDataManagerSvc: Pass a default data loader to the service.
Definition: MultiStoreSvc.cpp:253
MultiStoreSvc::clearPartitions
STATUS clearPartitions()
Clear all partitions.
Definition: MultiStoreSvc.cpp:657
MultiStoreSvc::resetPreLoad
STATUS resetPreLoad() override
Clear the preload list.
Definition: MultiStoreSvc.cpp:278
StatusCode::ignore
void ignore() const
Definition: StatusCode.h:108
MultiStoreSvc::clearStore
STATUS clearStore() override
IDataManagerSvc: Remove all data objects in the data store.
Definition: MultiStoreSvc.cpp:178

## Member Function Documentation

STATUS MultiStoreSvc::activate | ( | CSTR & | nam | ) |
| inline override

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

Definition at line 475 of file MultiStoreSvc.cpp.

475 {
476 auto i = m_partitions.find(nam);
477 if ( i != m_partitions.end() ) {
478 m_current = i->second;
479 return STATUS::SUCCESS;
480 }
481 m_current = Partition();
482 return PARTITION_NOT_PRESENT;
483 }
MultiStoreSvc::m_partitions
Partitions m_partitions
Datastore partitions.
Definition: MultiStoreSvc.cpp:99
std::map::end
T end(T...args)
StatusCode::SUCCESS
Definition: StatusCode.h:30
MultiStoreSvc::m_current
Partition m_current
Current partition.
Definition: MultiStoreSvc.cpp:97
std::map::find
T find(T...args)
ana.i
list i
Definition: ana.py:128

STATUS MultiStoreSvc::activate | ( | IInterface * | pPartition | ) |
| inline override

Activate a partition object.

Definition at line 486 of file MultiStoreSvc.cpp.

486 {
487 auto provider = SmartIF<IDataProviderSvc>(pPartition);
488 m_current = Partition();
489 if ( !provider ) return NO_INTERFACE;
490 auto i = std::find_if(std::begin(m_partitions), std::end(m_partitions),
491 [&](Partitions::const_reference p) {
492 return p.second.dataProvider == provider;
493 } );
494 if (i == std::end(m_partitions)) return PARTITION_NOT_PRESENT;
495 m_current = i->second;
496 return STATUS::SUCCESS;
497 }
SmartIF< IDataProviderSvc >
MultiStoreSvc::m_partitions
Partitions m_partitions
Datastore partitions.
Definition: MultiStoreSvc.cpp:99
std::end
T end(T...args)
StatusCode::SUCCESS
Definition: StatusCode.h:30
MultiStoreSvc::m_current
Partition m_current
Current partition.
Definition: MultiStoreSvc.cpp:97
std::find_if
T find_if(T...args)
std::begin
T begin(T...args)
ana.i
list i
Definition: ana.py:128

StatusCode MultiStoreSvc::activePartition | ( | std::string & | nam,
|  | IInterface *& | pPartition
| ) |  | const
| inline override

Access the active partition object.

Definition at line 511 of file MultiStoreSvc.cpp.

511 {
512 if ( m_current.dataProvider ) {
513 nam = m_current.name;
514 pPartition = m_current.dataProvider;
515 return STATUS::SUCCESS;
516 }
517 nam.clear();
518 pPartition = nullptr;
519 return NO_ACTIVE_PARTITION;
520 }
StatusCode::SUCCESS
Definition: StatusCode.h:30
std::string::clear
T clear(T...args)
MultiStoreSvc::m_current
Partition m_current
Current partition.
Definition: MultiStoreSvc.cpp:97

STATUS MultiStoreSvc::addPreLoadItem | ( | const DataStoreItem & | item | ) |
| inline override

Add an item to the preload list.

Definition at line 262 of file MultiStoreSvc.cpp.

262 {
263 return call_<const DataStoreItem&>( &IDataProviderSvc::addPreLoadItem, item);
264 }
IDataProviderSvc::addPreLoadItem
virtual StatusCode addPreLoadItem(const DataStoreItem &item)=0
Add an item to the preload list.
ana.item
tuple item
print s1,s2
Definition: ana.py:146

STATUS MultiStoreSvc::addPreLoadItem | ( | CSTR & | item | ) |
| inline override

Add an item to the preload list.

Definition at line 266 of file MultiStoreSvc.cpp.

266 {
267 return call_<CSTR&>( &IDataProviderSvc::addPreLoadItem, item);
268 }
IDataProviderSvc::addPreLoadItem
virtual StatusCode addPreLoadItem(const DataStoreItem &item)=0
Add an item to the preload list.
ana.item
tuple item
print s1,s2
Definition: ana.py:146

STATUS MultiStoreSvc::attachServices | ( |  | ) |
| inline

Definition at line 522 of file MultiStoreSvc.cpp.

522 {
523 // Attach address creator facility
524 m_addrCreator = service(m_loader, true);
525 if (!m_addrCreator) {
526 error()
527 << "Failed to retrieve data loader "
528 << "\"" << m_loader << "\"" << endmsg;
529 return StatusCode::FAILURE;
530 }
531 // Attach data loader facility
532 auto dataLoader = service<IConversionSvc>(m_loader, true);
533 if (!dataLoader) {
534 error() << "Failed to retrieve data loader "
535 << "\"" << m_loader << "\"" << endmsg;
536 return StatusCode::FAILURE;
537 }
538 auto sc = setDataLoader(dataLoader.get());
539 if (!sc.isSuccess()) {
540 error() << "Failed to set data loader "
541 << "\"" << m_loader << "\"" << endmsg;
542 }
543 return sc;
544 }
merge_files.sc
int sc
Definition: merge_files.py:167
MultiStoreSvc::setDataLoader
STATUS setDataLoader(IConversionSvc *pDataLoader, IDataProviderSvc *dpsvc=nullptr) override
IDataManagerSvc: Pass a default data loader to the service.
Definition: MultiStoreSvc.cpp:253
CommonMessagingBase::error
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
Definition: CommonMessaging.h:118
StatusCode::FAILURE
Definition: StatusCode.h:29
MultiStoreSvc::m_loader
std::string m_loader
Data loader name.
Definition: MultiStoreSvc.cpp:80
MultiStoreSvc::m_addrCreator
SmartIF< IAddressCreator > m_addrCreator
Reference to address creator.
Definition: MultiStoreSvc.cpp:84
Service::service
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:144
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
template<typename... Args, typename... UArgs>

STATUS MultiStoreSvc::call_ | ( | STATUS(IDataProviderSvc::*)(Args...) | pmf,
|  | UArgs &&... | args
| ) |  |
| inline protected

Definition at line 107 of file MultiStoreSvc.cpp.

108 {
109 return m_current.dataProvider ? (m_current.dataProvider->*pmf)(std::forward<UArgs>(args)...)
110 : IDataProviderSvc::INVALID_ROOT;
111 }
IDataProviderSvc::INVALID_ROOT
Invalid root path object cannot be retrieved or stored.
Definition: IDataProviderSvc.h:537
MultiStoreSvc::m_current
Partition m_current
Current partition.
Definition: MultiStoreSvc.cpp:97
gaudirun.args
list args
Definition: gaudirun.py:290
template<typename... Args, typename... UArgs>

STATUS MultiStoreSvc::call_ | ( | STATUS(IDataManagerSvc::*)(Args...) | pmf,
|  | UArgs &&... | args
| ) |  |
| inline protected

Definition at line 113 of file MultiStoreSvc.cpp.

114 {
115 return m_current.dataManager ? (m_current.dataManager->*pmf)(std::forward<UArgs>(args)...)
116 : IDataProviderSvc::INVALID_ROOT;
117 }
IDataProviderSvc::INVALID_ROOT
Invalid root path object cannot be retrieved or stored.
Definition: IDataProviderSvc.h:537
MultiStoreSvc::m_current
Partition m_current
Current partition.
Definition: MultiStoreSvc.cpp:97
gaudirun.args
list args
Definition: gaudirun.py:290

STATUS MultiStoreSvc::clearPartitions | ( |  | ) |
| inline

Clear all partitions.

Definition at line 657 of file MultiStoreSvc.cpp.

657 {
658 for(auto &i : m_partitions) i.second.dataManager->clearStore().ignore();
659 m_partitions.clear();
660 return STATUS::SUCCESS;
661 }
MultiStoreSvc::m_partitions
Partitions m_partitions
Datastore partitions.
Definition: MultiStoreSvc.cpp:99
StatusCode::SUCCESS
Definition: StatusCode.h:30
ana.i
list i
Definition: ana.py:128

STATUS MultiStoreSvc::clearStore | ( |  | ) |
| inline override

IDataManagerSvc: Remove all data objects in the data store.

Definition at line 178 of file MultiStoreSvc.cpp.

178 {
179 for(auto &i : m_partitions) {
180 i.second.dataManager->clearStore().ignore();
181 }
182 if ( m_root.root.object ) {
183 switch ( m_root.type ) {
184 case address_type:
185 m_root.root.address->release();
186 break;
187 case object_type:
188 m_root.root.object->release();
189 break;
190 }
191 m_root.root.object = nullptr;
192 }
193 m_root.path.clear();
194 m_root.type = no_type;
195 return STATUS::SUCCESS;
196 }
MultiStoreSvc::tagROOT::type
int type
Definition: MultiStoreSvc.cpp:88
MultiStoreSvc::tagROOT::address
ADDRESS * address
Definition: MultiStoreSvc.cpp:91
MultiStoreSvc::m_partitions
Partitions m_partitions
Datastore partitions.
Definition: MultiStoreSvc.cpp:99
IOpaqueAddress::release
virtual unsigned long release()=0
release reference to object
StatusCode::SUCCESS
Definition: StatusCode.h:30
MultiStoreSvc::address_type
Definition: MultiStoreSvc.cpp:86
MultiStoreSvc::m_root
struct MultiStoreSvc::tagROOT m_root
std::string::clear
T clear(T...args)
MultiStoreSvc::tagROOT::object
OBJECT * object
Definition: MultiStoreSvc.cpp:92
MultiStoreSvc::tagROOT::root
union MultiStoreSvc::tagROOT::@1 root
DataObject::release
virtual unsigned long release()
release reference to object
Definition: DataObject.cpp:56
MultiStoreSvc::object_type
Definition: MultiStoreSvc.cpp:86
ana.i
list i
Definition: ana.py:128
MultiStoreSvc::tagROOT::path
std::string path
Definition: MultiStoreSvc.cpp:89
MultiStoreSvc::no_type
Definition: MultiStoreSvc.cpp:86

STATUS MultiStoreSvc::clearSubTree | ( | CSTR & | path | ) |
| inline override

Remove all data objects below the sub tree identified.

Definition at line 170 of file MultiStoreSvc.cpp.

170 {
171 return call_<CSTR&>( &IDataManagerSvc::clearSubTree, path);
172 }
IDataManagerSvc::clearSubTree
virtual StatusCode clearSubTree(const std::string &sub_path)=0
Remove all data objects below the sub tree identified by its full path name.
Gaudi::Utils::Histos::path
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
Definition: HistoTableFormat.cpp:191

STATUS MultiStoreSvc::clearSubTree | ( | OBJECT * | pObject | ) |
| inline override

Remove all data objects below the sub tree identified.

Definition at line 174 of file MultiStoreSvc.cpp.

174 {
175 return call_<OBJECT*>( &IDataManagerSvc::clearSubTree, pObject);
176 }
IDataManagerSvc::clearSubTree
virtual StatusCode clearSubTree(const std::string &sub_path)=0
Remove all data objects below the sub tree identified by its full path name.

STATUS MultiStoreSvc::create | ( | CSTR & | nam,
|  | CSTR & | typ
| ) |  |
| inline override

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

Definition at line 431 of file MultiStoreSvc.cpp.

431 {
432 IInterface* pPartition = nullptr;
433 return create(nam, typ, pPartition);
434 }
MultiStoreSvc::create
STATUS create(CSTR &nam, CSTR &typ) override
Create a partition object. The name identifies the partition uniquely.
Definition: MultiStoreSvc.cpp:431
IInterface
Definition of the basic interface.
Definition: IInterface.h:234

STATUS MultiStoreSvc::create | ( | CSTR & | nam,
|  | CSTR & | typ,
|  | IInterface *& | pPartition
| ) |  |
| inline override

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 436 of file MultiStoreSvc.cpp.

436 {
437 if ( get(nam, pPartition).isSuccess() ) return PARTITION_EXISTS;
439 auto isvc = serviceLocator()->service<IService>(typ);
440 if (!isvc) return NO_INTERFACE;
441 auto dataMgr = isvc.as<IDataManagerSvc>();
442 auto dataProv = isvc.as<IDataProviderSvc>();
443 if ( !dataMgr || !dataProv ) return NO_INTERFACE;
444 m_partitions.emplace( nam, Partition{ dataProv, dataMgr, nam } );
445 return STATUS::SUCCESS;
446 }
Service::serviceLocator
SmartIF< ISvcLocator > & serviceLocator() const override
Retrieve pointer to service locator.
Definition: Service.cpp:324
MultiStoreSvc::m_partitions
Partitions m_partitions
Datastore partitions.
Definition: MultiStoreSvc.cpp:99
IDataProviderSvc
Data provider interface definition.
Definition: IDataProviderSvc.h:45
ISvcLocator::service
StatusCode service(const Gaudi::Utils::TypeNameString &name, T *&svc, bool createIf=true)
Templated method to access a service by name.
Definition: ISvcLocator.h:78
IService
General service interface definition.
Definition: IService.h:18
StatusCode::SUCCESS
Definition: StatusCode.h:30
IDataManagerSvc
Definition: IDataManagerSvc.h:45
std::map::emplace
T emplace(T...args)

STATUS MultiStoreSvc::detachServices | ( |  | ) |
| inline

Definition at line 546 of file MultiStoreSvc.cpp.

546 {
547 m_addrCreator.reset();
548 m_dataLoader.reset();
549 return STATUS::SUCCESS;
550 }
MultiStoreSvc::m_dataLoader
SmartIF< IConversionSvc > m_dataLoader
Pointer to data loader service.
Definition: MultiStoreSvc.cpp:82
StatusCode::SUCCESS
Definition: StatusCode.h:30
MultiStoreSvc::m_addrCreator
SmartIF< IAddressCreator > m_addrCreator
Reference to address creator.
Definition: MultiStoreSvc.cpp:84
SmartIF::reset
void reset(TYPE *ptr=nullptr)
Set the internal pointer to the passed one disposing of the old one.
Definition: SmartIF.h:88

STATUS MultiStoreSvc::drop | ( | CSTR & | nam | ) |
| inline override

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

Definition at line 449 of file MultiStoreSvc.cpp.

449 {
450 auto i = m_partitions.find(nam);
451 if ( i == m_partitions.end() ) return PARTITION_NOT_PRESENT;
452 if ( i->second.dataManager == m_current.dataManager ) {
453 m_current = Partition();
454 }
455 i->second.dataManager->clearStore().ignore();
456 m_partitions.erase(i);
457 return STATUS::SUCCESS;
458 }
MultiStoreSvc::m_partitions
Partitions m_partitions
Datastore partitions.
Definition: MultiStoreSvc.cpp:99
std::map::end
T end(T...args)
StatusCode::SUCCESS
Definition: StatusCode.h:30
std::map::erase
T erase(T...args)
MultiStoreSvc::m_current
Partition m_current
Current partition.
Definition: MultiStoreSvc.cpp:97
std::map::find
T find(T...args)
ana.i
list i
Definition: ana.py:128

STATUS MultiStoreSvc::drop | ( | IInterface * | pPartition | ) |
| inline override

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

Definition at line 461 of file MultiStoreSvc.cpp.

461 {
462 auto provider = SmartIF<IDataProviderSvc>(pPartition);
463 if ( !provider ) return NO_INTERFACE;
464 auto i = std::find_if( std::begin(m_partitions), std::end(m_partitions),
465 [&](Partitions::const_reference p) {
466 return p.second.dataProvider == provider;
467 } );
468 if (i==std::end(m_partitions)) return PARTITION_NOT_PRESENT;
469 i->second.dataManager->clearStore().ignore();
470 m_partitions.erase(i);
471 return STATUS::SUCCESS;
472 }
SmartIF< IDataProviderSvc >
MultiStoreSvc::m_partitions
Partitions m_partitions
Datastore partitions.
Definition: MultiStoreSvc.cpp:99
std::end
T end(T...args)
StatusCode::SUCCESS
Definition: StatusCode.h:30
std::map::erase
T erase(T...args)
std::find_if
T find_if(T...args)
std::begin
T begin(T...args)
ana.i
list i
Definition: ana.py:128

STATUS MultiStoreSvc::finalize | ( |  | ) |
| inline override

Service initialisation.

Definition at line 589 of file MultiStoreSvc.cpp.

589 {
590 setDataLoader(nullptr).ignore();
591 clearStore().ignore();
592 clearPartitions().ignore();
593 m_current = Partition();
594 detachServices();
595 return Service::finalize();
596 }
Service::finalize
StatusCode finalize() override
Definition: Service.cpp:193
MultiStoreSvc::detachServices
STATUS detachServices()
Definition: MultiStoreSvc.cpp:546
MultiStoreSvc::setDataLoader
STATUS setDataLoader(IConversionSvc *pDataLoader, IDataProviderSvc *dpsvc=nullptr) override
IDataManagerSvc: Pass a default data loader to the service.
Definition: MultiStoreSvc.cpp:253
MultiStoreSvc::clearPartitions
STATUS clearPartitions()
Clear all partitions.
Definition: MultiStoreSvc.cpp:657
MultiStoreSvc::m_current
Partition m_current
Current partition.
Definition: MultiStoreSvc.cpp:97
StatusCode::ignore
void ignore() const
Definition: StatusCode.h:108
MultiStoreSvc::clearStore
STATUS clearStore() override
IDataManagerSvc: Remove all data objects in the data store.
Definition: MultiStoreSvc.cpp:178

STATUS MultiStoreSvc::findObject | ( | CSTR & | path,
|  | OBJECT *& | pObj
| ) |  |
| inline override

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

Definition at line 354 of file MultiStoreSvc.cpp.

354 {
355 return call_<CSTR&,OBJECT*&>( &IDataProviderSvc::retrieveObject, path, pObj);
356 }
Gaudi::Utils::Histos::path
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
Definition: HistoTableFormat.cpp:191
IDataProviderSvc::retrieveObject
virtual StatusCode retrieveObject(IRegistry *pDirectory, const std::string &path, DataObject *&pObject)=0
Retrieve object identified by its directory entry.

STATUS MultiStoreSvc::findObject | ( | IRegistry * | parent,
|  | CSTR & | path,
|  | OBJECT *& | pObj
| ) |  |
| inline override

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

Definition at line 358 of file MultiStoreSvc.cpp.

358 {
359 return call_<IRegistry*,CSTR&,OBJECT*&>( &IDataProviderSvc::findObject, parent, path, pObj);
360 }
IDataProviderSvc::findObject
virtual StatusCode findObject(IRegistry *pDirectory, const std::string &path, DataObject *&pObject)=0
Find object identified by its directory entry.
Gaudi::Utils::Histos::path
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
Definition: HistoTableFormat.cpp:191

STATUS MultiStoreSvc::findObject | ( | CSTR & | parent,
|  | CSTR & | path,
|  | OBJECT *& | pObj
| ) |  |
| inline override

Find object in the data store.

Definition at line 362 of file MultiStoreSvc.cpp.

362 {
363 return call_<CSTR&,CSTR&,OBJECT*&>( &IDataProviderSvc::retrieveObject, parent, path, pObj);
364 }
Gaudi::Utils::Histos::path
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
Definition: HistoTableFormat.cpp:191
IDataProviderSvc::retrieveObject
virtual StatusCode retrieveObject(IRegistry *pDirectory, const std::string &path, DataObject *&pObject)=0
Retrieve object identified by its directory entry.

STATUS MultiStoreSvc::findObject | ( | CSTR & | parent,
|  | int | item,
|  | OBJECT *& | pObject
| ) |  |
| inline override

Find object in the data store.

Definition at line 366 of file MultiStoreSvc.cpp.

366 {
367 return call_<CSTR&,int,OBJECT*&>( &IDataProviderSvc::findObject, parent, item, pObject);
368 }
IDataProviderSvc::findObject
virtual StatusCode findObject(IRegistry *pDirectory, const std::string &path, DataObject *&pObject)=0
Find object identified by its directory entry.
ana.item
tuple item
print s1,s2
Definition: ana.py:146

STATUS MultiStoreSvc::findObject | ( | OBJECT * | parent,
|  | CSTR & | path,
|  | OBJECT *& | pObject
| ) |  |
| inline override

Find object in the data store.

Definition at line 370 of file MultiStoreSvc.cpp.

370 {
371 return call_<OBJECT*,CSTR&,OBJECT*&>( &IDataProviderSvc::findObject, parent, path, pObject);
372 }
IDataProviderSvc::findObject
virtual StatusCode findObject(IRegistry *pDirectory, const std::string &path, DataObject *&pObject)=0
Find object identified by its directory entry.
Gaudi::Utils::Histos::path
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
Definition: HistoTableFormat.cpp:191

STATUS MultiStoreSvc::findObject | ( | OBJECT * | parent,
|  | int | item,
|  | OBJECT *& | pObject
| ) |  |
| inline override

Find object in the data store.

Definition at line 374 of file MultiStoreSvc.cpp.

374 {
375 return call_<OBJECT*,int,OBJECT*&>( &IDataProviderSvc::findObject, parent, item, pObject);
376 }
IDataProviderSvc::findObject
virtual StatusCode findObject(IRegistry *pDirectory, const std::string &path, DataObject *&pObject)=0
Find object identified by its directory entry.
ana.item
tuple item
print s1,s2
Definition: ana.py:146

STATUS MultiStoreSvc::get | ( | CSTR & | nam,
|  | IInterface *& | pPartition
| ) |  | const
| inline override

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

Definition at line 500 of file MultiStoreSvc.cpp.

500 {
501 auto i = m_partitions.find(nam);
502 if ( i != m_partitions.end() ) {
503 pPartition = i->second.dataProvider;
504 return STATUS::SUCCESS;
505 }
506 pPartition = nullptr;
507 return PARTITION_NOT_PRESENT;
508 }
MultiStoreSvc::m_partitions
Partitions m_partitions
Datastore partitions.
Definition: MultiStoreSvc.cpp:99
std::map::end
T end(T...args)
StatusCode::SUCCESS
Definition: StatusCode.h:30
std::map::find
T find(T...args)
ana.i
list i
Definition: ana.py:128

STATUS MultiStoreSvc::initialize | ( |  | ) |
| inline override

Service initialisation.

Definition at line 553 of file MultiStoreSvc.cpp.

553 {
554 // Nothing to do: just call base class initialisation
555 STATUS sc = Service::initialize();
556 if ( !sc.isSuccess() ) return sc;
557 sc = makePartitions();
558 if (!sc.isSuccess()) {
559 error() << "Failed to connect to all store partitions." << endmsg;
560 return sc;
561 }
562 return attachServices();
563 }
Service::initialize
StatusCode initialize() override
Definition: Service.cpp:68
StatusCode::isSuccess
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:76
merge_files.sc
int sc
Definition: merge_files.py:167
MultiStoreSvc::makePartitions
STATUS makePartitions()
Create all partitions according to job options.
Definition: MultiStoreSvc.cpp:664
CommonMessagingBase::error
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
Definition: CommonMessaging.h:118
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
MultiStoreSvc::attachServices
STATUS attachServices()
Definition: MultiStoreSvc.cpp:522

STATUS MultiStoreSvc::linkObject | ( | IRegistry * | from,
|  | CSTR & | objPath,
|  | OBJECT * | to
| ) |  |
| inline override

Add a link to another object.

Definition at line 378 of file MultiStoreSvc.cpp.

378 {
379 return call_<IRegistry*,CSTR&,OBJECT*>( &IDataProviderSvc::linkObject, from, objPath, to);
380 }
IDataProviderSvc::linkObject
virtual StatusCode linkObject(IRegistry *from, const std::string &objPath, DataObject *toObj)=0
Add a link to another object.

STATUS MultiStoreSvc::linkObject | ( | CSTR & | from,
|  | CSTR & | objPath,
|  | OBJECT * | to
| ) |  |
| inline override

Add a link to another object.

Definition at line 382 of file MultiStoreSvc.cpp.

382 {
383 return call_<CSTR&,CSTR&,OBJECT*>( &IDataProviderSvc::linkObject, from, objPath, to);
384 }
IDataProviderSvc::linkObject
virtual StatusCode linkObject(IRegistry *from, const std::string &objPath, DataObject *toObj)=0
Add a link to another object.

STATUS MultiStoreSvc::linkObject | ( | OBJECT * | from,
|  | CSTR & | objPath,
|  | OBJECT * | to
| ) |  |
| inline override

Add a link to another object.

Definition at line 386 of file MultiStoreSvc.cpp.

386 {
387 return call_<OBJECT*,CSTR&,OBJECT*>( &IDataProviderSvc::linkObject, from, objPath, to);
388 }
IDataProviderSvc::linkObject
virtual StatusCode linkObject(IRegistry *from, const std::string &objPath, DataObject *toObj)=0
Add a link to another object.

STATUS MultiStoreSvc::linkObject | ( | CSTR & | fullPath,
|  | OBJECT * | to
| ) |  |
| inline override

Add a link to another object.

Definition at line 390 of file MultiStoreSvc.cpp.

390 {
391 return call_<CSTR&,OBJECT*>( &IDataProviderSvc::linkObject, fullPath, to);
392 }
IDataProviderSvc::linkObject
virtual StatusCode linkObject(IRegistry *from, const std::string &objPath, DataObject *toObj)=0
Add a link to another object.

STATUS MultiStoreSvc::makePartitions | ( |  | ) |
| inline

Create all partitions according to job options.

Definition at line 664 of file MultiStoreSvc.cpp.

664 {
665 using Parser = Gaudi::Utils::AttribStringParser;
666 std::string typ, nam;
667 clearPartitions().ignore();
668 for(auto part: m_partitionDefs) {
669 for(auto attrib: Parser(std::move(part))) {
670 switch( ::toupper(attrib.tag[0]) ) {
671 case 'N':
672 nam = std::move(attrib.value);
673 break;
674 case 'T':
675 typ = std::move(attrib.value);
676 break;
677 }
678 }
679 STATUS sc = create(nam, typ);
680 if ( !sc.isSuccess() ) return sc;
681 if ( m_defaultPartition.empty() ) m_defaultPartition = nam;
682 }
683 return STATUS::SUCCESS;
684 }
Gaudi::Utils::AttribStringParser
Parse attribute strings allowing iteration over the various attributes.
Definition: AttribStringParser.h:30
std::string::empty
T empty(T...args)
MultiStoreSvc::m_partitionDefs
PartitionDefs m_partitionDefs
Datastore partition definitions.
Definition: MultiStoreSvc.cpp:101
StatusCode::isSuccess
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:76
merge_files.sc
int sc
Definition: merge_files.py:167
MultiStoreSvc::create
STATUS create(CSTR &nam, CSTR &typ) override
Create a partition object. The name identifies the partition uniquely.
Definition: MultiStoreSvc.cpp:431
std::string
STL class.
StatusCode::SUCCESS
Definition: StatusCode.h:30
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
MultiStoreSvc::clearPartitions
STATUS clearPartitions()
Clear all partitions.
Definition: MultiStoreSvc.cpp:657
std::move
T move(T...args)
StatusCode::ignore
void ignore() const
Definition: StatusCode.h:108
MultiStoreSvc::m_defaultPartition
std::string m_defaultPartition
Default partition.
Definition: MultiStoreSvc.cpp:103
toupper
void toupper(std::string &s)
Definition: StatusCodeSvc.cpp:10

STATUS MultiStoreSvc::objectLeaves | ( | const OBJECT * | pObject,
|  | std::vector< IRegistry * > & | leaves
| ) |  |
| inline override

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

Definition at line 154 of file MultiStoreSvc.cpp.

154 {
155 return call_<const OBJECT*,std::vector<IRegistry*>&>(&IDataManagerSvc::objectLeaves, pObject, leaves);
156 }
IDataManagerSvc::objectLeaves
virtual StatusCode objectLeaves(const DataObject *pObject, std::vector< IRegistry * > &refLeaves)=0
Explore the object store: retrieve all leaves attached to the object The object is identified by its ...

STATUS MultiStoreSvc::objectLeaves | ( | const IRegistry * | pObject,
|  | std::vector< IRegistry * > & | leaves
| ) |  |
| inline override

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

Definition at line 158 of file MultiStoreSvc.cpp.

158 {
159 return call_<const IRegistry*,std::vector<IRegistry*>&>( &IDataManagerSvc::objectLeaves, pObject, leaves);
160 }
IDataManagerSvc::objectLeaves
virtual StatusCode objectLeaves(const DataObject *pObject, std::vector< IRegistry * > &refLeaves)=0
Explore the object store: retrieve all leaves attached to the object The object is identified by its ...

STATUS MultiStoreSvc::objectParent | ( | const OBJECT * | pObject,
|  | IRegistry *& | refpParent
| ) |  |
| inline override

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

Definition at line 162 of file MultiStoreSvc.cpp.

162 {
163 return call_<const OBJECT*, IRegistry*&>( &IDataManagerSvc::objectParent, pObject, refpParent);
164 }
IDataManagerSvc::objectParent
virtual StatusCode objectParent(const DataObject *pObject, IRegistry *&refpParent)=0
IDataManagerSvc: Explore the object store: retrieve the object's parent.

STATUS MultiStoreSvc::objectParent | ( | const IRegistry * | pObject,
|  | IRegistry *& | refpParent
| ) |  |
| inline override

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

Definition at line 166 of file MultiStoreSvc.cpp.

166 {
167 return call_<const IRegistry*, IRegistry*&>( &IDataManagerSvc::objectParent, pObject, refpParent);
168 }
IDataManagerSvc::objectParent
virtual StatusCode objectParent(const DataObject *pObject, IRegistry *&refpParent)=0
IDataManagerSvc: Explore the object store: retrieve the object's parent.

STATUS MultiStoreSvc::preLoad | ( |  | ) |
| inline override

load all preload items of the list

Definition at line 282 of file MultiStoreSvc.cpp.

282 {
283 return call_<>( &IDataProviderSvc::preLoad );
284 }
IDataProviderSvc::preLoad
virtual StatusCode preLoad()=0
Load all preload items of the list.

STATUS MultiStoreSvc::preparePartitions | ( |  | ) |
| inline

Prepare partition for usage.

Definition at line 621 of file MultiStoreSvc.cpp.

621 {
622 STATUS iret = STATUS::SUCCESS;
623 for(auto& i : m_partitions) {
624 STATUS sc = STATUS::FAILURE;
625 switch ( m_root.type ) {
626 case address_type:
627 if ( m_root.root.address ) {
628 ADDRESS* pAdd = nullptr;
629 ADDRESS* p = m_root.root.address;
630 sc = m_addrCreator->createAddress(p->svcType(),
631 p->clID(),
632 p->par(),
633 p->ipar(),
634 pAdd);
635 if ( sc.isSuccess() ) {
636 sc = i.second.dataManager->setRoot(m_root.path, pAdd);
637 }
638 }
639 break;
640 case object_type:
641 if ( m_root.root.object ) {
642 if ( m_root.root.object->clID() == CLID_DataObject ) {
643 sc = i.second.dataManager->setRoot(m_root.path, new DataObject());
644 }
645 }
646 break;
647 default:
648 sc = STATUS::FAILURE;
649 break;
650 }
651 if ( !sc.isSuccess() ) iret = sc;
652 }
653 return iret;
654 }
IOpaqueAddress::par
virtual const std::string * par() const =0
Retrieve String parameters.
MultiStoreSvc::tagROOT::type
int type
Definition: MultiStoreSvc.cpp:88
MultiStoreSvc::tagROOT::address
ADDRESS * address
Definition: MultiStoreSvc.cpp:91
MultiStoreSvc::m_partitions
Partitions m_partitions
Datastore partitions.
Definition: MultiStoreSvc.cpp:99
IAddressCreator::createAddress
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.
StatusCode::isSuccess
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:76
merge_files.sc
int sc
Definition: merge_files.py:167
IOpaqueAddress::svcType
virtual long svcType() const =0
Retrieve service type.
DataObject::clID
virtual const CLID & clID() const
Retrieve reference to class definition structure.
Definition: DataObject.cpp:68
IOpaqueAddress::clID
virtual const CLID & clID() const =0
Retrieve class information from link.
StatusCode::FAILURE
Definition: StatusCode.h:29
StatusCode::SUCCESS
Definition: StatusCode.h:30
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
MultiStoreSvc::address_type
Definition: MultiStoreSvc.cpp:86
MultiStoreSvc::m_root
struct MultiStoreSvc::tagROOT m_root
MultiStoreSvc::tagROOT::object
OBJECT * object
Definition: MultiStoreSvc.cpp:92
MultiStoreSvc::tagROOT::root
union MultiStoreSvc::tagROOT::@1 root
MultiStoreSvc::object_type
Definition: MultiStoreSvc.cpp:86
MultiStoreSvc::m_addrCreator
SmartIF< IAddressCreator > m_addrCreator
Reference to address creator.
Definition: MultiStoreSvc.cpp:84
IOpaqueAddress
Opaque address interface definition.
Definition: IOpaqueAddress.h:23
DataObject
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:30
ana.i
list i
Definition: ana.py:128
IOpaqueAddress::ipar
virtual const unsigned long * ipar() const =0
Access to generic link parameters.
MultiStoreSvc::tagROOT::path
std::string path
Definition: MultiStoreSvc.cpp:89

STATUS MultiStoreSvc::registerAddress | ( | CSTR & | path,
|  | ADDRESS * | pAddr
| ) |  |
| inline override

IDataManagerSvc: Register object address with the data store.

Definition at line 130 of file MultiStoreSvc.cpp.

130 {
131 return call_<CSTR&,ADDRESS*>( &IDataManagerSvc::registerAddress, path, pAddr);
132 }
Gaudi::Utils::Histos::path
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
Definition: HistoTableFormat.cpp:191
IDataManagerSvc::registerAddress
virtual StatusCode registerAddress(const std::string &fullPath, IOpaqueAddress *pAddress)=0
Register object address with the data store.

STATUS MultiStoreSvc::registerAddress | ( | OBJECT * | parent,
|  | CSTR & | path,
|  | ADDRESS * | pAddr
| ) |  |
| inline override

IDataManagerSvc: Register object address with the data store.

Definition at line 134 of file MultiStoreSvc.cpp.

134 {
135 return call_<OBJECT*,CSTR&,ADDRESS*>( &IDataManagerSvc::registerAddress, parent, path, pAddr);
136 }
Gaudi::Utils::Histos::path
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
Definition: HistoTableFormat.cpp:191
IDataManagerSvc::registerAddress
virtual StatusCode registerAddress(const std::string &fullPath, IOpaqueAddress *pAddress)=0
Register object address with the data store.

STATUS MultiStoreSvc::registerAddress | ( | IRegistry * | parent,
|  | CSTR & | path,
|  | ADDRESS * | pAdd
| ) |  |
| inline override

IDataManagerSvc: Register object address with the data store.

Definition at line 138 of file MultiStoreSvc.cpp.

138 {
139 return call_<IRegistry*,CSTR&,ADDRESS*>( &IDataManagerSvc::registerAddress, parent, path, pAdd);
140 }
Gaudi::Utils::Histos::path
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
Definition: HistoTableFormat.cpp:191
IDataManagerSvc::registerAddress
virtual StatusCode registerAddress(const std::string &fullPath, IOpaqueAddress *pAddress)=0
Register object address with the data store.

STATUS MultiStoreSvc::registerObject | ( | CSTR & | path,
|  | OBJECT * | pObj
| ) |  |
| inline override

Register object with the data store.

Definition at line 286 of file MultiStoreSvc.cpp.

286 {
287 return registerObject(nullptr, path, pObj);
288 }
MultiStoreSvc::registerObject
STATUS registerObject(CSTR &path, OBJECT *pObj) override
Register object with the data store.
Definition: MultiStoreSvc.cpp:286

STATUS MultiStoreSvc::registerObject | ( | CSTR & | parent,
|  | CSTR & | obj,
|  | OBJECT * | pObj
| ) |  |
| inline override

Register object with the data store.

Definition at line 290 of file MultiStoreSvc.cpp.

290 {
291 return call_<CSTR&,CSTR&,OBJECT*>(&IDataProviderSvc::registerObject, parent,obj,pObj);
292 }
IDataProviderSvc::registerObject
virtual StatusCode registerObject(const std::string &fullPath, DataObject *pObject)=0
Register object with the data store.

STATUS MultiStoreSvc::registerObject | ( | CSTR & | parent,
|  | int | item,
|  | OBJECT * | pObj
| ) |  |
| inline override

Register object with the data store.

Definition at line 294 of file MultiStoreSvc.cpp.

294 {
295 return call_<CSTR&,int,OBJECT*>( &IDataProviderSvc::registerObject, parent, item, pObj);
296 }
ana.item
tuple item
print s1,s2
Definition: ana.py:146
IDataProviderSvc::registerObject
virtual StatusCode registerObject(const std::string &fullPath, DataObject *pObject)=0
Register object with the data store.

STATUS MultiStoreSvc::registerObject | ( | OBJECT * | parent,
|  | CSTR & | obj,
|  | OBJECT * | pObj
| ) |  |
| inline override

Register object with the data store.

Definition at line 298 of file MultiStoreSvc.cpp.

298 {
299 return call_<OBJECT*,CSTR&,OBJECT*>( &IDataProviderSvc::registerObject, parent, obj, pObj);
300 }
IDataProviderSvc::registerObject
virtual StatusCode registerObject(const std::string &fullPath, DataObject *pObject)=0
Register object with the data store.

STATUS MultiStoreSvc::registerObject | ( | OBJECT * | parent,
|  | int | obj,
|  | OBJECT * | pObj
| ) |  |
| inline override

Register object with the data store.

Definition at line 302 of file MultiStoreSvc.cpp.

302 {
303 return call_<OBJECT*,int,OBJECT*>( &IDataProviderSvc::registerObject, parent, obj, pObj);
304 }
IDataProviderSvc::registerObject
virtual StatusCode registerObject(const std::string &fullPath, DataObject *pObject)=0
Register object with the data store.

STATUS MultiStoreSvc::reinitialize | ( |  | ) |
| inline override

Service initialisation.

Definition at line 566 of file MultiStoreSvc.cpp.

566 {
567 STATUS sc = Service::reinitialize();
568 if (!sc.isSuccess()) {
569 error() << "Enable to reinitialize base class"
570 << endmsg;
571 return sc;
572 }
573 detachServices();
574 sc = attachServices();
575 if ( !sc.isSuccess() ) {
576 error() << "Failed to attach necessary services." << endmsg;
577 return sc;
578 }
579 sc = makePartitions();
580 if (!sc.isSuccess()) {
581 error() << "Failed to connect to store partitions." << endmsg;
582 return sc;
583 }
584 // return
585 return STATUS::SUCCESS;
586 }
StatusCode::isSuccess
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:76
MultiStoreSvc::detachServices
STATUS detachServices()
Definition: MultiStoreSvc.cpp:546
merge_files.sc
int sc
Definition: merge_files.py:167
MultiStoreSvc::makePartitions
STATUS makePartitions()
Create all partitions according to job options.
Definition: MultiStoreSvc.cpp:664
CommonMessagingBase::error
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
Definition: CommonMessaging.h:118
StatusCode::SUCCESS
Definition: StatusCode.h:30
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
Service::reinitialize
StatusCode reinitialize() override
Definition: Service.cpp:282
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
MultiStoreSvc::attachServices
STATUS attachServices()
Definition: MultiStoreSvc.cpp:522

STATUS MultiStoreSvc::removePreLoadItem | ( | const DataStoreItem & | item | ) |
| inline override

Remove an item from the preload list.

Definition at line 270 of file MultiStoreSvc.cpp.

270 {
271 return call_<const DataStoreItem&>( &IDataProviderSvc::removePreLoadItem, item);
272 }
IDataProviderSvc::removePreLoadItem
virtual StatusCode removePreLoadItem(const DataStoreItem &item)=0
Remove an item from the preload list.
ana.item
tuple item
print s1,s2
Definition: ana.py:146

STATUS MultiStoreSvc::removePreLoadItem | ( | CSTR & | item | ) |
| inline override

Add an item to the preload list.

Definition at line 274 of file MultiStoreSvc.cpp.

274 {
275 return call_<CSTR&>( &IDataProviderSvc::removePreLoadItem, item);
276 }
IDataProviderSvc::removePreLoadItem
virtual StatusCode removePreLoadItem(const DataStoreItem &item)=0
Remove an item from the preload list.
ana.item
tuple item
print s1,s2
Definition: ana.py:146

STATUS MultiStoreSvc::resetPreLoad | ( |  | ) |
| inline override

Clear the preload list.

Definition at line 278 of file MultiStoreSvc.cpp.

278 {
279 return call_<>( &IDataProviderSvc::resetPreLoad);
280 }
IDataProviderSvc::resetPreLoad
virtual StatusCode resetPreLoad()=0
Clear the preload list.

STATUS MultiStoreSvc::retrieveObject | ( | IRegistry * | parent,
|  | CSTR & | path,
|  | OBJECT *& | pObj
| ) |  |
| inline override

Retrieve object from data store.

Definition at line 330 of file MultiStoreSvc.cpp.

330 {
331 return call_<IRegistry*,CSTR&,OBJECT*&>( &IDataProviderSvc::retrieveObject, parent, path, pObj);
332 }
Gaudi::Utils::Histos::path
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
Definition: HistoTableFormat.cpp:191
IDataProviderSvc::retrieveObject
virtual StatusCode retrieveObject(IRegistry *pDirectory, const std::string &path, DataObject *&pObject)=0
Retrieve object identified by its directory entry.

STATUS MultiStoreSvc::retrieveObject | ( | CSTR & | path,
|  | OBJECT *& | pObj
| ) |  |
| inline override

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

Definition at line 334 of file MultiStoreSvc.cpp.

334 {
335 return call_<CSTR&,OBJECT*&>( &IDataProviderSvc::retrieveObject, path, pObj);
336 }
Gaudi::Utils::Histos::path
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
Definition: HistoTableFormat.cpp:191
IDataProviderSvc::retrieveObject
virtual StatusCode retrieveObject(IRegistry *pDirectory, const std::string &path, DataObject *&pObject)=0
Retrieve object identified by its directory entry.

STATUS MultiStoreSvc::retrieveObject | ( | CSTR & | parent,
|  | CSTR & | path,
|  | OBJECT *& | pObj
| ) |  |
| inline override

Retrieve object from data store.

Definition at line 338 of file MultiStoreSvc.cpp.

338 {
339 return call_<CSTR&,CSTR&,OBJECT*&>( &IDataProviderSvc::retrieveObject, parent, path, pObj);
340 }
Gaudi::Utils::Histos::path
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
Definition: HistoTableFormat.cpp:191
IDataProviderSvc::retrieveObject
virtual StatusCode retrieveObject(IRegistry *pDirectory, const std::string &path, DataObject *&pObject)=0
Retrieve object identified by its directory entry.

STATUS MultiStoreSvc::retrieveObject | ( | CSTR & | parent,
|  | int | item,
|  | OBJECT *& | pObj
| ) |  |
| inline override

Retrieve object from data store.

Definition at line 342 of file MultiStoreSvc.cpp.

342 {
343 return call_<CSTR&,int,OBJECT*&>( &IDataProviderSvc::retrieveObject, parent, item, pObj);
344 }
ana.item
tuple item
print s1,s2
Definition: ana.py:146
IDataProviderSvc::retrieveObject
virtual StatusCode retrieveObject(IRegistry *pDirectory, const std::string &path, DataObject *&pObject)=0
Retrieve object identified by its directory entry.

STATUS MultiStoreSvc::retrieveObject | ( | OBJECT * | parent,
|  | CSTR & | path,
|  | OBJECT *& | pObj
| ) |  |
| inline override

Retrieve object from data store.

Definition at line 346 of file MultiStoreSvc.cpp.

346 {
347 return call_<OBJECT*,CSTR&,OBJECT*&>( &IDataProviderSvc::retrieveObject, parent, path, pObj);
348 }
Gaudi::Utils::Histos::path
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
Definition: HistoTableFormat.cpp:191
IDataProviderSvc::retrieveObject
virtual StatusCode retrieveObject(IRegistry *pDirectory, const std::string &path, DataObject *&pObject)=0
Retrieve object identified by its directory entry.

STATUS MultiStoreSvc::retrieveObject | ( | OBJECT * | parent,
|  | int | item,
|  | OBJECT *& | pObj
| ) |  |
| inline override

Retrieve object from data store.

Definition at line 350 of file MultiStoreSvc.cpp.

350 {
351 return call_<OBJECT*,int,OBJECT*&>( &IDataProviderSvc::retrieveObject, parent, item, pObj);
352 }
ana.item
tuple item
print s1,s2
Definition: ana.py:146
IDataProviderSvc::retrieveObject
virtual StatusCode retrieveObject(IRegistry *pDirectory, const std::string &path, DataObject *&pObject)=0
Retrieve object identified by its directory entry.

CLID MultiStoreSvc::rootCLID | ( |  | ) | const
| inline override

IDataManagerSvc: Accessor for root event CLID.

Definition at line 121 of file MultiStoreSvc.cpp.

121 {
122 return m_rootCLID;
123 }
MultiStoreSvc::m_rootCLID
CLID m_rootCLID
Integer Property corresponding to CLID of root entry.
Definition: MultiStoreSvc.cpp:76

const std::string& MultiStoreSvc::rootName | ( |  | ) | const
| inline override

Name for root Event.

Definition at line 125 of file MultiStoreSvc.cpp.

125 {
126 return m_rootName;
127 }
MultiStoreSvc::m_rootName
std::string m_rootName
Name of root event.
Definition: MultiStoreSvc.cpp:78

STATUS MultiStoreSvc::setDataLoader | ( | IConversionSvc * | pDataLoader,
|  | IDataProviderSvc * | dpsvc = `nullptr`
| ) |  |
| inline override

IDataManagerSvc: Pass a default data loader to the service.

Definition at line 253 of file MultiStoreSvc.cpp.

253 {
254 m_dataLoader = pDataLoader;
255 if ( m_dataLoader ) m_dataLoader->setDataProvider(dpsvc ? dpsvc : this);
256 for(auto& i : m_partitions) {
257 i.second.dataManager->setDataLoader(m_dataLoader.get()).ignore();
258 }
259 return SUCCESS;
260 }
MultiStoreSvc::m_partitions
Partitions m_partitions
Datastore partitions.
Definition: MultiStoreSvc.cpp:99
IConverter::setDataProvider
virtual StatusCode setDataProvider(IDataProviderSvc *pService)=0
Set Data provider service.
MultiStoreSvc::m_dataLoader
SmartIF< IConversionSvc > m_dataLoader
Pointer to data loader service.
Definition: MultiStoreSvc.cpp:82
SmartIF::get
TYPE * get() const
Get interface pointer.
Definition: SmartIF.h:76
GaudiPython.Bindings.SUCCESS
tuple SUCCESS
Definition: Bindings.py:51
ana.i
list i
Definition: ana.py:128

STATUS MultiStoreSvc::setRoot | ( | std::string | path,
|  | OBJECT * | pObj
| ) |  |
| inline override

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 211 of file MultiStoreSvc.cpp.

211 {
212 if ( m_root.root.object ) {
213 switch ( m_root.type ) {
214 case address_type:
215 m_root.root.address->release();
216 break;
217 case object_type:
218 m_root.root.object->release();
219 break;
220 }
221 }
222 m_root.path = std::move(path);
223 m_root.type = object_type;
224 m_root.root.object = pObj;
225 preparePartitions();
226 return activate(m_defaultPartition);
227 }
MultiStoreSvc::tagROOT::type
int type
Definition: MultiStoreSvc.cpp:88
MultiStoreSvc::tagROOT::address
ADDRESS * address
Definition: MultiStoreSvc.cpp:91
IOpaqueAddress::release
virtual unsigned long release()=0
release reference to object
MultiStoreSvc::address_type
Definition: MultiStoreSvc.cpp:86
MultiStoreSvc::activate
STATUS activate(CSTR &nam) override
Activate a partition object. The name identifies the partition uniquely.
Definition: MultiStoreSvc.cpp:475
MultiStoreSvc::m_root
struct MultiStoreSvc::tagROOT m_root
MultiStoreSvc::tagROOT::object
OBJECT * object
Definition: MultiStoreSvc.cpp:92
std::move
T move(T...args)
MultiStoreSvc::tagROOT::root
union MultiStoreSvc::tagROOT::@1 root
MultiStoreSvc::preparePartitions
STATUS preparePartitions()
Prepare partition for usage.
Definition: MultiStoreSvc.cpp:621
DataObject::release
virtual unsigned long release()
release reference to object
Definition: DataObject.cpp:56
MultiStoreSvc::object_type
Definition: MultiStoreSvc.cpp:86
MultiStoreSvc::m_defaultPartition
std::string m_defaultPartition
Default partition.
Definition: MultiStoreSvc.cpp:103
MultiStoreSvc::tagROOT::path
std::string path
Definition: MultiStoreSvc.cpp:89

STATUS MultiStoreSvc::setRoot | ( | std::string | path,
|  | ADDRESS * | pAddr
| ) |  |
| inline override

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 231 of file MultiStoreSvc.cpp.

231 {
232 if ( m_root.root.object ) {
233 switch ( m_root.type ) {
234 case address_type:
235 m_root.root.address->release();
236 break;
237 case object_type:
238 m_root.root.object->release();
239 break;
240 }
241 }
242 m_root.path = std::move(path);
243 m_root.type = address_type;
244 m_root.root.address = pAddr;
245 if ( m_root.root.address ) {
246 m_root.root.address->addRef();
247 preparePartitions();
248 return activate(m_defaultPartition);
249 }
250 return STATUS::FAILURE;
251 }
MultiStoreSvc::tagROOT::type
int type
Definition: MultiStoreSvc.cpp:88
MultiStoreSvc::tagROOT::address
ADDRESS * address
Definition: MultiStoreSvc.cpp:91
IOpaqueAddress::release
virtual unsigned long release()=0
release reference to object
StatusCode::FAILURE
Definition: StatusCode.h:29
MultiStoreSvc::address_type
Definition: MultiStoreSvc.cpp:86
MultiStoreSvc::activate
STATUS activate(CSTR &nam) override
Activate a partition object. The name identifies the partition uniquely.
Definition: MultiStoreSvc.cpp:475
MultiStoreSvc::m_root
struct MultiStoreSvc::tagROOT m_root
MultiStoreSvc::tagROOT::object
OBJECT * object
Definition: MultiStoreSvc.cpp:92
std::move
T move(T...args)
MultiStoreSvc::tagROOT::root
union MultiStoreSvc::tagROOT::@1 root
MultiStoreSvc::preparePartitions
STATUS preparePartitions()
Prepare partition for usage.
Definition: MultiStoreSvc.cpp:621
DataObject::release
virtual unsigned long release()
release reference to object
Definition: DataObject.cpp:56
MultiStoreSvc::object_type
Definition: MultiStoreSvc.cpp:86
MultiStoreSvc::m_defaultPartition
std::string m_defaultPartition
Default partition.
Definition: MultiStoreSvc.cpp:103
MultiStoreSvc::tagROOT::path
std::string path
Definition: MultiStoreSvc.cpp:89
IOpaqueAddress::addRef
virtual unsigned long addRef()=0
Add reference to object.

STATUS MultiStoreSvc::traverseSubTree | ( | CSTR & | path,
|  | AGENT * | pAgent
| ) |  |
| inline override

Analyze by traversing all data objects below the sub tree.

Definition at line 198 of file MultiStoreSvc.cpp.

198 {
199 return call_<CSTR&,AGENT*>( &IDataManagerSvc::traverseSubTree, path, pAgent);
200 }
Gaudi::Utils::Histos::path
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
Definition: HistoTableFormat.cpp:191
IDataManagerSvc::traverseSubTree
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...

STATUS MultiStoreSvc::traverseSubTree | ( | OBJECT * | pObject,
|  | AGENT * | pAgent
| ) |  |
| inline override

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

Definition at line 202 of file MultiStoreSvc.cpp.

202 {
203 return call_<OBJECT*,AGENT*>( &IDataManagerSvc::traverseSubTree, pObject, pAgent);
204 }
IDataManagerSvc::traverseSubTree
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...

STATUS MultiStoreSvc::traverseTree | ( | AGENT * | pAgent | ) |
| inline override

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

Definition at line 206 of file MultiStoreSvc.cpp.

206 {
207 return call_<AGENT*>( &IDataManagerSvc::traverseTree, pAgent);
208 }
IDataManagerSvc::traverseTree
virtual StatusCode traverseTree(IDataStoreAgent *pAgent)=0
Analyse by traversing all data objects in the data store.

STATUS MultiStoreSvc::unlinkObject | ( | IRegistry * | from,
|  | CSTR & | objPath
| ) |  |
| inline override

Remove a link to another object.

Definition at line 394 of file MultiStoreSvc.cpp.

394 {
395 return call_<IRegistry*,CSTR&>( &IDataProviderSvc::unlinkObject, from, objPath);
396 }
IDataProviderSvc::unlinkObject
virtual StatusCode unlinkObject(IRegistry *from, const std::string &objPath)=0
Remove a link to another object.

STATUS MultiStoreSvc::unlinkObject | ( | CSTR & | from,
|  | CSTR & | objPath
| ) |  |
| inline override

Remove a link to another object.

Definition at line 398 of file MultiStoreSvc.cpp.

398 {
399 return call_<CSTR&,CSTR&>( &IDataProviderSvc::unlinkObject, from, objPath);
400 }
IDataProviderSvc::unlinkObject
virtual StatusCode unlinkObject(IRegistry *from, const std::string &objPath)=0
Remove a link to another object.

STATUS MultiStoreSvc::unlinkObject | ( | OBJECT * | from,
|  | CSTR & | objPath
| ) |  |
| inline override

Remove a link to another object.

Definition at line 402 of file MultiStoreSvc.cpp.

402 {
403 return call_<OBJECT*,CSTR&>( &IDataProviderSvc::unlinkObject, from, objPath);
404 }
IDataProviderSvc::unlinkObject
virtual StatusCode unlinkObject(IRegistry *from, const std::string &objPath)=0
Remove a link to another object.

STATUS MultiStoreSvc::unlinkObject | ( | CSTR & | path | ) |
| inline override

Remove a link to another object.

Definition at line 406 of file MultiStoreSvc.cpp.

406 {
407 return call_<CSTR&>( &IDataProviderSvc::unlinkObject, path);
408 }
Gaudi::Utils::Histos::path
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
Definition: HistoTableFormat.cpp:191
IDataProviderSvc::unlinkObject
virtual StatusCode unlinkObject(IRegistry *from, const std::string &objPath)=0
Remove a link to another object.

STATUS MultiStoreSvc::unregisterAddress | ( | CSTR & | path | ) |
| inline override

IDataManagerSvc: Unregister object address from the data store.

Definition at line 142 of file MultiStoreSvc.cpp.

142 {
143 return call_<CSTR&>( &IDataManagerSvc::unregisterAddress, path);
144 }
IDataManagerSvc::unregisterAddress
virtual StatusCode unregisterAddress(const std::string &fullPath)=0
Unregister object address from the data store.
Gaudi::Utils::Histos::path
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
Definition: HistoTableFormat.cpp:191

STATUS MultiStoreSvc::unregisterAddress | ( | OBJECT * | pParent,
|  | CSTR & | path
| ) |  |
| inline override

IDataManagerSvc: Unregister object address from the data store.

Definition at line 146 of file MultiStoreSvc.cpp.

146 {
147 return call_<OBJECT*,CSTR&>( &IDataManagerSvc::unregisterAddress, pParent, path);
148 }
IDataManagerSvc::unregisterAddress
virtual StatusCode unregisterAddress(const std::string &fullPath)=0
Unregister object address from the data store.
Gaudi::Utils::Histos::path
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
Definition: HistoTableFormat.cpp:191

STATUS MultiStoreSvc::unregisterAddress | ( | IRegistry * | pParent,
|  | CSTR & | path
| ) |  |
| inline override

IDataManagerSvc: Unregister object address from the data store.

Definition at line 150 of file MultiStoreSvc.cpp.

150 {
151 return call_<IRegistry*,CSTR&>( &IDataManagerSvc::unregisterAddress, pParent, path);
152 }
IDataManagerSvc::unregisterAddress
virtual StatusCode unregisterAddress(const std::string &fullPath)=0
Unregister object address from the data store.
Gaudi::Utils::Histos::path
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
Definition: HistoTableFormat.cpp:191

STATUS MultiStoreSvc::unregisterObject | ( | CSTR & | path | ) |
| inline override

Unregister object from the data store.

Definition at line 306 of file MultiStoreSvc.cpp.

306 {
307 return call_<CSTR&>( &IDataProviderSvc::unregisterObject, path);
308 }
IDataProviderSvc::unregisterObject
virtual StatusCode unregisterObject(const std::string &fullPath)=0
Unregister object from the data store.
Gaudi::Utils::Histos::path
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
Definition: HistoTableFormat.cpp:191

STATUS MultiStoreSvc::unregisterObject | ( | CSTR & | parent,
|  | CSTR & | obj
| ) |  |
| inline override

Unregister object from the data store.

Definition at line 310 of file MultiStoreSvc.cpp.

310 {
311 return call_<CSTR&,CSTR&>( &IDataProviderSvc::unregisterObject, parent, obj);
312 }
IDataProviderSvc::unregisterObject
virtual StatusCode unregisterObject(const std::string &fullPath)=0
Unregister object from the data store.

STATUS MultiStoreSvc::unregisterObject | ( | CSTR & | parent,
|  | int | obj
| ) |  |
| inline override

Unregister object from the data store.

Definition at line 314 of file MultiStoreSvc.cpp.

314 {
315 return call_<CSTR&,int>( &IDataProviderSvc::unregisterObject, parent, obj);
316 }
IDataProviderSvc::unregisterObject
virtual StatusCode unregisterObject(const std::string &fullPath)=0
Unregister object from the data store.

STATUS MultiStoreSvc::unregisterObject | ( | OBJECT * | pObj | ) |
| inline override

Unregister object from the data store.

Definition at line 318 of file MultiStoreSvc.cpp.

318 {
319 return call_<OBJECT*>( &IDataProviderSvc::unregisterObject, pObj);
320 }
IDataProviderSvc::unregisterObject
virtual StatusCode unregisterObject(const std::string &fullPath)=0
Unregister object from the data store.

STATUS MultiStoreSvc::unregisterObject | ( | OBJECT * | pObj,
|  | CSTR & | path
| ) |  |
| inline override

Unregister object from the data store.

Definition at line 322 of file MultiStoreSvc.cpp.

322 {
323 return call_<OBJECT*,CSTR&>( &IDataProviderSvc::unregisterObject, pObj, path);
324 }
IDataProviderSvc::unregisterObject
virtual StatusCode unregisterObject(const std::string &fullPath)=0
Unregister object from the data store.
Gaudi::Utils::Histos::path
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
Definition: HistoTableFormat.cpp:191

STATUS MultiStoreSvc::unregisterObject | ( | OBJECT * | pObj,
|  | int | item
| ) |  |
| inline override

Unregister object from the data store.

Definition at line 326 of file MultiStoreSvc.cpp.

326 {
327 return call_<OBJECT*,int>( &IDataProviderSvc::unregisterObject, pObj, item);
328 }
IDataProviderSvc::unregisterObject
virtual StatusCode unregisterObject(const std::string &fullPath)=0
Unregister object from the data store.
ana.item
tuple item
print s1,s2
Definition: ana.py:146

STATUS MultiStoreSvc::updateObject | ( | IRegistry * | pDirectory | ) |
| inline override

Update object identified by its directory entry.

Definition at line 410 of file MultiStoreSvc.cpp.

410 {
411 return call_<IRegistry*>( &IDataProviderSvc::updateObject, pDirectory);
412 }
IDataProviderSvc::updateObject
virtual StatusCode updateObject(IRegistry *pDirectory)=0
Update object identified by its directory entry.

STATUS MultiStoreSvc::updateObject | ( | CSTR & | path | ) |
| inline override

Update object.

Definition at line 414 of file MultiStoreSvc.cpp.

414 {
415 return call_<CSTR&>( &IDataProviderSvc::updateObject, path);
416 }
IDataProviderSvc::updateObject
virtual StatusCode updateObject(IRegistry *pDirectory)=0
Update object identified by its directory entry.
Gaudi::Utils::Histos::path
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
Definition: HistoTableFormat.cpp:191

STATUS MultiStoreSvc::updateObject | ( | OBJECT * | pObj | ) |
| inline override

Update object.

Definition at line 418 of file MultiStoreSvc.cpp.

418 {
419 return call_<OBJECT*>( &IDataProviderSvc::updateObject, pObj);
420 }
IDataProviderSvc::updateObject
virtual StatusCode updateObject(IRegistry *pDirectory)=0
Update object identified by its directory entry.

STATUS MultiStoreSvc::updateObject | ( | CSTR & | parent,
|  | CSTR & | updatePath
| ) |  |
| inline override

Update object.

Definition at line 422 of file MultiStoreSvc.cpp.

422 {
423 return call_<CSTR&,CSTR&>( &IDataProviderSvc::updateObject, parent, updatePath);
424 }
IDataProviderSvc::updateObject
virtual StatusCode updateObject(IRegistry *pDirectory)=0
Update object identified by its directory entry.

STATUS MultiStoreSvc::updateObject | ( | OBJECT * | parent,
|  | CSTR & | updatePath
| ) |  |
| inline override

Update object.

Definition at line 426 of file MultiStoreSvc.cpp.

426 {
427 return call_<OBJECT*,CSTR&>( &IDataProviderSvc::updateObject, parent, updatePath);
428 }
IDataProviderSvc::updateObject
virtual StatusCode updateObject(IRegistry *pDirectory)=0
Update object identified by its directory entry.

## Member Data Documentation

SmartIF<IAddressCreator> MultiStoreSvc::m_addrCreator
| protected

Reference to address creator.

Definition at line 84 of file MultiStoreSvc.cpp.

Partition MultiStoreSvc::m_current
| protected

Current partition.

Definition at line 97 of file MultiStoreSvc.cpp.

SmartIF<IConversionSvc> MultiStoreSvc::m_dataLoader
| protected

Pointer to data loader service.

Definition at line 82 of file MultiStoreSvc.cpp.

std::string MultiStoreSvc::m_defaultPartition
| protected

Default partition.

Definition at line 103 of file MultiStoreSvc.cpp.

std::string MultiStoreSvc::m_loader
| protected

Data loader name.

Definition at line 80 of file MultiStoreSvc.cpp.

PartitionDefs MultiStoreSvc::m_partitionDefs
| protected

Datastore partition definitions.

Definition at line 101 of file MultiStoreSvc.cpp.

Partitions MultiStoreSvc::m_partitions
| protected

Datastore partitions.

Definition at line 99 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 76 of file MultiStoreSvc.cpp.

std::string MultiStoreSvc::m_rootName
| protected

Name of root event.

Definition at line 78 of file MultiStoreSvc.cpp.

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

- GaudiCommonSvc/src/DataSvc/MultiStoreSvc.cpp