| The Gaudi Framework v32r1 (f65d50dc)

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
| Root type (address or object) More...

## 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...
StatusCode | registerAddress (std::string_view path, ADDRESS *pAddr) override
| IDataManagerSvc: Register object address with the data store. More...
StatusCode | registerAddress (IRegistry *parent, std::string_view path, ADDRESS *pAddr) override
| IDataManagerSvc: Register object address with the data store. More...
StatusCode | unregisterAddress (std::string_view path) override
| IDataManagerSvc: Unregister object address from the data store. More...
StatusCode | unregisterAddress (IRegistry *pParent, std::string_view path) override
| IDataManagerSvc: Unregister object address from the data store. More...
StatusCode | objectLeaves (const OBJECT *pObject, std::vector< IRegistry * > &leaves) override
| Explore the object store: retrieve all leaves attached to the object. More...
StatusCode | objectLeaves (const IRegistry *pObject, std::vector< IRegistry * > &leaves) override
| Explore the object store: retrieve all leaves attached to the object. More...
StatusCode | objectParent (const OBJECT *pObject, IRegistry *&refpParent) override
| IDataManagerSvc: Explore the object store: retrieve the object's parent. More...
StatusCode | objectParent (const IRegistry *pObject, IRegistry *&refpParent) override
| IDataManagerSvc: Explore the object store: retrieve the object's parent. More...
StatusCode | clearSubTree (std::string_view path) override
| Remove all data objects below the sub tree identified. More...
StatusCode | clearSubTree (OBJECT *pObject) override
| Remove all data objects below the sub tree identified. More...
StatusCode | clearStore () override
| IDataManagerSvc: Remove all data objects in the data store. More...
StatusCode | traverseSubTree (std::string_view path, AGENT *pAgent) override
| Analyze by traversing all data objects below the sub tree. More...
StatusCode | traverseSubTree (OBJECT *pObject, AGENT *pAgent) override
| IDataManagerSvc: Analyze by traversing all data objects below the sub tree. More...
StatusCode | traverseTree (AGENT *pAgent) override
| IDataManagerSvc: Analyze by traversing all data objects in the data store. More...
StatusCode | setRoot (std::string path, OBJECT *pObj) override
| Initialize data store for new event by giving new event path and root object. More...
StatusCode | setRoot (std::string path, ADDRESS *pAddr) override
| Initialize data store for new event by giving new event path and address of root object. More...
StatusCode | setDataLoader (IConversionSvc *pDataLoader, IDataProviderSvc *dpsvc=nullptr) override
| IDataManagerSvc: Pass a default data loader to the service. More...
StatusCode | addPreLoadItem (const DataStoreItem &item) override
| Add an item to the preload list. More...
StatusCode | removePreLoadItem (const DataStoreItem &item) override
| Remove an item from the preload list. More...
StatusCode | resetPreLoad () override
| Clear the preload list. More...
StatusCode | preLoad () override
| load all preload items of the list More...
StatusCode | registerObject (std::string_view parent, std::string_view obj, OBJECT *pObj) override
| Register object with the data store. More...
StatusCode | registerObject (OBJECT *parent, std::string_view obj, OBJECT *pObj) override
| Register object with the data store. More...
StatusCode | unregisterObject (std::string_view path) override
| Unregister object from the data store. More...
StatusCode | unregisterObject (OBJECT *pObj) override
| Unregister object from the data store. More...
StatusCode | unregisterObject (OBJECT *pObj, std::string_view path) override
| Unregister object from the data store. More...
StatusCode | retrieveObject (IRegistry *parent, std::string_view path, OBJECT *&pObj) override
| Retrieve object from data store. More...
StatusCode | findObject (std::string_view path, OBJECT *&pObj) override
| Find object identified by its full path in the data store. More...
StatusCode | findObject (IRegistry *parent, std::string_view path, OBJECT *&pObj) override
| Find object identified by its full path in the data store. More...
StatusCode | linkObject (IRegistry *from, std::string_view objPath, OBJECT *to) override
| Add a link to another object. More...
StatusCode | linkObject (std::string_view fullPath, OBJECT *to) override
| Add a link to another object. More...
StatusCode | unlinkObject (IRegistry *from, std::string_view objPath) override
| Remove a link to another object. More...
StatusCode | unlinkObject (OBJECT *from, std::string_view objPath) override
| Remove a link to another object. More...
StatusCode | unlinkObject (std::string_view path) override
| Remove a link to another object. More...
StatusCode | updateObject (IRegistry *pDirectory) override
| Update object identified by its directory entry. More...
StatusCode | updateObject (OBJECT *pObj) override
| Update object. More...
StatusCode | create (CSTR &nam, CSTR &typ) override
| Create a partition object. The name identifies the partition uniquely. More...
StatusCode | create (CSTR &nam, CSTR &typ, IInterface *&pPartition) override
| Create a partition object. The name identifies the partition uniquely. More...
StatusCode | drop (CSTR &nam) override
| Drop a partition object. The name identifies the partition uniquely. More...
StatusCode | drop (IInterface *pPartition) override
| Drop a partition object. The name identifies the partition uniquely. More...
StatusCode | activate (CSTR &nam) override
| Activate a partition object. The name identifies the partition uniquely. More...
StatusCode | activate (IInterface *pPartition) override
| Activate a partition object. More...
StatusCode | 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...
StatusCode | attachServices ()
StatusCode | detachServices ()
StatusCode | initialize () override
| Service initialisation. More...
StatusCode | reinitialize () override
| Service initialisation. More...
StatusCode | finalize () override
| Service initialisation. More...
| ~MultiStoreSvc () override
| Standard Destructor. More...
StatusCode | preparePartitions ()
| Prepare partition for usage. More...
StatusCode | clearPartitions ()
| Clear all partitions. More...
StatusCode | 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...
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...
| 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 >
StatusCode | declareTool (ToolHandle< T > &handle, std::string toolTypeAndName, bool createIf=true)
| Declare used 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 PropertyHolder< CommonMessaging< implements< IService, IProperty, IStateful > > >
| PropertyHolder ()=default
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Details::PropertyBase &prop)
| Declare a property. More...
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, TYPE &value, const std::string &doc="none")
| Helper to wrap a regular data member and use it as a regular property. More...
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, Gaudi::Property< TYPE, VERIFIER, HANDLERS > &prop, const std::string &doc="none")
| Declare a PropertyBase instance setting name and documentation. More...
Gaudi::Details::PropertyBase * | declareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="")
| Declare a remote property. More...
StatusCode | setProperty (const Gaudi::Details::PropertyBase &p) override
| set the property form another property More...
StatusCode | setProperty (const std::string &s) override
| set the property from the formatted string More...
StatusCode | setProperty (const std::string &n, const std::string &v) override
| set the property from name and the value More...
StatusCode | setProperty (const std::string &name, const TYPE &value)
| set the property form the value More...
StatusCode | getProperty (Gaudi::Details::PropertyBase *p) const override
| get the property More...
const Gaudi::Details::PropertyBase & | getProperty (const std::string &name) const override
| get the property by name More...
StatusCode | getProperty (const std::string &n, std::string &v) const override
| convert the property to the string More...
const std::vector< Gaudi::Details::PropertyBase * > & | getProperties () const override
| get all properties More...
bool | hasProperty (const std::string &name) const override
| Return true if we have a property with the given name. More...
| PropertyHolder (const PropertyHolder &)=delete
PropertyHolder & | operator= (const PropertyHolder &)=delete
Public Member Functions inherited from CommonMessaging< implements< IService, IProperty, IStateful > >
MSG::Level | msgLevel () const
| get the cached level (originally extracted from the embedded MsgStream) More...
bool | msgLevel (MSG::Level lvl) const
| get the output level from the embedded MsgStream More...
MSG::Level | outputLevel () const
| Backward compatibility function for getting the output level. More...
Public Member Functions inherited from CommonMessagingBase
virtual | ~CommonMessagingBase ()=default
| Virtual destructor. More...
const 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...

