The Gaudi Framework  v33r1 (b1225454)
HiveWhiteBoard Class Reference

Data service base class. More...

Inheritance diagram for HiveWhiteBoard:
Collaboration diagram for HiveWhiteBoard:

Public Member Functions

 ~HiveWhiteBoard () override
 Standard Destructor. More...
 
size_t freeSlots () override
 Get free slots number. More...
 
CLID rootCLID () const override
 IDataManagerSvc: Accessor for root event CLID. More...
 
const std::stringrootName () const override
 Name for root Event. More...
 
StatusCode registerAddress (std::string_view path, IOpaqueAddress *pAddr) override
 IDataManagerSvc: Register object address with the data store. More...
 
StatusCode registerAddress (IRegistry *parent, std::string_view path, IOpaqueAddress *pAdd) 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 DataObject *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 DataObject *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 (DataObject *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, IDataStoreAgent *pAgent) override
 Analyze by traversing all data objects below the sub tree. More...
 
StatusCode traverseSubTree (DataObject *pObject, IDataStoreAgent *pAgent) override
 IDataManagerSvc: Analyze by traversing all data objects below the sub tree. More...
 
StatusCode traverseTree (IDataStoreAgent *pAgent) override
 IDataManagerSvc: Analyze by traversing all data objects in the data store. More...
 
StatusCode setRoot (std::string path, DataObject *pObj) override
 Initialize data store for new event by giving new event path and root object. More...
 
StatusCode setRoot (std::string path, IOpaqueAddress *pAddr) override
 Initialize data store for new event by giving new event path and address of root object. More...
 
StatusCode setDataLoader (IConversionSvc *pDataLoader, IDataProviderSvc *=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, DataObject *pObj) override
 Register object with the data store. More...
 