## Protected Types
typedef std::vector< std::string > | PartitionDefs
typedef std::map< std::string, Partition > | Partitions

## Protected Member Functions
template<typename Fun >
StatusCode | fwd (Fun f)
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 PropertyHolder< CommonMessaging< implements< IService, IProperty, IStateful > > >
Gaudi::Details::PropertyBase * | property (const std::string &name) const
Protected Member Functions inherited from CommonMessaging< implements< IService, IProperty, IStateful > >
MSG::Level | setUpMessaging () const
| Set up local caches. More...
MSG::Level | resetMessaging ()
| Reinitialize internal states. More...
void | updateMsgStreamOutputLevel (int level)
| Update the output level of the cached MsgStream. More...

## Protected Attributes
Gaudi::Property< CLID > | m_rootCLID {this, "RootCLID", 110, "CLID of root entry"}
Gaudi::Property< std::string > | m_rootName {this, "RootName", "/Event", "name of root entry"}
Gaudi::Property< PartitionDefs > | m_partitionDefs {this, "Partitions", {}, "datastore partition definitions"}
Gaudi::Property< std::string > | m_loader {this, "DataLoader", "EventPersistencySvc", "data loader name"}
Gaudi::Property< std::string > | m_defaultPartition {this, "DefaultPartition", "Default", "default partition name"}
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...
Protected Attributes inherited from Service
Gaudi::StateMachine::State | m_state = Gaudi::StateMachine::OFFLINE
| Service state. More...
Gaudi::StateMachine::State | m_targetState = Gaudi::StateMachine::OFFLINE
| Service state. More...
Gaudi::Property< int > | m_outputLevel {this, "OutputLevel", MSG::NIL, "output level"}
Gaudi::Property< bool > | m_auditInit {this, "AuditServices", false, " unused"}
Gaudi::Property< bool > | m_auditorInitialize {this, "AuditInitialize", false, "trigger auditor on initialize()"}
Gaudi::Property< bool > | m_auditorStart {this, "AuditStart", false, "trigger auditor on start()"}
Gaudi::Property< bool > | m_auditorStop {this, "AuditStop", false, "trigger auditor on stop()"}
Gaudi::Property< bool > | m_auditorFinalize {this, "AuditFinalize", false, "trigger auditor on finalize()"}
Gaudi::Property< bool > | m_auditorReinitialize {this, "AuditReinitialize", false, "trigger auditor on reinitialize()"}
Gaudi::Property< bool > | m_auditorRestart {this, "AuditRestart", false, "trigger auditor on restart()"}
SmartIF< IAuditorSvc > | m_pAuditorSvc
| Auditor Service. 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
using | Factory = Gaudi::PluginService::Factory< IService *(const std::string &, ISvcLocator *)>
Public Types inherited from PropertyHolder< CommonMessaging< implements< IService, IProperty, IStateful > > >
using | PropertyHolderImpl = PropertyHolder< CommonMessaging< implements< IService, IProperty, IStateful > > >
| Typedef used to refer to this class from derived classes, as in. More...
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 96 of file MultiStoreSvc.cpp.

## Member Typedef Documentation

## ◆ PartitionDefs

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

Definition at line 98 of file MultiStoreSvc.cpp.

## ◆ Partitions

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

Definition at line 99 of file MultiStoreSvc.cpp.

## Constructor & Destructor Documentation

## ◆ ~MultiStoreSvc()

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

Standard Destructor.

Definition at line 479 of file MultiStoreSvc.cpp.

479 {
480 setDataLoader( nullptr ).ignore();
481 resetPreLoad().ignore();
482 clearStore().ignore();
483 clearPartitions().ignore();
484 }
MultiStoreSvc::clearStore
StatusCode clearStore() override
IDataManagerSvc: Remove all data objects in the data store.
Definition: MultiStoreSvc.cpp:175
MultiStoreSvc::clearPartitions
StatusCode clearPartitions()
Clear all partitions.
Definition: MultiStoreSvc.cpp:512
StatusCode::ignore
const StatusCode & ignore() const
Ignore/check StatusCode.
Definition: StatusCode.h:153
MultiStoreSvc::resetPreLoad
StatusCode resetPreLoad() override
Clear the preload list.
Definition: MultiStoreSvc.cpp:246
MultiStoreSvc::setDataLoader
StatusCode setDataLoader(IConversionSvc *pDataLoader, IDataProviderSvc *dpsvc=nullptr) override
IDataManagerSvc: Pass a default data loader to the service.
Definition: MultiStoreSvc.cpp:231

## Member Function Documentation

## ◆ activate() [1/2]

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

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

Definition at line 354 of file MultiStoreSvc.cpp.

354 {
355 auto i = m_partitions.find( nam );
356 if ( i != m_partitions.end() ) {
357 m_current = i->second;
358 return StatusCode::SUCCESS;
359 }
360 m_current = {};
361 return IPartitionControl::Status::PARTITION_NOT_PRESENT;
362 }
MultiStoreSvc::m_partitions
Partitions m_partitions
Datastore partitions.
Definition: MultiStoreSvc.cpp:119
IPartitionControl::Status::PARTITION_NOT_PRESENT
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
std::map::end
T end(T... args)
MultiStoreSvc::m_current
Partition m_current
Current partition.
Definition: MultiStoreSvc.cpp:117
std::map::find
T find(T... args)

## ◆ activate() [2/2]

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

Activate a partition object.

Definition at line 365 of file MultiStoreSvc.cpp.

365 {
366 auto provider = SmartIF<IDataProviderSvc>( pPartition );
367 m_current = Partition();
368 if ( !provider ) return IInterface::Status::NO_INTERFACE;
369 auto i = std::find_if( std::begin( m_partitions ), std::end( m_partitions ),
370 [&]( Partitions::const_reference p ) { return p.second.dataProvider == provider; } );
371 if ( i == std::end( m_partitions ) ) return IPartitionControl::Status::PARTITION_NOT_PRESENT;
372 m_current = i->second;
373 return StatusCode::SUCCESS;
374 }
IInterface::Status::NO_INTERFACE
Requested interface is not available.
SmartIF< IDataProviderSvc >
MultiStoreSvc::m_partitions
Partitions m_partitions
Datastore partitions.
Definition: MultiStoreSvc.cpp:119
IPartitionControl::Status::PARTITION_NOT_PRESENT
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
std::end
T end(T... args)
MultiStoreSvc::m_current
Partition m_current
Current partition.
Definition: MultiStoreSvc.cpp:117
std::find_if
T find_if(T... args)
std::begin
T begin(T... args)

## ◆ activePartition()

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

Access the active partition object.

Definition at line 388 of file MultiStoreSvc.cpp.

388 {
389 if ( m_current.dataProvider ) {
390 nam = m_current.name;
391 pPartition = m_current.dataProvider;
392 return StatusCode::SUCCESS;
393 }
394 nam.clear();
395 pPartition = nullptr;
396 return IPartitionControl::Status::NO_ACTIVE_PARTITION;
397 }
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
IPartitionControl::Status::NO_ACTIVE_PARTITION
std::string::clear
T clear(T... args)
MultiStoreSvc::m_current
Partition m_current
Current partition.
Definition: MultiStoreSvc.cpp:117

## ◆ addPreLoadItem()

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

Add an item to the preload list.

Definition at line 238 of file MultiStoreSvc.cpp.

238 {
239 return fwd( [&]( IDataProviderSvc& svc ) { return svc.addPreLoadItem( item ); } );
240 }
MultiStoreSvc::fwd
StatusCode fwd(Fun f)
Definition: MultiStoreSvc.cpp:123
IDataProviderSvc::addPreLoadItem
virtual StatusCode addPreLoadItem(const DataStoreItem &item)=0
Add an item to the preload list.
IDataProviderSvc
Data provider interface definition.
Definition: IDataProviderSvc.h:43

## ◆ attachServices()

StatusCode MultiStoreSvc::attachServices | ( |  | ) |
| inline

Definition at line 399 of file MultiStoreSvc.cpp.

399 {
400 // Attach address creator facility
401 m_addrCreator = service( m_loader, true );
402 if ( !m_addrCreator ) {
403 error() << "Failed to retrieve data loader "
404 << "\"" << m_loader << "\"" << endmsg;
405 return StatusCode::FAILURE;
406 }
407 // Attach data loader facility
408 auto dataLoader = service<IConversionSvc>( m_loader, true );
409 if ( !dataLoader ) {
410 error() << "Failed to retrieve data loader "
411 << "\"" << m_loader << "\"" << endmsg;
412 return StatusCode::FAILURE;
413 }
414 auto sc = setDataLoader( dataLoader.get() );
415 if ( !sc.isSuccess() ) {
416 error() << "Failed to set data loader "
417 << "\"" << m_loader << "\"" << endmsg;
418 }
419 return sc;
420 }
CommonMessagingBase::error
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
Definition: CommonMessaging.h:98
MultiStoreSvc::m_loader
Gaudi::Property< std::string > m_loader
Definition: MultiStoreSvc.cpp:104
MultiStoreSvc::m_addrCreator
SmartIF< IAddressCreator > m_addrCreator
Reference to address creator.
Definition: MultiStoreSvc.cpp:110
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:86
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:83
MultiStoreSvc::setDataLoader
StatusCode setDataLoader(IConversionSvc *pDataLoader, IDataProviderSvc *dpsvc=nullptr) override
IDataManagerSvc: Pass a default data loader to the service.
Definition: MultiStoreSvc.cpp:231
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:192

## ◆ clearPartitions()

StatusCode MultiStoreSvc::clearPartitions | ( |  | ) |
| inline

Clear all partitions.

Definition at line 512 of file MultiStoreSvc.cpp.

512 {
513 for ( auto& i : m_partitions ) i.second.dataManager->clearStore().ignore();
514 m_partitions.clear();
515 return StatusCode::SUCCESS;
516 }
MultiStoreSvc::m_partitions
Partitions m_partitions
Datastore partitions.
Definition: MultiStoreSvc.cpp:119
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
std::map::clear
T clear(T... args)

## ◆ clearStore()

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

IDataManagerSvc: Remove all data objects in the data store.

Definition at line 175 of file MultiStoreSvc.cpp.

175 {
176 for ( auto& i : m_partitions ) { i.second.dataManager->clearStore().ignore(); }
177 visit(
178 m_root.root,
179 []( auto* p ) {
180 if ( p ) p->release();
181 },
182 []( std::monostate ) {} );
183 m_root.root = {};
184 m_root.path.clear();
185 return StatusCode::SUCCESS;
186 }
MultiStoreSvc::tagROOT::root
std::variant< std::monostate, ADDRESS *, OBJECT * > root
Definition: MultiStoreSvc.cpp:114
MultiStoreSvc::m_partitions
Partitions m_partitions
Datastore partitions.
Definition: MultiStoreSvc.cpp:119
MultiStoreSvc::m_root
struct MultiStoreSvc::tagROOT m_root
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
std::string::clear
T clear(T... args)
MultiStoreSvc::tagROOT::path
std::string path
Definition: MultiStoreSvc.cpp:113

## ◆ clearSubTree() [1/2]

StatusCode MultiStoreSvc::clearSubTree | ( | std::string_view | path | ) |
| inline override

Remove all data objects below the sub tree identified.

Definition at line 167 of file MultiStoreSvc.cpp.

167 {
168 return fwd( [&]( IDataManagerSvc& svc ) { return svc.clearSubTree( path ); } );
169 }
MultiStoreSvc::fwd
StatusCode fwd(Fun f)
Definition: MultiStoreSvc.cpp:123
GaudiPython.HistoUtils.path
path
Definition: HistoUtils.py:932
IDataManagerSvc
Definition: IDataManagerSvc.h:45
IDataManagerSvc::clearSubTree
virtual StatusCode clearSubTree(std::string_view sub_path)=0
Remove all data objects below the sub tree identified by its full path name.

## ◆ clearSubTree() [2/2]

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

Remove all data objects below the sub tree identified.

Definition at line 171 of file MultiStoreSvc.cpp.

171 {
172 return fwd( [&]( IDataManagerSvc& svc ) { return svc.clearSubTree( pObject ); } );
173 }
MultiStoreSvc::fwd
StatusCode fwd(Fun f)
Definition: MultiStoreSvc.cpp:123
IDataManagerSvc
Definition: IDataManagerSvc.h:45
IDataManagerSvc::clearSubTree
virtual StatusCode clearSubTree(std::string_view sub_path)=0
Remove all data objects below the sub tree identified by its full path name.

## ◆ create() [1/2]

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

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

Definition at line 314 of file MultiStoreSvc.cpp.

314 {
315 IInterface* pPartition = nullptr;
316 return create( nam, typ, pPartition );
317 }
MultiStoreSvc::create
StatusCode create(CSTR &nam, CSTR &typ) override
Create a partition object. The name identifies the partition uniquely.
Definition: MultiStoreSvc.cpp:314
IInterface
Definition of the basic interface.
Definition: IInterface.h:244

## ◆ create() [2/2]

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

319 {
320 if ( get( nam, pPartition ).isSuccess() ) return IPartitionControl::Status::PARTITION_EXISTS;
322 auto isvc = serviceLocator()->service<IService>( typ );
323 if ( !isvc ) return IInterface::Status::NO_INTERFACE;
324 auto dataMgr = isvc.as<IDataManagerSvc>();
325 auto dataProv = isvc.as<IDataProviderSvc>();
326 if ( !dataMgr || !dataProv ) return IInterface::Status::NO_INTERFACE;
327 m_partitions.emplace( nam, Partition{dataProv, dataMgr, nam} );
328 return StatusCode::SUCCESS;
329 }
IInterface::Status::NO_INTERFACE
Requested interface is not available.
Service::serviceLocator
SmartIF< ISvcLocator > & serviceLocator() const override
Retrieve pointer to service locator.
Definition: Service.cpp:277
IPartitionControl::Status::PARTITION_EXISTS
MultiStoreSvc::m_partitions
Partitions m_partitions
Datastore partitions.
Definition: MultiStoreSvc.cpp:119
IDataManagerSvc
Definition: IDataManagerSvc.h:45
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
IDataProviderSvc
Data provider interface definition.
Definition: IDataProviderSvc.h:43
MultiStoreSvc::get
StatusCode get(CSTR &nam, IInterface *&pPartition) const override
Access a partition object. The name identifies the partition uniquely.
Definition: MultiStoreSvc.cpp:377
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:76
IService
General service interface definition.
Definition: IService.h:18
std::map::emplace
T emplace(T... args)

## ◆ detachServices()

StatusCode MultiStoreSvc::detachServices | ( |  | ) |
| inline

Definition at line 422 of file MultiStoreSvc.cpp.

422 {
423 m_addrCreator.reset();
424 m_dataLoader.reset();
425 return StatusCode::SUCCESS;
426 }
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
MultiStoreSvc::m_dataLoader
SmartIF< IConversionSvc > m_dataLoader
Pointer to data loader service.
Definition: MultiStoreSvc.cpp:108
MultiStoreSvc::m_addrCreator
SmartIF< IAddressCreator > m_addrCreator
Reference to address creator.
Definition: MultiStoreSvc.cpp:110
SmartIF::reset
void reset(TYPE *ptr=nullptr)
Set the internal pointer to the passed one disposing of the old one.
Definition: SmartIF.h:86

## ◆ drop() [1/2]

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

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