StatusCode registerObject (DataObject *parent, std::string_view obj, DataObject *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 (DataObject *pObj) override
 Unregister object from the data store. More...
 
StatusCode unregisterObject (DataObject *pObj, std::string_view path) override
 Unregister object from the data store. More...
 
StatusCode retrieveObject (IRegistry *parent, std::string_view path, DataObject *&pObj) override
 Retrieve object from data store. More...
 
StatusCode findObject (std::string_view path, DataObject *&pObj) override
 Find object identified by its full path in the data store. More...
 
StatusCode findObject (IRegistry *parent, std::string_view path, DataObject *&pObj) override
 Find object identified by its full path in the data store. More...
 
StatusCode linkObject (IRegistry *from, std::string_view objPath, DataObject *to) override
 Add a link to another object. More...
 
StatusCode linkObject (std::string_view fullPath, DataObject *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 (DataObject *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 (DataObject *pObj) override
 Update object. More...
 
StatusCode clearStore (size_t partition) override
 Remove all data objects in one 'slot' of the data store. More...
 
StatusCode selectStore (size_t partition) override
 Activate a partition object. The identifies the partition uniquely. More...
 
StatusCode setNumberOfStores (size_t slots) override
 Set the number of event slots (copies of DataSvc objects). More...
 
size_t getNumberOfStores () const override
 Get the number of event slots (copies of DataSvc objects). More...
 
bool exists (const DataObjID &id) override
 check if a data object exists in the current store More...
 
size_t allocateStore (int evtnumber) override
 Allocate a store partition for a given event number. More...
 
StatusCode freeStore (size_t partition) override
 Free a store partition. More...
 
size_t getPartitionNumber (int eventnumber) const override
 Get the partition number corresponding to a given event. More...
 
StatusCode attachServices ()
 
StatusCode detachServices ()
 
StatusCode initialize () override
 Service initialisation. More...
 
StatusCode reinitialize () override
 Service initialisation. More...
 
StatusCode finalize () override
 Service initialisation. More...
 
- Public Member Functions inherited from extends< Service, IDataProviderSvc, IDataManagerSvc, IHiveWhiteBoard >
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::stringgetInterfaceNames () const override
 Implementation of IInterface::getInterfaceNames. More...
 
- Public Member Functions inherited from Service
const std::stringname () 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::PropertyBasedeclareProperty (Gaudi::Details::PropertyBase &prop)
 Declare a property. More...
 
Gaudi::Details::PropertyBasedeclareProperty (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::PropertyBasedeclareProperty (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::PropertyBasedeclareRemoteProperty (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::PropertyBasegetProperty (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
 
PropertyHolderoperator= (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...
 
- Public Member Functions inherited from CommonMessagingBase
virtual ~CommonMessagingBase ()=default
 Virtual destructor. More...
 
const SmartIF< IMessageSvc > & msgSvc () const
 The standard message service. More...
 
MsgStreammsgStream () const
 Return an uninitialized MsgStream. More...
 
MsgStreammsgStream (const MSG::Level level) const
 Predefined configurable message stream for the efficient printouts. More...
 
MsgStreamalways () const
 shortcut for the method msgStream(MSG::ALWAYS) More...
 
MsgStreamfatal () const
 shortcut for the method msgStream(MSG::FATAL) More...
 
MsgStreamerr () const
 shortcut for the method msgStream(MSG::ERROR) More...
 
MsgStreamerror () const
 shortcut for the method msgStream(MSG::ERROR) More...
 
MsgStreamwarning () const
 shortcut for the method msgStream(MSG::WARNING) More...
 
MsgStreaminfo () const
 shortcut for the method msgStream(MSG::INFO) More...
 
MsgStreamdebug () const
 shortcut for the method msgStream(MSG::DEBUG) More...
 
MsgStreamverbose () const
 shortcut for the method msgStream(MSG::VERBOSE) More...
 
MsgStreammsg () const
 shortcut for the method msgStream(MSG::INFO) More...
 

Protected Attributes

Gaudi::Property< CLIDm_rootCLID {this, "RootCLID", 110 , "CLID of root entry"}
 
Gaudi::Property< std::stringm_rootName {this, "RootName", "/Event", "name of root entry"}
 
Gaudi::Property< std::stringm_loader {this, "DataLoader", "EventPersistencySvc", ""}
 
Gaudi::Property< size_t > m_slots {this, "EventSlots", 1, "number of event slots"}
 
Gaudi::Property< bool > m_forceLeaves {this, "ForceLeaves", false, "force creation of default leaves on registerObject"}
 
Gaudi::Property< bool > m_enableFaultHdlr
 
IConversionSvcm_dataLoader = nullptr
 Pointer to data loader service. More...
 
IAddressCreatorm_addrCreator = nullptr
 Reference to address creator. More...
 
std::vector< Synced< Partition > > m_partitions
 Datastore partitions. More...
 
tbb::concurrent_queue< size_t > m_freeSlots
 fifo queue of free slots 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< IAuditorSvcm_pAuditorSvc
 Auditor Service. More...
 

Additional Inherited Members

- Public Types inherited from extends< Service, IDataProviderSvc, IDataManagerSvc, IHiveWhiteBoard >
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...
 
- 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::PropertyBaseproperty (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...
 

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
Pere Mato
Version
1.0

Definition at line 137 of file HiveWhiteBoard.cpp.

Constructor & Destructor Documentation

◆ ~HiveWhiteBoard()

HiveWhiteBoard::~HiveWhiteBoard ( )
inlineoverride

Standard Destructor.

Definition at line 161 of file HiveWhiteBoard.cpp.

161  {
162  setDataLoader( 0 ).ignore();
163  resetPreLoad().ignore();
164  clearStore().ignore();
165  for_( m_partitions, []( Partition& p ) {
166  p.dataManager->release();
167  p.dataProvider->release();
168  } );
170  }
StatusCode resetPreLoad() override
Clear the preload list.
std::vector< Synced< Partition > > m_partitions
Datastore partitions.
StatusCode clearStore() override
IDataManagerSvc: Remove all data objects in the data store.
T clear(T... args)
const StatusCode & ignore() const
Ignore/check StatusCode.
Definition: StatusCode.h:168
StatusCode setDataLoader(IConversionSvc *pDataLoader, IDataProviderSvc *=nullptr) override
IDataManagerSvc: Pass a default data loader to the service.

Member Function Documentation

◆ addPreLoadItem()

StatusCode HiveWhiteBoard::addPreLoadItem ( const DataStoreItem item)
inlineoverride

Add an item to the preload list.

Definition at line 265 of file HiveWhiteBoard.cpp.

265  {
266  for_( m_partitions, [&]( Partition& p ) {
267  p.dataProvider->addPreLoadItem( item ).ignore( /* AUTOMATICALLY ADDED FOR gaudi/Gaudi!763 */ );
268  } );
269  return StatusCode::SUCCESS;
270  }
constexpr static const auto SUCCESS
Definition: StatusCode.h:100
std::vector< Synced< Partition > > m_partitions
Datastore partitions.

◆ allocateStore()

size_t HiveWhiteBoard::allocateStore ( int  evtnumber)
inlineoverride

Allocate a store partition for a given event number.

Definition at line 386 of file HiveWhiteBoard.cpp.

386  {
387  // take next free slot in the list
388  size_t slot = std::string::npos;
389  if ( m_freeSlots.try_pop( slot ) ) {
390  assert( slot != std::string::npos );
391  assert( slot < m_partitions.size() );
392  m_partitions[slot].with_lock( [evtnumber]( Partition& p ) {
393  assert( p.eventNumber == -1 ); // or whatever value represents 'free'
394  p.eventNumber = evtnumber;
395  } );
396  }
397  return slot;
398  }
std::vector< Synced< Partition > > m_partitions
Datastore partitions.
T size(T... args)
tbb::concurrent_queue< size_t > m_freeSlots
fifo queue of free slots

◆ attachServices()

StatusCode HiveWhiteBoard::attachServices ( )
inline

Definition at line 416 of file HiveWhiteBoard.cpp.

416  {
417  StatusCode sc = service( m_loader, m_addrCreator, true );
418  if ( !sc.isSuccess() ) {
419  error() << "Failed to retrieve data loader "
420  << "\"" << m_loader << "\"" << endmsg;
421  return sc;
422  }
423  IConversionSvc* dataLoader = nullptr;
424  sc = service( m_loader, dataLoader, true );
425  if ( !sc.isSuccess() ) {
426  error() << MSG::ERROR << "Failed to retrieve data loader "
427  << "\"" << m_loader << "\"" << endmsg;
428  return sc;
429  }
430  sc = setDataLoader( dataLoader );
431  dataLoader->release();
432  if ( !sc.isSuccess() ) {
433  error() << MSG::ERROR << "Failed to set data loader "
434  << "\"" << m_loader << "\"" << endmsg;
435  return sc;
436  }
437  return sc;
438  }
Gaudi::Property< std::string > m_loader
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:61
bool isSuccess() const
Definition: StatusCode.h:365
virtual unsigned long release()=0
Release Interface instance.
IAddressCreator * m_addrCreator
Reference to address creator.
StatusCode setDataLoader(IConversionSvc *pDataLoader, IDataProviderSvc *=nullptr) override
IDataManagerSvc: Pass a default data loader to the 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:93
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:202

◆ clearStore() [1/2]

StatusCode HiveWhiteBoard::clearStore ( )
inlineoverride

IDataManagerSvc: Remove all data objects in the data store.

Definition at line 221 of file HiveWhiteBoard.cpp.

221  {
222  for_( m_partitions, []( Partition& p ) { p.dataManager->clearStore().ignore(); } );
223  return StatusCode::SUCCESS;
224  }
constexpr static const auto SUCCESS
Definition: StatusCode.h:100
std::vector< Synced< Partition > > m_partitions
Datastore partitions.

◆ clearStore() [2/2]

StatusCode HiveWhiteBoard::clearStore ( size_t  partition)
inlineoverride

Remove all data objects in one 'slot' of the data store.

Definition at line 355 of file HiveWhiteBoard.cpp.

355  {
356  return m_partitions[partition].with_lock( []( Partition& p ) { return p.dataManager->clearStore(); } );
357  }
std::vector< Synced< Partition > > m_partitions
Datastore partitions.
T partition(T... args)

◆ clearSubTree() [1/2]

StatusCode HiveWhiteBoard::clearSubTree ( std::string_view  path)
inlineoverride

Remove all data objects below the sub tree identified.

Definition at line 213 of file HiveWhiteBoard.cpp.

213  {
214  return fwd( [&]( IDataManagerSvc& p ) { return p.clearSubTree( path ); } );
215  }
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 HiveWhiteBoard::clearSubTree ( DataObject pObject)
inlineoverride

Remove all data objects below the sub tree identified.

Definition at line 217 of file HiveWhiteBoard.cpp.

217  {
218  return fwd( [&]( IDataManagerSvc& p ) { return p.clearSubTree( pObject ); } );
219  }
virtual StatusCode clearSubTree(std::string_view sub_path)=0
Remove all data objects below the sub tree identified by its full path name.

◆ detachServices()

StatusCode HiveWhiteBoard::detachServices ( )
inline

Definition at line 440 of file HiveWhiteBoard.cpp.

440  {
443  m_addrCreator = nullptr;
444  m_dataLoader = nullptr;
445  return StatusCode::SUCCESS;
446  }
constexpr static const auto SUCCESS
Definition: StatusCode.h:100
virtual unsigned long release()=0
Release Interface instance.
IAddressCreator * m_addrCreator
Reference to address creator.
IConversionSvc * m_dataLoader
Pointer to data loader service.

◆ exists()

bool HiveWhiteBoard::exists ( const DataObjID id)
inlineoverride

check if a data object exists in the current store

Definition at line 380 of file HiveWhiteBoard.cpp.

380  {
381  DataObject* pObject{nullptr};
382  return findObject( id.fullKey(), pObject ).isSuccess();
383  }
bool isSuccess() const
Definition: StatusCode.h:365
StatusCode findObject(std::string_view path, DataObject *&pObj) override
Find object identified by its full path in the data store.
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:40

◆ finalize()

StatusCode HiveWhiteBoard::finalize ( )
inlineoverride

Service initialisation.

Definition at line 512 of file HiveWhiteBoard.cpp.

512  {
513  setDataLoader( 0 ).ignore();
514  clearStore().ignore();
515  return Service::finalize();
516  }
StatusCode finalize() override
Definition: Service.cpp:174
StatusCode clearStore() override
IDataManagerSvc: Remove all data objects in the data store.
const StatusCode & ignore() const
Ignore/check StatusCode.
Definition: StatusCode.h:168
StatusCode setDataLoader(IConversionSvc *pDataLoader, IDataProviderSvc *=nullptr) override
IDataManagerSvc: Pass a default data loader to the service.

◆ findObject() [1/2]

StatusCode HiveWhiteBoard::findObject ( std::string_view  path,
DataObject *&  pObj 
)
inlineoverride

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

Definition at line 314 of file HiveWhiteBoard.cpp.

314  {
315  return fwd( [&]( IDataProviderSvc& p ) { return p.retrieveObject( path, pObj ); } );
316  }
Data provider interface definition.
virtual StatusCode retrieveObject(IRegistry *pDirectory, std::string_view path, DataObject *&pObject)=0
Retrieve object identified by its directory entry.

◆ findObject() [2/2]

StatusCode HiveWhiteBoard::findObject ( IRegistry parent,
std::string_view  path,
DataObject *&  pObj 
)
inlineoverride

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

Definition at line 318 of file HiveWhiteBoard.cpp.

318  {
319  return fwd( [&]( IDataProviderSvc& p ) { return p.retrieveObject( parent, path, pObj ); } );
320  }
Data provider interface definition.
virtual StatusCode retrieveObject(IRegistry *pDirectory, std::string_view path, DataObject *&pObject)=0
Retrieve object identified by its directory entry.
const Gaudi::Algorithm & parent

◆ freeSlots()

size_t HiveWhiteBoard::freeSlots ( )
inlineoverride

Get free slots number.

Definition at line 173 of file HiveWhiteBoard.cpp.

173 { return m_freeSlots.unsafe_size(); }
tbb::concurrent_queue< size_t > m_freeSlots
fifo queue of free slots

◆ freeStore()

StatusCode HiveWhiteBoard::freeStore ( size_t  partition)
inlineoverride

Free a store partition.

Definition at line 401 of file HiveWhiteBoard.cpp.

401  {
402  assert( partition < m_partitions.size() );
403  auto prev = m_partitions[partition].with_lock( []( Partition& p ) { return std::exchange( p.eventNumber, -1 ); } );
404  if ( UNLIKELY( prev == -1 ) ) return StatusCode::FAILURE; // double free -- should never happen!
405  m_freeSlots.push( partition );
406  return StatusCode::SUCCESS;
407  }
#define UNLIKELY(x)
Definition: Kernel.h:106
constexpr static const auto SUCCESS
Definition: StatusCode.h:100
std::vector< Synced< Partition > > m_partitions
Datastore partitions.
T partition(T... args)
T prev(T... args)
T size(T... args)
constexpr static const auto FAILURE
Definition: StatusCode.h:101
tbb::concurrent_queue< size_t > m_freeSlots
fifo queue of free slots

◆ getNumberOfStores()

size_t HiveWhiteBoard::getNumberOfStores ( ) const
inlineoverride

Get the number of event slots (copies of DataSvc objects).

Definition at line 377 of file HiveWhiteBoard.cpp.

377 { return m_slots; }
Gaudi::Property< size_t > m_slots

◆ getPartitionNumber()

size_t HiveWhiteBoard::getPartitionNumber ( int  eventnumber) const
inlineoverride

Get the partition number corresponding to a given event.

Definition at line 410 of file HiveWhiteBoard.cpp.

410  {
412  with_lock( [eventnumber]( const Partition& p ) { return p.eventNumber == eventnumber; } ) );
413  return i != end( m_partitions ) ? std::distance( begin( m_partitions ), i ) : std::string::npos;
414  }
T distance(T... args)
STL namespace.
std::vector< Synced< Partition > > m_partitions
Datastore partitions.
def end
Definition: IOTest.py:123
T find_if(T... args)
AttribStringParser::Iterator begin(const AttribStringParser &parser)

◆ initialize()

StatusCode HiveWhiteBoard::initialize ( )
inlineoverride

Service initialisation.

Definition at line 453 of file HiveWhiteBoard.cpp.

453  {
455  if ( !sc.isSuccess() ) {
456  error() << "Unable to initialize base class" << endmsg;
457  return sc;
458  }
459  if ( m_slots < (size_t)1 ) {
460  error() << "Invalid number of slots (" << m_slots << ")" << endmsg;
461  return StatusCode::FAILURE;
462  }
463 
464  if ( !setNumberOfStores( m_slots ).isSuccess() ) {
465  error() << "Cannot set number of slots" << endmsg;
466  return StatusCode::FAILURE;
467  }
468 
470  for ( size_t i = 0; i < m_slots; i++ ) {
471  DataSvc* svc = new DataSvc( name() + "_" + std::to_string( i ), serviceLocator() );
472  // Percolate properties
473  svc->setProperty( m_rootCLID ).ignore();
474  svc->setProperty( m_rootName ).ignore();
475  svc->setProperty( m_forceLeaves ).ignore();
477  // make sure that CommonMessaging is initialized
478  svc->setProperty( m_outputLevel ).ignore();
479 
480  sc = svc->initialize();
481  if ( !sc.isSuccess() ) {
482  error() << "Failed to instantiate DataSvc as store partition" << endmsg;
483  return sc;
484  }
485  m_partitions[i].with_lock( [&]( Partition& p ) {
486  p.dataProvider = svc;
487  p.dataManager = svc;
488  } );
489  m_freeSlots.push( i );
490  }
491  selectStore( 0 ).ignore();
492  return attachServices();
493  }
Gaudi::Property< int > m_outputLevel
Definition: Service.h:186
StatusCode initialize() override
Definition: Service.cpp:70
Gaudi::Property< std::string > m_rootName
SmartIF< ISvcLocator > & serviceLocator() const override
Retrieve pointer to service locator.
Definition: Service.cpp:287
Gaudi::Property< bool > m_enableFaultHdlr
StatusCode setProperty(const Gaudi::Details::PropertyBase &p) override
set the property form another property
T to_string(T... args)
std::vector< Synced< Partition > > m_partitions
Datastore partitions.
StatusCode selectStore(size_t partition) override
Activate a partition object. The identifies the partition uniquely.
const std::string & name() const override
Retrieve name of the service.
Definition: Service.cpp:284
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
Gaudi::Property< CLID > m_rootCLID
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:61
bool isSuccess() const
Definition: StatusCode.h:365
Gaudi::Property< size_t > m_slots
StatusCode attachServices()
const StatusCode & ignore() const
Ignore/check StatusCode.
Definition: StatusCode.h:168
STL class.
Gaudi::Property< bool > m_forceLeaves
StatusCode initialize() override
Service initialization.
Definition: DataSvc.cpp:822
Data service base class.
Definition: DataSvc.h:52
constexpr static const auto FAILURE
Definition: StatusCode.h:101
tbb::concurrent_queue< size_t > m_freeSlots
fifo queue of free slots
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:202
StatusCode setNumberOfStores(size_t slots) override
Set the number of event slots (copies of DataSvc objects).

◆ linkObject() [1/2]

StatusCode HiveWhiteBoard::linkObject ( IRegistry from,
std::string_view  objPath,
DataObject to 
)
inlineoverride

Add a link to another object.

Definition at line 322 of file HiveWhiteBoard.cpp.

322  {
323  return fwd( [&]( IDataProviderSvc& p ) { return p.linkObject( from, objPath, to ); } );
324  }
virtual StatusCode linkObject(IRegistry *from, std::string_view objPath, DataObject *toObj)=0
Add a link to another object.
Data provider interface definition.

◆ linkObject() [2/2]

StatusCode HiveWhiteBoard::linkObject ( std::string_view  fullPath,
DataObject to 
)
inlineoverride

Add a link to another object.

Definition at line 326 of file HiveWhiteBoard.cpp.

326  {
327  return fwd( [&]( IDataProviderSvc& p ) { return p.linkObject( fullPath, to ); } );
328  }
virtual StatusCode linkObject(IRegistry *from, std::string_view objPath, DataObject *toObj)=0
Add a link to another object.
Data provider interface definition.

◆ objectLeaves() [1/2]

StatusCode HiveWhiteBoard::objectLeaves ( const DataObject pObject,
std::vector< IRegistry * > &  leaves 
)
inlineoverride

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

Definition at line 197 of file HiveWhiteBoard.cpp.

197  {
198  return fwd( [&]( IDataManagerSvc& p ) { return p.objectLeaves( pObject, leaves ); } );
199  }
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 ...

◆ objectLeaves() [2/2]

StatusCode HiveWhiteBoard::objectLeaves ( const IRegistry pObject,
std::vector< IRegistry * > &  leaves 
)
inlineoverride

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

Definition at line 201 of file HiveWhiteBoard.cpp.

201  {
202  return fwd( [&]( IDataManagerSvc& p ) { return p.objectLeaves( pObject, leaves ); } );
203  }
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 ...

◆ objectParent() [1/2]

StatusCode HiveWhiteBoard::objectParent ( const DataObject pObject,
IRegistry *&  refpParent 
)
inlineoverride

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

Definition at line 205 of file HiveWhiteBoard.cpp.

205  {
206  return fwd( [&]( IDataManagerSvc& p ) { return p.objectParent( pObject, refpParent ); } );
207  }
virtual StatusCode objectParent(const DataObject *pObject, IRegistry *&refpParent)=0
IDataManagerSvc: Explore the object store: retrieve the object's parent.

◆ objectParent() [2/2]

StatusCode HiveWhiteBoard::objectParent ( const IRegistry pObject,
IRegistry *&  refpParent 
)
inlineoverride

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

Definition at line 209 of file HiveWhiteBoard.cpp.

209  {
210  return fwd( [&]( IDataManagerSvc& p ) { return p.objectParent( pObject, refpParent ); } );
211  }
virtual StatusCode objectParent(const DataObject *pObject, IRegistry *&refpParent)=0
IDataManagerSvc: Explore the object store: retrieve the object's parent.

◆ preLoad()

StatusCode HiveWhiteBoard::preLoad ( )
inlineoverride

load all preload items of the list

Definition at line 286 of file HiveWhiteBoard.cpp.

286  {
287  return fwd( [&]( IDataProviderSvc& p ) { return p.preLoad(); } );
288  }
virtual StatusCode preLoad()=0
Load all preload items of the list.
Data provider interface definition.

◆ registerAddress() [1/2]

StatusCode HiveWhiteBoard::registerAddress ( std::string_view  path,
IOpaqueAddress pAddr 
)
inlineoverride

IDataManagerSvc: Register object address with the data store.

Definition at line 181 of file HiveWhiteBoard.cpp.

181  {
182  return fwd( [&]( IDataManagerSvc& p ) { return p.registerAddress( path, pAddr ); } );
183  }
virtual StatusCode registerAddress(std::string_view fullPath, IOpaqueAddress *pAddress)=0
Register object address with the data store.

◆ registerAddress() [2/2]

StatusCode HiveWhiteBoard::registerAddress ( IRegistry parent,
std::string_view  path,
IOpaqueAddress pAdd 
)
inlineoverride

IDataManagerSvc: Register object address with the data store.

Definition at line 185 of file HiveWhiteBoard.cpp.

185  {
186  return fwd( [&]( IDataManagerSvc& p ) { return p.registerAddress( parent, path, pAdd ); } );
187  }
virtual StatusCode registerAddress(std::string_view fullPath, IOpaqueAddress *pAddress)=0
Register object address with the data store.
const Gaudi::Algorithm & parent

◆ registerObject() [1/2]

StatusCode HiveWhiteBoard::registerObject ( std::string_view  parent,
std::string_view  obj,
DataObject pObj 
)
inlineoverride

Register object with the data store.

Definition at line 290 of file HiveWhiteBoard.cpp.

290  {
291  return fwd( [&]( IDataProviderSvc& p ) { return p.registerObject( parent, obj, pObj ); } );
292  }
Data provider interface definition.
StatusCode registerObject(std::string_view fullPath, DataObject *pObject)
Register object with the data store.
const Gaudi::Algorithm & parent

◆ registerObject() [2/2]

StatusCode HiveWhiteBoard::registerObject ( DataObject parent,
std::string_view  obj,
DataObject pObj 
)
inlineoverride

Register object with the data store.

Definition at line 294 of file HiveWhiteBoard.cpp.

294  {
295  return fwd( [&]( IDataProviderSvc& p ) { return p.registerObject( parent, obj, pObj ); } );
296  }
Data provider interface definition.
StatusCode registerObject(std::string_view fullPath, DataObject *pObject)
Register object with the data store.
const Gaudi::Algorithm & parent

◆ reinitialize()

StatusCode HiveWhiteBoard::reinitialize ( )
inlineoverride

Service initialisation.

Definition at line 496 of file HiveWhiteBoard.cpp.

496  {
498  if ( !sc.isSuccess() ) {
499  error() << "Unable to reinitialize base class" << endmsg;
500  return sc;
501  }
502  detachServices().ignore( /* AUTOMATICALLY ADDED FOR gaudi/Gaudi!763 */ );
503  sc = attachServices();
504  if ( !sc.isSuccess() ) {
505  error() << "Failed to attach necessary services." << endmsg;
506  return sc;
507  }
508  return StatusCode::SUCCESS;
509  }
constexpr static const auto SUCCESS
Definition: StatusCode.h:100
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
StatusCode detachServices()
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:61
StatusCode reinitialize() override
Definition: Service.cpp:247
bool isSuccess() const
Definition: StatusCode.h:365
StatusCode attachServices()
const StatusCode & ignore() const
Ignore/check StatusCode.
Definition: StatusCode.h:168
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:202

◆ removePreLoadItem()

StatusCode HiveWhiteBoard::removePreLoadItem ( const DataStoreItem item)
inlineoverride

Remove an item from the preload list.

Definition at line 272 of file HiveWhiteBoard.cpp.

272  {
273  for_( m_partitions, [&]( Partition& p ) {
274  p.dataProvider->removePreLoadItem( item ).ignore( /* AUTOMATICALLY ADDED FOR gaudi/Gaudi!763 */ );
275  } );
276  return StatusCode::SUCCESS;
277  }
constexpr static const auto SUCCESS
Definition: StatusCode.h:100
std::vector< Synced< Partition > > m_partitions
Datastore partitions.

◆ resetPreLoad()

StatusCode HiveWhiteBoard::resetPreLoad ( )
inlineoverride

Clear the preload list.

Definition at line 279 of file HiveWhiteBoard.cpp.

279  {
280  for_( m_partitions, [&]( Partition& p ) {
281  p.dataProvider->resetPreLoad().ignore( /* AUTOMATICALLY ADDED FOR gaudi/Gaudi!763 */ );
282  } );
283  return StatusCode::SUCCESS;
284  }
constexpr static const auto SUCCESS
Definition: StatusCode.h:100
std::vector< Synced< Partition > > m_partitions
Datastore partitions.

◆ retrieveObject()

StatusCode HiveWhiteBoard::retrieveObject ( IRegistry parent,
std::string_view  path,
DataObject *&  pObj 
)
inlineoverride

Retrieve object from data store.

Definition at line 310 of file HiveWhiteBoard.cpp.

310  {
311  return fwd( [&]( IDataProviderSvc& p ) { return p.retrieveObject( parent, path, pObj ); } );
312  }
Data provider interface definition.
virtual StatusCode retrieveObject(IRegistry *pDirectory, std::string_view path, DataObject *&pObject)=0
Retrieve object identified by its directory entry.
const Gaudi::Algorithm & parent

◆ rootCLID()

CLID HiveWhiteBoard::rootCLID ( ) const
inlineoverride

IDataManagerSvc: Accessor for root event CLID.

Definition at line 176 of file HiveWhiteBoard.cpp.

176 { return (CLID)m_rootCLID; }
Gaudi::Property< CLID > m_rootCLID
unsigned int CLID
Class ID definition.
Definition: ClassID.h:18

◆ rootName()

const std::string& HiveWhiteBoard::rootName ( ) const
inlineoverride

Name for root Event.

Definition at line 178 of file HiveWhiteBoard.cpp.

178 { return m_rootName; }
Gaudi::Property< std::string > m_rootName

◆ selectStore()

StatusCode HiveWhiteBoard::selectStore ( size_t  partition)
inlineoverride

Activate a partition object. The identifies the partition uniquely.

Definition at line 360 of file HiveWhiteBoard.cpp.

360  {
361  s_current = &m_partitions[partition];
362  return StatusCode::SUCCESS;
363  }
constexpr static const auto SUCCESS
Definition: StatusCode.h:100
std::vector< Synced< Partition > > m_partitions
Datastore partitions.
T partition(T... args)

◆ setDataLoader()

StatusCode HiveWhiteBoard::setDataLoader ( IConversionSvc pDataLoader,
IDataProviderSvc = nullptr 
)
inlineoverride

IDataManagerSvc: Pass a default data loader to the service.

The optional data provider is not considered. On the other hand, the data provider is specified to be the whiteboard.

Definition at line 256 of file HiveWhiteBoard.cpp.

256  {
257  if ( pDataLoader ) pDataLoader->addRef();
259  if ( pDataLoader ) pDataLoader->setDataProvider( this ).ignore( /* AUTOMATICALLY ADDED FOR gaudi/Gaudi!763 */ );
260  m_dataLoader = pDataLoader;
261  for_( m_partitions, [&]( Partition& p ) { p.dataManager->setDataLoader( m_dataLoader, this ).ignore(); } );
262  return StatusCode::SUCCESS;
263  }
virtual StatusCode setDataProvider(IDataProviderSvc *pService)=0
Set Data provider service.
constexpr static const auto SUCCESS
Definition: StatusCode.h:100
std::vector< Synced< Partition > > m_partitions
Datastore partitions.
const StatusCode & ignore() const
Ignore/check StatusCode.
Definition: StatusCode.h:168
virtual unsigned long release()=0
Release Interface instance.
virtual unsigned long addRef()=0
Increment the reference count of Interface instance.
IConversionSvc * m_dataLoader
Pointer to data loader service.

◆ setNumberOfStores()

StatusCode HiveWhiteBoard::setNumberOfStores ( size_t  slots)
inlineoverride

Set the number of event slots (copies of DataSvc objects).

Definition at line 366 of file HiveWhiteBoard.cpp.

366  {
368  warning() << "Too late to change the number of slots!" << endmsg;
369  return StatusCode::FAILURE;
370  }
371  m_slots = slots;
373  return StatusCode::SUCCESS;
374  }
Gaudi::StateMachine::State FSMState() const override
Definition: Service.h:62
MsgStream & warning() const
shortcut for the method msgStream(MSG::WARNING)
constexpr static const auto SUCCESS
Definition: StatusCode.h:100
Gaudi::Property< size_t > m_slots
constexpr static const auto FAILURE
Definition: StatusCode.h:101
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:202
static GAUDI_API void setNumConcEvents(const std::size_t &nE)

◆ setRoot() [1/2]

StatusCode HiveWhiteBoard::setRoot ( std::string  path,
DataObject pObj 
)
inlineoverride

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 240 of file HiveWhiteBoard.cpp.

240  {
241  return fwd(
242  [pObj, path = std::move( path )]( IDataManagerSvc& p ) { return p.setRoot( std::move( path ), pObj ); } );
243  }
virtual StatusCode setRoot(std::string root_name, DataObject *pObject)=0
Initialize data store for new event by giving new event path.
T move(T... args)

◆ setRoot() [2/2]

StatusCode HiveWhiteBoard::setRoot ( std::string  path,
IOpaqueAddress pAddr 
)
inlineoverride

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 247 of file HiveWhiteBoard.cpp.

247  {
248  return fwd(
249  [pAddr, path = std::move( path )]( IDataManagerSvc& p ) { return p.setRoot( std::move( path ), pAddr ); } );
250  }
virtual StatusCode setRoot(std::string root_name, DataObject *pObject)=0
Initialize data store for new event by giving new event path.
T move(T... args)

◆ traverseSubTree() [1/2]

StatusCode HiveWhiteBoard::traverseSubTree ( std::string_view  path,
IDataStoreAgent pAgent 
)
inlineoverride

Analyze by traversing all data objects below the sub tree.

Definition at line 227 of file HiveWhiteBoard.cpp.

227  {
228  return fwd( [&]( IDataManagerSvc& p ) { return p.traverseSubTree( path, pAgent ); } );
229  }
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.

◆ traverseSubTree() [2/2]

StatusCode HiveWhiteBoard::traverseSubTree ( DataObject pObject,
IDataStoreAgent pAgent 
)
inlineoverride

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

Definition at line 231 of file HiveWhiteBoard.cpp.

231  {
232  return fwd( [&]( IDataManagerSvc& p ) { return p.traverseSubTree( pObject, pAgent ); } );
233  }
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.

◆ traverseTree()

StatusCode HiveWhiteBoard::traverseTree ( IDataStoreAgent pAgent)
inlineoverride

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

Definition at line 235 of file HiveWhiteBoard.cpp.

235  {
236  return fwd( [&]( IDataManagerSvc& p ) { return p.traverseTree( pAgent ); } );
237  }
virtual StatusCode traverseTree(IDataStoreAgent *pAgent)=0
Analyse by traversing all data objects in the data store.

◆ unlinkObject() [1/3]

StatusCode HiveWhiteBoard::unlinkObject ( IRegistry from,
std::string_view  objPath 
)
inlineoverride

Remove a link to another object.

Definition at line 330 of file HiveWhiteBoard.cpp.

330  {
331  return fwd( [&]( IDataProviderSvc& p ) { return p.unlinkObject( from, objPath ); } );
332  }
Data provider interface definition.
virtual StatusCode unlinkObject(IRegistry *from, std::string_view objPath)=0
Remove a link to another object.

◆ unlinkObject() [2/3]

StatusCode HiveWhiteBoard::unlinkObject ( DataObject from,
std::string_view  objPath 
)
inlineoverride

Remove a link to another object.

Definition at line 334 of file HiveWhiteBoard.cpp.

334  {
335  return fwd( [&]( IDataProviderSvc& p ) { return p.unlinkObject( from, objPath ); } );
336  }
Data provider interface definition.
virtual StatusCode unlinkObject(IRegistry *from, std::string_view objPath)=0
Remove a link to another object.

◆ unlinkObject() [3/3]

StatusCode HiveWhiteBoard::unlinkObject ( std::string_view  path)
inlineoverride

Remove a link to another object.

Definition at line 338 of file HiveWhiteBoard.cpp.

338  {
339  return fwd( [&]( IDataProviderSvc& p ) { return p.unlinkObject( path ); } );
340  }
Data provider interface definition.
virtual StatusCode unlinkObject(IRegistry *from, std::string_view objPath)=0
Remove a link to another object.

◆ unregisterAddress() [1/2]

StatusCode HiveWhiteBoard::unregisterAddress ( std::string_view  path)
inlineoverride

IDataManagerSvc: Unregister object address from the data store.

Definition at line 189 of file HiveWhiteBoard.cpp.

189  {
190  return fwd( [&]( IDataManagerSvc& p ) { return p.unregisterAddress( path ); } );
191  }
virtual StatusCode unregisterAddress(std::string_view fullPath)=0
Unregister object address from the data store.

◆ unregisterAddress() [2/2]

StatusCode HiveWhiteBoard::unregisterAddress ( IRegistry pParent,
std::string_view  path 
)
inlineoverride

IDataManagerSvc: Unregister object address from the data store.

Definition at line 193 of file HiveWhiteBoard.cpp.

193  {
194  return fwd( [&]( IDataManagerSvc& p ) { return p.unregisterAddress( pParent, path ); } );
195  }
virtual StatusCode unregisterAddress(std::string_view fullPath)=0
Unregister object address from the data store.

◆ unregisterObject() [1/3]

StatusCode HiveWhiteBoard::unregisterObject ( std::string_view  path)
inlineoverride

Unregister object from the data store.

Definition at line 298 of file HiveWhiteBoard.cpp.

298  {
299  return fwd( [&]( IDataProviderSvc& p ) { return p.unregisterObject( path ); } );
300  }
Data provider interface definition.
virtual StatusCode unregisterObject(std::string_view fullPath)=0
Unregister object from the data store.

◆ unregisterObject() [2/3]

StatusCode HiveWhiteBoard::unregisterObject ( DataObject pObj)
inlineoverride

Unregister object from the data store.

Definition at line 302 of file HiveWhiteBoard.cpp.

302  {
303  return fwd( [&]( IDataProviderSvc& p ) { return p.unregisterObject( pObj ); } );
304  }
Data provider interface definition.
virtual StatusCode unregisterObject(std::string_view fullPath)=0
Unregister object from the data store.

◆ unregisterObject() [3/3]

StatusCode HiveWhiteBoard::unregisterObject ( DataObject pObj,
std::string_view  path 
)
inlineoverride

Unregister object from the data store.

Definition at line 306 of file HiveWhiteBoard.cpp.

306  {
307  return fwd( [&]( IDataProviderSvc& p ) { return p.unregisterObject( pObj, path ); } );
308  }
Data provider interface definition.
virtual StatusCode unregisterObject(std::string_view fullPath)=0
Unregister object from the data store.

◆ updateObject() [1/2]

StatusCode HiveWhiteBoard::updateObject ( IRegistry pDirectory)
inlineoverride

Update object identified by its directory entry.

Definition at line 342 of file HiveWhiteBoard.cpp.

342  {
343  return fwd( [&]( IDataProviderSvc& p ) { return p.updateObject( pDirectory ); } );
344  }
Data provider interface definition.
virtual StatusCode updateObject(IRegistry *pDirectory)=0
Update object identified by its directory entry.

◆ updateObject() [2/2]

StatusCode HiveWhiteBoard::updateObject ( DataObject pObj)
inlineoverride

Update object.

Definition at line 346 of file HiveWhiteBoard.cpp.

346  {
347  return fwd( [&]( IDataProviderSvc& p ) { return p.updateObject( pObj ); } );
348  }
Data provider interface definition.
virtual StatusCode updateObject(IRegistry *pDirectory)=0
Update object identified by its directory entry.

Member Data Documentation

◆ m_addrCreator

IAddressCreator* HiveWhiteBoard::m_addrCreator = nullptr
protected

Reference to address creator.

Definition at line 150 of file HiveWhiteBoard.cpp.

◆ m_dataLoader

IConversionSvc* HiveWhiteBoard::m_dataLoader = nullptr
protected

Pointer to data loader service.

Definition at line 148 of file HiveWhiteBoard.cpp.

◆ m_enableFaultHdlr

Gaudi::Property<bool> HiveWhiteBoard::m_enableFaultHdlr
protected
Initial value:
{this, "EnableFaultHandler", false,
"enable incidents on data creation requests"}

Definition at line 144 of file HiveWhiteBoard.cpp.

◆ m_forceLeaves

Gaudi::Property<bool> HiveWhiteBoard::m_forceLeaves {this, "ForceLeaves", false, "force creation of default leaves on registerObject"}
protected

Definition at line 143 of file HiveWhiteBoard.cpp.

◆ m_freeSlots

tbb::concurrent_queue<size_t> HiveWhiteBoard::m_freeSlots
protected

fifo queue of free slots

Definition at line 154 of file HiveWhiteBoard.cpp.

◆ m_loader

Gaudi::Property<std::string> HiveWhiteBoard::m_loader {this, "DataLoader", "EventPersistencySvc", ""}
protected

Definition at line 141 of file HiveWhiteBoard.cpp.

◆ m_partitions

std::vector<Synced<Partition> > HiveWhiteBoard::m_partitions
protected

Datastore partitions.

Definition at line 152 of file HiveWhiteBoard.cpp.

◆ m_rootCLID

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

Definition at line 139 of file HiveWhiteBoard.cpp.

◆ m_rootName

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

Definition at line 140 of file HiveWhiteBoard.cpp.

◆ m_slots

Gaudi::Property<size_t> HiveWhiteBoard::m_slots {this, "EventSlots", 1, "number of event slots"}
protected

Definition at line 142 of file HiveWhiteBoard.cpp.


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