Definition at line 332 of file MultiStoreSvc.cpp.

332 {
333 auto i = m_partitions.find( nam );
334 if ( i == m_partitions.end() ) return IPartitionControl::Status::PARTITION_NOT_PRESENT;
335 if ( i->second.dataManager == m_current.dataManager ) { m_current = Partition(); }
336 i->second.dataManager->clearStore().ignore();
337 m_partitions.erase( i );
338 return StatusCode::SUCCESS;
339 }
MultiStoreSvc::m_partitions
Partitions m_partitions
Datastore partitions.
Definition: MultiStoreSvc.cpp:119
IPartitionControl::Status::PARTITION_NOT_PRESENT
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
std::map::end
T end(T... args)
std::map::erase
T erase(T... args)
MultiStoreSvc::m_current
Partition m_current
Current partition.
Definition: MultiStoreSvc.cpp:117
std::map::find
T find(T... args)

## ◆ drop() [2/2]

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

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

Definition at line 342 of file MultiStoreSvc.cpp.

342 {
343 auto provider = SmartIF<IDataProviderSvc>( pPartition );
344 if ( !provider ) return IInterface::Status::NO_INTERFACE;
345 auto i = std::find_if( std::begin( m_partitions ), std::end( m_partitions ),
346 [&]( Partitions::const_reference p ) { return p.second.dataProvider == provider; } );
347 if ( i == std::end( m_partitions ) ) return IPartitionControl::Status::PARTITION_NOT_PRESENT;
348 i->second.dataManager->clearStore().ignore();
349 m_partitions.erase( i );
350 return StatusCode::SUCCESS;
351 }
IInterface::Status::NO_INTERFACE
Requested interface is not available.
SmartIF< IDataProviderSvc >
MultiStoreSvc::m_partitions
Partitions m_partitions
Datastore partitions.
Definition: MultiStoreSvc.cpp:119
IPartitionControl::Status::PARTITION_NOT_PRESENT
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
std::end
T end(T... args)
std::map::erase
T erase(T... args)
std::find_if
T find_if(T... args)
std::begin
T begin(T... args)

## ◆ finalize()

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

Service initialisation.

Definition at line 464 of file MultiStoreSvc.cpp.

464 {
465 setDataLoader( nullptr ).ignore();
466 clearStore().ignore();
467 clearPartitions().ignore();
468 m_current = Partition();
469 detachServices();
470 return Service::finalize();
471 }
MultiStoreSvc::detachServices
StatusCode detachServices()
Definition: MultiStoreSvc.cpp:422
MultiStoreSvc::clearStore
StatusCode clearStore() override
IDataManagerSvc: Remove all data objects in the data store.
Definition: MultiStoreSvc.cpp:175
Service::finalize
StatusCode finalize() override
Definition: Service.cpp:164
MultiStoreSvc::clearPartitions
StatusCode clearPartitions()
Clear all partitions.
Definition: MultiStoreSvc.cpp:512
MultiStoreSvc::m_current
Partition m_current
Current partition.
Definition: MultiStoreSvc.cpp:117
StatusCode::ignore
const StatusCode & ignore() const
Ignore/check StatusCode.
Definition: StatusCode.h:153
MultiStoreSvc::setDataLoader
StatusCode setDataLoader(IConversionSvc *pDataLoader, IDataProviderSvc *dpsvc=nullptr) override
IDataManagerSvc: Pass a default data loader to the service.
Definition: MultiStoreSvc.cpp:231

## ◆ findObject() [1/2]

StatusCode MultiStoreSvc::findObject | ( | std::string_view | path,
|  | OBJECT *& | pObj
| ) |  |
| inline override

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

Definition at line 278 of file MultiStoreSvc.cpp.

278 {
279 return fwd( [&]( IDataProviderSvc& svc ) { return svc.retrieveObject( path, pObj ); } );
280 }
MultiStoreSvc::fwd
StatusCode fwd(Fun f)
Definition: MultiStoreSvc.cpp:123
GaudiPython.HistoUtils.path
path
Definition: HistoUtils.py:932
IDataProviderSvc
Data provider interface definition.
Definition: IDataProviderSvc.h:43
IDataProviderSvc::retrieveObject
virtual StatusCode retrieveObject(IRegistry *pDirectory, std::string_view path, DataObject *&pObject)=0
Retrieve object identified by its directory entry.

## ◆ findObject() [2/2]

StatusCode MultiStoreSvc::findObject | ( | IRegistry * | parent,
|  | std::string_view | path,
|  | OBJECT *& | pObj
| ) |  |
| inline override

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

Definition at line 282 of file MultiStoreSvc.cpp.

282 {
283 return fwd( [&]( IDataProviderSvc& svc ) { return svc.findObject( parent, path, pObj ); } );
284 }
MultiStoreSvc::fwd
StatusCode fwd(Fun f)
Definition: MultiStoreSvc.cpp:123
GaudiPython.HistoUtils.path
path
Definition: HistoUtils.py:932
IDataProviderSvc
Data provider interface definition.
Definition: IDataProviderSvc.h:43
IDataProviderSvc::findObject
virtual StatusCode findObject(IRegistry *pDirectory, std::string_view path, DataObject *&pObject)=0
Find object identified by its directory entry.

## ◆ fwd()

template<typename Fun >

StatusCode MultiStoreSvc::fwd | ( | Fun | f | ) |
| inline protected

Definition at line 123 of file MultiStoreSvc.cpp.

123 {
124 auto* svc = m_current.get<std::decay_t<detail::argument_t<Fun>>>();
125 return svc ? f( *svc ) : IDataProviderSvc::Status::INVALID_ROOT;
126 }
IDataProviderSvc
Data provider interface definition.
Definition: IDataProviderSvc.h:43
EventStatus::Status
Status
Definition: IAlgExecStateSvc.h:63
MultiStoreSvc::m_current
Partition m_current
Current partition.
Definition: MultiStoreSvc.cpp:117

## ◆ get()

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

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

Definition at line 377 of file MultiStoreSvc.cpp.

377 {
378 auto i = m_partitions.find( nam );
379 if ( i != m_partitions.end() ) {
380 pPartition = i->second.dataProvider;
381 return StatusCode::SUCCESS;
382 }
383 pPartition = nullptr;
384 return IPartitionControl::Status::PARTITION_NOT_PRESENT;
385 }
MultiStoreSvc::m_partitions
Partitions m_partitions
Datastore partitions.
Definition: MultiStoreSvc.cpp:119
IPartitionControl::Status::PARTITION_NOT_PRESENT
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
std::map::end
T end(T... args)
std::map::find
T find(T... args)

## ◆ initialize()

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

Service initialisation.

Definition at line 429 of file MultiStoreSvc.cpp.

429 {
430 // Nothing to do: just call base class initialisation
431 StatusCode sc = Service::initialize();
432 if ( !sc.isSuccess() ) return sc;
433 sc = makePartitions();
434 if ( !sc.isSuccess() ) {
435 error() << "Failed to connect to all store partitions." << endmsg;
436 return sc;
437 }
438 return attachServices();
439 }
Service::initialize
StatusCode initialize() override
Definition: Service.cpp:60
MultiStoreSvc::attachServices
StatusCode attachServices()
Definition: MultiStoreSvc.cpp:399
CommonMessagingBase::error
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
Definition: CommonMessaging.h:98
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:50
StatusCode::isSuccess
bool isSuccess() const
Definition: StatusCode.h:267
MultiStoreSvc::makePartitions
StatusCode makePartitions()
Create all partitions according to job options.
Definition: MultiStoreSvc.cpp:519
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:192

## ◆ linkObject() [1/2]

StatusCode MultiStoreSvc::linkObject | ( | IRegistry * | from,
|  | std::string_view | objPath,
|  | OBJECT * | to
| ) |  |
| inline override

Add a link to another object.

Definition at line 286 of file MultiStoreSvc.cpp.

286 {
287 return fwd( [&]( IDataProviderSvc& svc ) { return svc.linkObject( from, objPath, to ); } );
288 }
MultiStoreSvc::fwd
StatusCode fwd(Fun f)
Definition: MultiStoreSvc.cpp:123
IDataProviderSvc::linkObject
virtual StatusCode linkObject(IRegistry *from, std::string_view objPath, DataObject *toObj)=0
Add a link to another object.
IDataProviderSvc
Data provider interface definition.
Definition: IDataProviderSvc.h:43

## ◆ linkObject() [2/2]

StatusCode MultiStoreSvc::linkObject | ( | std::string_view | fullPath,
|  | OBJECT * | to
| ) |  |
| inline override

Add a link to another object.

Definition at line 290 of file MultiStoreSvc.cpp.

290 {
291 return fwd( [&]( IDataProviderSvc& svc ) { return svc.linkObject( fullPath, to ); } );
292 }
MultiStoreSvc::fwd
StatusCode fwd(Fun f)
Definition: MultiStoreSvc.cpp:123
IDataProviderSvc::linkObject
virtual StatusCode linkObject(IRegistry *from, std::string_view objPath, DataObject *toObj)=0
Add a link to another object.
IDataProviderSvc
Data provider interface definition.
Definition: IDataProviderSvc.h:43

## ◆ makePartitions()

StatusCode MultiStoreSvc::makePartitions | ( |  | ) |
| inline

Create all partitions according to job options.

Definition at line 519 of file MultiStoreSvc.cpp.

519 {
520 using Parser = Gaudi::Utils::AttribStringParser;
521 std::string typ, nam;
522 clearPartitions().ignore();
523 for ( auto part : m_partitionDefs ) {
524 for ( auto attrib : Parser( std::move( part ) ) ) {
525 switch ( ::toupper( attrib.tag[0] ) ) {
526 case 'N':
527 nam = std::move( attrib.value );
528 break;
529 case 'T':
530 typ = std::move( attrib.value );
531 break;
532 }
533 }
534 StatusCode sc = create( nam, typ );
535 if ( !sc.isSuccess() ) return sc;
536 if ( m_defaultPartition.empty() ) m_defaultPartition = nam;
537 }
538 return StatusCode::SUCCESS;
539 }
Gaudi::Utils::AttribStringParser
Parse attribute strings allowing iteration over the various attributes.
Definition: AttribStringParser.h:30
MultiStoreSvc::create
StatusCode create(CSTR &nam, CSTR &typ) override
Create a partition object. The name identifies the partition uniquely.
Definition: MultiStoreSvc.cpp:314
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
std::string
STL class.
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:50
MultiStoreSvc::clearPartitions
StatusCode clearPartitions()
Clear all partitions.
Definition: MultiStoreSvc.cpp:512
MultiStoreSvc::m_defaultPartition
Gaudi::Property< std::string > m_defaultPartition
Definition: MultiStoreSvc.cpp:105
StatusCode::isSuccess
bool isSuccess() const
Definition: StatusCode.h:267
std::move
T move(T... args)
StatusCode::ignore
const StatusCode & ignore() const
Ignore/check StatusCode.
Definition: StatusCode.h:153
MultiStoreSvc::m_partitionDefs
Gaudi::Property< PartitionDefs > m_partitionDefs
Definition: MultiStoreSvc.cpp:103
toupper
void toupper(std::string &s)
Definition: StatusCodeSvc.cpp:7

## ◆ objectLeaves() [1/2]

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

151 {
152 return fwd( [&]( IDataManagerSvc& svc ) { return svc.objectLeaves( pObject, leaves ); } );
153 }
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 ...
MultiStoreSvc::fwd
StatusCode fwd(Fun f)
Definition: MultiStoreSvc.cpp:123
IDataManagerSvc
Definition: IDataManagerSvc.h:45

## ◆ objectLeaves() [2/2]

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

155 {
156 return fwd( [&]( IDataManagerSvc& svc ) { return svc.objectLeaves( pObject, leaves ); } );
157 }
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 ...
MultiStoreSvc::fwd
StatusCode fwd(Fun f)
Definition: MultiStoreSvc.cpp:123
IDataManagerSvc
Definition: IDataManagerSvc.h:45

## ◆ objectParent() [1/2]

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

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

Definition at line 159 of file MultiStoreSvc.cpp.

159 {
160 return fwd( [&]( IDataManagerSvc& svc ) { return svc.objectParent( pObject, refpParent ); } );
161 }
MultiStoreSvc::fwd
StatusCode fwd(Fun f)
Definition: MultiStoreSvc.cpp:123
IDataManagerSvc
Definition: IDataManagerSvc.h:45
IDataManagerSvc::objectParent
virtual StatusCode objectParent(const DataObject *pObject, IRegistry *&refpParent)=0
IDataManagerSvc: Explore the object store: retrieve the object's parent.

## ◆ objectParent() [2/2]

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

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

Definition at line 163 of file MultiStoreSvc.cpp.

163 {
164 return fwd( [&]( IDataManagerSvc& svc ) { return svc.objectParent( pObject, refpParent ); } );
165 }
MultiStoreSvc::fwd
StatusCode fwd(Fun f)
Definition: MultiStoreSvc.cpp:123
IDataManagerSvc
Definition: IDataManagerSvc.h:45
IDataManagerSvc::objectParent
virtual StatusCode objectParent(const DataObject *pObject, IRegistry *&refpParent)=0
IDataManagerSvc: Explore the object store: retrieve the object's parent.

## ◆ preLoad()

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

load all preload items of the list

Definition at line 250 of file MultiStoreSvc.cpp.

250 {
251 return fwd( [&]( IDataProviderSvc& svc ) { return svc.preLoad(); } );
252 }
MultiStoreSvc::fwd
StatusCode fwd(Fun f)
Definition: MultiStoreSvc.cpp:123
IDataProviderSvc::preLoad
virtual StatusCode preLoad()=0
Load all preload items of the list.
IDataProviderSvc
Data provider interface definition.
Definition: IDataProviderSvc.h:43

## ◆ preparePartitions()

StatusCode MultiStoreSvc::preparePartitions | ( |  | ) |
| inline

Prepare partition for usage.

Definition at line 487 of file MultiStoreSvc.cpp.

487 {
488 StatusCode iret = StatusCode::SUCCESS;
489 for ( auto& i : m_partitions ) {
490 StatusCode sc = visit(
491 m_root.root,
492 [&]( ADDRESS* address ) -> StatusCode {
493 if ( !address ) return StatusCode::FAILURE;
494 ADDRESS* pAdd = nullptr;
495 ADDRESS* p = address;
496 auto sc = m_addrCreator->createAddress( p->svcType(), p->clID(), p->par(), p->ipar(), pAdd );
497 return sc.isSuccess() ? i.second.dataManager->setRoot( m_root.path, pAdd ) : sc;
498 },
499 [&]( OBJECT* object ) -> StatusCode {
500 if ( object && object->clID() == CLID_DataObject ) {
501 return i.second.dataManager->setRoot( m_root.path, new DataObject() );
502 }
503 return StatusCode::FAILURE;
504 },
505 []( std::monostate ) -> StatusCode { return StatusCode::FAILURE; } );
506 if ( !sc.isSuccess() ) iret = sc;
507 }
508 return iret;
509 }
MultiStoreSvc::tagROOT::root
std::variant< std::monostate, ADDRESS *, OBJECT * > root
Definition: MultiStoreSvc.cpp:114
MultiStoreSvc::m_partitions
Partitions m_partitions
Datastore partitions.
Definition: MultiStoreSvc.cpp:119
MultiStoreSvc::m_root
struct MultiStoreSvc::tagROOT m_root
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:50
StatusCode::isSuccess
bool isSuccess() const
Definition: StatusCode.h:267
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:86
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

## ◆ registerAddress() [1/2]

StatusCode MultiStoreSvc::registerAddress | ( | std::string_view | path,
|  | ADDRESS * | pAddr
| ) |  |
| inline override

IDataManagerSvc: Register object address with the data store.

Definition at line 135 of file MultiStoreSvc.cpp.

135 {
136 return fwd( [&]( IDataManagerSvc& svc ) { return svc.registerAddress( path, pAddr ); } );
137 }
MultiStoreSvc::fwd
StatusCode fwd(Fun f)
Definition: MultiStoreSvc.cpp:123
IDataManagerSvc::registerAddress
virtual StatusCode registerAddress(std::string_view fullPath, IOpaqueAddress *pAddress)=0
Register object address with the data store.
GaudiPython.HistoUtils.path
path
Definition: HistoUtils.py:932
IDataManagerSvc
Definition: IDataManagerSvc.h:45

## ◆ registerAddress() [2/2]

StatusCode MultiStoreSvc::registerAddress | ( | IRegistry * | parent,
|  | std::string_view | path,
|  | ADDRESS * | pAddr
| ) |  |
| inline override

IDataManagerSvc: Register object address with the data store.

Definition at line 139 of file MultiStoreSvc.cpp.

139 {
140 return fwd( [&]( IDataManagerSvc& svc ) { return svc.registerAddress( parent, path, pAddr ); } );
141 }
MultiStoreSvc::fwd
StatusCode fwd(Fun f)
Definition: MultiStoreSvc.cpp:123
IDataManagerSvc::registerAddress
virtual StatusCode registerAddress(std::string_view fullPath, IOpaqueAddress *pAddress)=0
Register object address with the data store.
GaudiPython.HistoUtils.path
path
Definition: HistoUtils.py:932
IDataManagerSvc
Definition: IDataManagerSvc.h:45

## ◆ registerObject() [1/2]

StatusCode MultiStoreSvc::registerObject | ( | std::string_view | parent,
|  | std::string_view | obj,
|  | OBJECT * | pObj
| ) |  |
| inline override

Register object with the data store.

Definition at line 254 of file MultiStoreSvc.cpp.

254 {
255 return fwd( [&]( IDataProviderSvc& svc ) { return svc.registerObject( parent, obj, pObj ); } );
256 }
MultiStoreSvc::fwd
StatusCode fwd(Fun f)
Definition: MultiStoreSvc.cpp:123
IDataProviderSvc
Data provider interface definition.
Definition: IDataProviderSvc.h:43
IDataProviderSvc::registerObject
StatusCode registerObject(std::string_view fullPath, DataObject *pObject)
Register object with the data store.
Definition: IDataProviderSvc.h:62

## ◆ registerObject() [2/2]

StatusCode MultiStoreSvc::registerObject | ( | OBJECT * | parent,
|  | std::string_view | obj,
|  | OBJECT * | pObj
| ) |  |
| inline override

Register object with the data store.

Definition at line 258 of file MultiStoreSvc.cpp.

258 {
259 return fwd( [&]( IDataProviderSvc& svc ) { return svc.registerObject( parent, obj, pObj ); } );
260 }
MultiStoreSvc::fwd
StatusCode fwd(Fun f)
Definition: MultiStoreSvc.cpp:123
IDataProviderSvc
Data provider interface definition.
Definition: IDataProviderSvc.h:43
IDataProviderSvc::registerObject
StatusCode registerObject(std::string_view fullPath, DataObject *pObject)
Register object with the data store.
Definition: IDataProviderSvc.h:62

## ◆ reinitialize()

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

Service initialisation.

Definition at line 442 of file MultiStoreSvc.cpp.

442 {
443 StatusCode sc = Service::reinitialize();
444 if ( !sc.isSuccess() ) {
445 error() << "Enable to reinitialize base class" << endmsg;
446 return sc;
447 }
448 detachServices();
449 sc = attachServices();
450 if ( !sc.isSuccess() ) {
451 error() << "Failed to attach necessary services." << endmsg;
452 return sc;
453 }
454 sc = makePartitions();
455 if ( !sc.isSuccess() ) {
456 error() << "Failed to connect to store partitions." << endmsg;
457 return sc;
458 }
459 // return
460 return StatusCode::SUCCESS;
461 }
MultiStoreSvc::detachServices
StatusCode detachServices()
Definition: MultiStoreSvc.cpp:422
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
MultiStoreSvc::attachServices
StatusCode attachServices()
Definition: MultiStoreSvc.cpp:399
CommonMessagingBase::error
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
Definition: CommonMessaging.h:98
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:50
Service::reinitialize
StatusCode reinitialize() override
Definition: Service.cpp:237
StatusCode::isSuccess
bool isSuccess() const
Definition: StatusCode.h:267
MultiStoreSvc::makePartitions
StatusCode makePartitions()
Create all partitions according to job options.
Definition: MultiStoreSvc.cpp:519
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:192

## ◆ removePreLoadItem()

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

Remove an item from the preload list.

Definition at line 242 of file MultiStoreSvc.cpp.

242 {
243 return fwd( [&]( IDataProviderSvc& svc ) { return svc.removePreLoadItem( item ); } );
244 }
MultiStoreSvc::fwd
StatusCode fwd(Fun f)
Definition: MultiStoreSvc.cpp:123
IDataProviderSvc
Data provider interface definition.
Definition: IDataProviderSvc.h:43
IDataProviderSvc::removePreLoadItem
virtual StatusCode removePreLoadItem(const DataStoreItem &item)=0
Remove an item from the preload list.

## ◆ resetPreLoad()

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

Clear the preload list.

Definition at line 246 of file MultiStoreSvc.cpp.

246 {
247 return fwd( [&]( IDataProviderSvc& svc ) { return svc.resetPreLoad(); } );
248 }
MultiStoreSvc::fwd
StatusCode fwd(Fun f)
Definition: MultiStoreSvc.cpp:123
IDataProviderSvc::resetPreLoad
virtual StatusCode resetPreLoad()=0
Clear the preload list.
IDataProviderSvc
Data provider interface definition.
Definition: IDataProviderSvc.h:43

## ◆ retrieveObject()

StatusCode MultiStoreSvc::retrieveObject | ( | IRegistry * | parent,
|  | std::string_view | path,
|  | OBJECT *& | pObj
| ) |  |
| inline override

Retrieve object from data store.

Definition at line 274 of file MultiStoreSvc.cpp.

274 {
275 return fwd( [&]( IDataProviderSvc& svc ) { return svc.retrieveObject( parent, path, pObj ); } );
276 }
MultiStoreSvc::fwd
StatusCode fwd(Fun f)
Definition: MultiStoreSvc.cpp:123
GaudiPython.HistoUtils.path
path
Definition: HistoUtils.py:932
IDataProviderSvc
Data provider interface definition.
Definition: IDataProviderSvc.h:43
IDataProviderSvc::retrieveObject
virtual StatusCode retrieveObject(IRegistry *pDirectory, std::string_view path, DataObject *&pObject)=0
Retrieve object identified by its directory entry.

## ◆ rootCLID()

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

IDataManagerSvc: Accessor for root event CLID.

Definition at line 130 of file MultiStoreSvc.cpp.

130 { return m_rootCLID; }
MultiStoreSvc::m_rootCLID
Gaudi::Property< CLID > m_rootCLID
Definition: MultiStoreSvc.cpp:101

## ◆ rootName()

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

Name for root Event.

Definition at line 132 of file MultiStoreSvc.cpp.

132 { return m_rootName; }
MultiStoreSvc::m_rootName
Gaudi::Property< std::string > m_rootName
Definition: MultiStoreSvc.cpp:102

## ◆ setDataLoader()

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

IDataManagerSvc: Pass a default data loader to the service.

Definition at line 231 of file MultiStoreSvc.cpp.

231 {
232 m_dataLoader = pDataLoader;
233 if ( m_dataLoader ) m_dataLoader->setDataProvider( dpsvc ? dpsvc : this );
234 for ( auto& i : m_partitions ) { i.second.dataManager->setDataLoader( m_dataLoader.get() ).ignore(); }
235 return StatusCode::SUCCESS;
236 }
MultiStoreSvc::m_partitions
Partitions m_partitions
Datastore partitions.
Definition: MultiStoreSvc.cpp:119
IConverter::setDataProvider
virtual StatusCode setDataProvider(IDataProviderSvc *pService)=0
Set Data provider service.
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
SmartIF::get
TYPE * get() const
Get interface pointer.
Definition: SmartIF.h:76
MultiStoreSvc::m_dataLoader
SmartIF< IConversionSvc > m_dataLoader
Pointer to data loader service.
Definition: MultiStoreSvc.cpp:108

## ◆ setRoot() [1/2]

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

201 {
202 visit(
203 m_root.root,
204 []( auto* p ) {
205 if ( p ) p->release();
206 },
207 []( std::monostate ) {} );
208 m_root.path = std::move( path );
209 m_root.root = pObj;
210 preparePartitions();
211 return activate( m_defaultPartition );
212 }
MultiStoreSvc::tagROOT::root
std::variant< std::monostate, ADDRESS *, OBJECT * > root
Definition: MultiStoreSvc.cpp:114
GaudiPython.HistoUtils.path
path
Definition: HistoUtils.py:932
MultiStoreSvc::m_root
struct MultiStoreSvc::tagROOT m_root
MultiStoreSvc::m_defaultPartition
Gaudi::Property< std::string > m_defaultPartition
Definition: MultiStoreSvc.cpp:105
MultiStoreSvc::preparePartitions
StatusCode preparePartitions()
Prepare partition for usage.
Definition: MultiStoreSvc.cpp:487
std::move
T move(T... args)
MultiStoreSvc::activate
StatusCode activate(CSTR &nam) override
Activate a partition object. The name identifies the partition uniquely.
Definition: MultiStoreSvc.cpp:354
MultiStoreSvc::tagROOT::path
std::string path
Definition: MultiStoreSvc.cpp:113

## ◆ setRoot() [2/2]

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

216 {
217 visit(
218 m_root.root,
219 []( auto* p ) {
220 if ( p ) p->release();
221 },
222 []( std::monostate ) {} );
223 m_root.path = std::move( path );
224 m_root.root = pAddr;
225 if ( !pAddr ) return StatusCode::FAILURE;
226 pAddr->addRef();
227 preparePartitions();
228 return activate( m_defaultPartition );
229 }
MultiStoreSvc::tagROOT::root
std::variant< std::monostate, ADDRESS *, OBJECT * > root
Definition: MultiStoreSvc.cpp:114
GaudiPython.HistoUtils.path
path
Definition: HistoUtils.py:932
MultiStoreSvc::m_root
struct MultiStoreSvc::tagROOT m_root
MultiStoreSvc::m_defaultPartition
Gaudi::Property< std::string > m_defaultPartition
Definition: MultiStoreSvc.cpp:105
MultiStoreSvc::preparePartitions
StatusCode preparePartitions()
Prepare partition for usage.
Definition: MultiStoreSvc.cpp:487
std::move
T move(T... args)
MultiStoreSvc::activate
StatusCode activate(CSTR &nam) override
Activate a partition object. The name identifies the partition uniquely.
Definition: MultiStoreSvc.cpp:354
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:86
MultiStoreSvc::tagROOT::path
std::string path
Definition: MultiStoreSvc.cpp:113
IOpaqueAddress::addRef
virtual unsigned long addRef()=0
Add reference to object.

## ◆ traverseSubTree() [1/2]

StatusCode MultiStoreSvc::traverseSubTree | ( | std::string_view | path,
|  | AGENT * | pAgent
| ) |  |
| inline override

Analyze by traversing all data objects below the sub tree.

Definition at line 188 of file MultiStoreSvc.cpp.

188 {
189 return fwd( [&]( IDataManagerSvc& svc ) { return svc.traverseSubTree( path, pAgent ); } );
190 }
MultiStoreSvc::fwd
StatusCode fwd(Fun f)
Definition: MultiStoreSvc.cpp:123
GaudiPython.HistoUtils.path
path
Definition: HistoUtils.py:932
IDataManagerSvc::traverseSubTree
virtual StatusCode traverseSubTree(std::string_view sub_tree_path, IDataStoreAgent *pAgent)=0
Analyse by traversing all data objects below the sub tree identified by its full path name.
IDataManagerSvc
Definition: IDataManagerSvc.h:45

## ◆ traverseSubTree() [2/2]

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

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

Definition at line 192 of file MultiStoreSvc.cpp.

192 {
193 return fwd( [&]( IDataManagerSvc& svc ) { return svc.traverseSubTree( pObject, pAgent ); } );
194 }
MultiStoreSvc::fwd
StatusCode fwd(Fun f)
Definition: MultiStoreSvc.cpp:123
IDataManagerSvc::traverseSubTree
virtual StatusCode traverseSubTree(std::string_view sub_tree_path, IDataStoreAgent *pAgent)=0
Analyse by traversing all data objects below the sub tree identified by its full path name.
IDataManagerSvc
Definition: IDataManagerSvc.h:45

## ◆ traverseTree()

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

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

Definition at line 196 of file MultiStoreSvc.cpp.

196 {
197 return fwd( [&]( IDataManagerSvc& svc ) { return svc.traverseTree( pAgent ); } );
198 }
IDataManagerSvc::traverseTree
virtual StatusCode traverseTree(IDataStoreAgent *pAgent)=0
Analyse by traversing all data objects in the data store.
MultiStoreSvc::fwd
StatusCode fwd(Fun f)
Definition: MultiStoreSvc.cpp:123
IDataManagerSvc
Definition: IDataManagerSvc.h:45

## ◆ unlinkObject() [1/3]

StatusCode MultiStoreSvc::unlinkObject | ( | IRegistry * | from,
|  | std::string_view | objPath
| ) |  |
| inline override

Remove a link to another object.

Definition at line 294 of file MultiStoreSvc.cpp.

294 {
295 return fwd( [&]( IDataProviderSvc& svc ) { return svc.unlinkObject( from, objPath ); } );
296 }
MultiStoreSvc::fwd
StatusCode fwd(Fun f)
Definition: MultiStoreSvc.cpp:123
IDataProviderSvc
Data provider interface definition.
Definition: IDataProviderSvc.h:43
IDataProviderSvc::unlinkObject
virtual StatusCode unlinkObject(IRegistry *from, std::string_view objPath)=0
Remove a link to another object.

## ◆ unlinkObject() [2/3]

StatusCode MultiStoreSvc::unlinkObject | ( | OBJECT * | from,
|  | std::string_view | objPath
| ) |  |
| inline override

Remove a link to another object.

Definition at line 298 of file MultiStoreSvc.cpp.

298 {
299 return fwd( [&]( IDataProviderSvc& svc ) { return svc.unlinkObject( from, objPath ); } );
300 }
MultiStoreSvc::fwd
StatusCode fwd(Fun f)
Definition: MultiStoreSvc.cpp:123
IDataProviderSvc
Data provider interface definition.
Definition: IDataProviderSvc.h:43
IDataProviderSvc::unlinkObject
virtual StatusCode unlinkObject(IRegistry *from, std::string_view objPath)=0
Remove a link to another object.

## ◆ unlinkObject() [3/3]

StatusCode MultiStoreSvc::unlinkObject | ( | std::string_view | path | ) |
| inline override

Remove a link to another object.

Definition at line 302 of file MultiStoreSvc.cpp.

302 {
303 return fwd( [&]( IDataProviderSvc& svc ) { return svc.unlinkObject( path ); } );
304 }
MultiStoreSvc::fwd
StatusCode fwd(Fun f)
Definition: MultiStoreSvc.cpp:123
GaudiPython.HistoUtils.path
path
Definition: HistoUtils.py:932
IDataProviderSvc
Data provider interface definition.
Definition: IDataProviderSvc.h:43
IDataProviderSvc::unlinkObject
virtual StatusCode unlinkObject(IRegistry *from, std::string_view objPath)=0
Remove a link to another object.

## ◆ unregisterAddress() [1/2]

StatusCode MultiStoreSvc::unregisterAddress | ( | std::string_view | path | ) |
| inline override

IDataManagerSvc: Unregister object address from the data store.

Definition at line 143 of file MultiStoreSvc.cpp.

143 {
144 return fwd( [&]( IDataManagerSvc& svc ) { return svc.unregisterAddress( path ); } );
145 }
MultiStoreSvc::fwd
StatusCode fwd(Fun f)
Definition: MultiStoreSvc.cpp:123
GaudiPython.HistoUtils.path
path
Definition: HistoUtils.py:932
IDataManagerSvc
Definition: IDataManagerSvc.h:45
IDataManagerSvc::unregisterAddress
virtual StatusCode unregisterAddress(std::string_view fullPath)=0
Unregister object address from the data store.

## ◆ unregisterAddress() [2/2]

StatusCode MultiStoreSvc::unregisterAddress | ( | IRegistry * | pParent,
|  | std::string_view | path
| ) |  |
| inline override

IDataManagerSvc: Unregister object address from the data store.

Definition at line 147 of file MultiStoreSvc.cpp.

147 {
148 return fwd( [&]( IDataManagerSvc& svc ) { return svc.unregisterAddress( pParent, path ); } );
149 }
MultiStoreSvc::fwd
StatusCode fwd(Fun f)
Definition: MultiStoreSvc.cpp:123
GaudiPython.HistoUtils.path
path
Definition: HistoUtils.py:932
IDataManagerSvc
Definition: IDataManagerSvc.h:45
IDataManagerSvc::unregisterAddress
virtual StatusCode unregisterAddress(std::string_view fullPath)=0
Unregister object address from the data store.

## ◆ unregisterObject() [1/3]

StatusCode MultiStoreSvc::unregisterObject | ( | std::string_view | path | ) |
| inline override

Unregister object from the data store.

Definition at line 262 of file MultiStoreSvc.cpp.

262 {
263 return fwd( [&]( IDataProviderSvc& svc ) { return svc.unregisterObject( path ); } );
264 }
MultiStoreSvc::fwd
StatusCode fwd(Fun f)
Definition: MultiStoreSvc.cpp:123
GaudiPython.HistoUtils.path
path
Definition: HistoUtils.py:932
IDataProviderSvc
Data provider interface definition.
Definition: IDataProviderSvc.h:43
IDataProviderSvc::unregisterObject
virtual StatusCode unregisterObject(std::string_view fullPath)=0
Unregister object from the data store.

## ◆ unregisterObject() [2/3]

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

Unregister object from the data store.

Definition at line 266 of file MultiStoreSvc.cpp.

266 {
267 return fwd( [&]( IDataProviderSvc& svc ) { return svc.unregisterObject( pObj ); } );
268 }
MultiStoreSvc::fwd
StatusCode fwd(Fun f)
Definition: MultiStoreSvc.cpp:123
IDataProviderSvc
Data provider interface definition.
Definition: IDataProviderSvc.h:43
IDataProviderSvc::unregisterObject
virtual StatusCode unregisterObject(std::string_view fullPath)=0
Unregister object from the data store.

## ◆ unregisterObject() [3/3]

StatusCode MultiStoreSvc::unregisterObject | ( | OBJECT * | pObj,
|  | std::string_view | path
| ) |  |
| inline override

Unregister object from the data store.

Definition at line 270 of file MultiStoreSvc.cpp.

270 {
271 return fwd( [&]( IDataProviderSvc& svc ) { return svc.unregisterObject( pObj, path ); } );
272 }
MultiStoreSvc::fwd
StatusCode fwd(Fun f)
Definition: MultiStoreSvc.cpp:123
GaudiPython.HistoUtils.path
path
Definition: HistoUtils.py:932
IDataProviderSvc
Data provider interface definition.
Definition: IDataProviderSvc.h:43
IDataProviderSvc::unregisterObject
virtual StatusCode unregisterObject(std::string_view fullPath)=0
Unregister object from the data store.

## ◆ updateObject() [1/2]

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

Update object identified by its directory entry.

Definition at line 306 of file MultiStoreSvc.cpp.

306 {
307 return fwd( [&]( IDataProviderSvc& svc ) { return svc.updateObject( pDirectory ); } );
308 }
MultiStoreSvc::fwd
StatusCode fwd(Fun f)
Definition: MultiStoreSvc.cpp:123
IDataProviderSvc
Data provider interface definition.
Definition: IDataProviderSvc.h:43
IDataProviderSvc::updateObject
virtual StatusCode updateObject(IRegistry *pDirectory)=0
Update object identified by its directory entry.

## ◆ updateObject() [2/2]

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

Update object.

Definition at line 310 of file MultiStoreSvc.cpp.

310 {
311 return fwd( [&]( IDataProviderSvc& svc ) { return svc.updateObject( pObj ); } );
312 }
MultiStoreSvc::fwd
StatusCode fwd(Fun f)
Definition: MultiStoreSvc.cpp:123
IDataProviderSvc
Data provider interface definition.
Definition: IDataProviderSvc.h:43
IDataProviderSvc::updateObject
virtual StatusCode updateObject(IRegistry *pDirectory)=0
Update object identified by its directory entry.

## Member Data Documentation

## ◆ m_addrCreator

SmartIF<IAddressCreator> MultiStoreSvc::m_addrCreator
| protected

Reference to address creator.

Definition at line 110 of file MultiStoreSvc.cpp.

## ◆ m_current

Partition MultiStoreSvc::m_current
| protected

Current partition.

Definition at line 117 of file MultiStoreSvc.cpp.

## ◆ m_dataLoader

SmartIF<IConversionSvc> MultiStoreSvc::m_dataLoader
| protected

Pointer to data loader service.

Definition at line 108 of file MultiStoreSvc.cpp.

## ◆ m_defaultPartition

Gaudi::Property<std::string> MultiStoreSvc::m_defaultPartition {this, "DefaultPartition", "Default", "default partition name"}
| protected

Definition at line 105 of file MultiStoreSvc.cpp.

## ◆ m_loader

Gaudi::Property<std::string> MultiStoreSvc::m_loader {this, "DataLoader", "EventPersistencySvc", "data loader name"}
| protected

Definition at line 104 of file MultiStoreSvc.cpp.

## ◆ m_partitionDefs

Gaudi::Property<PartitionDefs> MultiStoreSvc::m_partitionDefs {this, "Partitions", {}, "datastore partition definitions"}
| protected

Definition at line 103 of file MultiStoreSvc.cpp.

## ◆ m_partitions

Partitions MultiStoreSvc::m_partitions
| protected

Datastore partitions.

Definition at line 119 of file MultiStoreSvc.cpp.

## ◆ m_root

struct MultiStoreSvc::tagROOT MultiStoreSvc::m_root
| protected

## ◆ m_rootCLID

Gaudi::Property<CLID> MultiStoreSvc::m_rootCLID {this, "RootCLID", 110, "CLID of root entry"}
| protected

Definition at line 101 of file MultiStoreSvc.cpp.

## ◆ m_rootName

Gaudi::Property<std::string> MultiStoreSvc::m_rootName {this, "RootName", "/Event", "name of root entry"}
| protected

Definition at line 102 of file MultiStoreSvc.cpp.

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

- GaudiCommonSvc/src/DataSvc/MultiStoreSvc.cpp