The Gaudi Framework  master (37c0b60a)
HiveWhiteBoard Class Reference
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...
 
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 >
Gaudi::Details::PropertyBasedeclareProperty (const std::string &name, ToolHandle< T > &hndl, const std::string &doc="none")
 
template<class T >
StatusCode declareTool (ToolHandle< T > &handle, bool createIf=true)
 
template<class T >
StatusCode declareTool (ToolHandle< T > &handle, const std::string &toolTypeAndName, bool createIf=true)
 Declare used tool. More...
 
template<class T >
Gaudi::Details::PropertyBasedeclareProperty (const std::string &name, ToolHandleArray< T > &hndlArr, const std::string &doc="none")
 
template<class T >
void addToolsArray (ToolHandleArray< T > &hndlArr)
 
const std::vector< IAlgTool * > & tools () const
 
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 std::string &name, const Gaudi::Details::PropertyBase &p) override
 set the property from another property with a different name More...
 
StatusCode setProperty (const std::string &s) override
 set the property from the formatted string More...
 
StatusCode setProperty (const Gaudi::Details::PropertyBase &p)
 Set the property from a property. More...
 
virtual StatusCode setProperty (const std::string &name, const Gaudi::Details::PropertyBase &p)=0
 Set the property from a property with a different name. More...
 
virtual StatusCode setProperty (const std::string &s)=0
 Set the property by string. More...
 
StatusCode setProperty (const std::string &name, const char *v)
 Special case for string literals. More...
 
StatusCode setProperty (const std::string &name, const std::string &v)
 Special case for std::string. More...
 
StatusCode setProperty (const std::string &name, const TYPE &value)
 set the property form the value More...
 
StatusCode setPropertyRepr (const std::string &n, const std::string &r) override
 set the property from name and value string representation More...
 
StatusCode getProperty (Gaudi::Details::PropertyBase *p) const override
 get the property More...
 
const Gaudi::Details::PropertyBasegetProperty (std::string_view name) const override
 get the property by name More...
 
StatusCode getProperty (std::string_view 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 (std::string_view name) const override
 Return true if we have a property with the given name. More...
 
Gaudi::Details::PropertyBaseproperty (std::string_view name) const
 \fixme property and bindPropertiesTo should be protected More...
 
void bindPropertiesTo (Gaudi::Interfaces::IOptionsSvc &optsSvc)
 
 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...
 

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
 
Gaudi::Property< bool > m_enableFaultHdlr
 
Gaudi::Property< std::vector< std::string > > m_inhibitPathes { this, "InhibitPathes", {}, "inhibited leaves" }
 
SmartIF< IConversionSvcm_dataLoader
 Pointer to data loader service. More...
 
SmartIF< IAddressCreatorm_addrCreator
 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" }
 flag indicating whether ToolHandle tools have been added to m_tools More...
 
Gaudi::Property< bool > m_auditInit { this, "AuditServices", false, "[[deprecated]] 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()" }
 
Gaudi::Property< bool > m_autoRetrieveTools
 
Gaudi::Property< bool > m_checkToolDeps
 
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
std::vector< IAlgTool * > & tools ()
 
 ~Service () override
 Standard Destructor
More...
 
int outputLevel () const
 get the Service's output level More...
 
- Protected Member Functions inherited from CommonMessaging< implements< IService, IProperty, IStateful > >
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 128 of file HiveWhiteBoard.cpp.

Constructor & Destructor Documentation

◆ ~HiveWhiteBoard()

HiveWhiteBoard::~HiveWhiteBoard ( )
inlineoverride

Standard Destructor.

Definition at line 154 of file HiveWhiteBoard.cpp.

154  {
155  setDataLoader( 0 ).ignore();
156  resetPreLoad().ignore();
157  clearStore().ignore();
158  for_( m_partitions, []( Partition& p ) {
159  p.dataManager->release();
160  p.dataProvider->release();
161  } );
163  }

Member Function Documentation

◆ addPreLoadItem()

StatusCode HiveWhiteBoard::addPreLoadItem ( const DataStoreItem item)
inlineoverride

Add an item to the preload list.

Definition at line 257 of file HiveWhiteBoard.cpp.

257  {
258  for_( m_partitions, [&]( Partition& p ) {
259  p.dataProvider->addPreLoadItem( item ).ignore( /* AUTOMATICALLY ADDED FOR gaudi/Gaudi!763 */ );
260  } );
261  return StatusCode::SUCCESS;
262  }

◆ allocateStore()

size_t HiveWhiteBoard::allocateStore ( int  evtnumber)
inlineoverride

Allocate a store partition for a given event number.

Definition at line 378 of file HiveWhiteBoard.cpp.

378  {
379  // take next free slot in the list
380  size_t slot = std::string::npos;
381  if ( m_freeSlots.try_pop( slot ) ) {
382  assert( slot != std::string::npos );
383  assert( slot < m_partitions.size() );
384  m_partitions[slot].with_lock( [evtnumber]( Partition& p ) {
385  assert( p.eventNumber == -1 ); // or whatever value represents 'free'
386  p.eventNumber = evtnumber;
387  } );
388  }
389  return slot;
390  }

◆ attachServices()

StatusCode HiveWhiteBoard::attachServices ( )
inline

Definition at line 408 of file HiveWhiteBoard.cpp.

408  {
409  m_addrCreator = service( m_loader, true );
410  if ( !m_addrCreator ) {
411  error() << "Failed to retrieve data loader "
412  << "\"" << m_loader << "\"" << endmsg;
413  return StatusCode::FAILURE;
414  }
415  SmartIF<IConversionSvc> dataLoader{ service( m_loader, true ) };
416  if ( !dataLoader ) {
417  error() << MSG::ERROR << "Failed to retrieve data loader "
418  << "\"" << m_loader << "\"" << endmsg;
419  return StatusCode::FAILURE;
420  }
421  StatusCode sc = setDataLoader( dataLoader );
422  if ( !sc.isSuccess() ) {
423  error() << MSG::ERROR << "Failed to set data loader "
424  << "\"" << m_loader << "\"" << endmsg;
425  return sc;
426  }
427  return sc;
428  }

◆ clearStore() [1/2]

StatusCode HiveWhiteBoard::clearStore ( )
inlineoverride

IDataManagerSvc: Remove all data objects in the data store.

Definition at line 214 of file HiveWhiteBoard.cpp.

214  {
215  for_( m_partitions, []( Partition& p ) { p.dataManager->clearStore().ignore(); } );
216  return StatusCode::SUCCESS;
217  }

◆ clearStore() [2/2]

StatusCode HiveWhiteBoard::clearStore ( size_t  partition)
inlineoverride

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

Definition at line 347 of file HiveWhiteBoard.cpp.

347  {
348  return m_partitions[partition].with_lock( []( Partition& p ) { return p.dataManager->clearStore(); } );
349  }

◆ clearSubTree() [1/2]

StatusCode HiveWhiteBoard::clearSubTree ( DataObject pObject)
inlineoverride

Remove all data objects below the sub tree identified.

Definition at line 210 of file HiveWhiteBoard.cpp.

210  {
211  return fwd( [&]( IDataManagerSvc& p ) { return p.clearSubTree( pObject ); } );
212  }

◆ clearSubTree() [2/2]

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

Remove all data objects below the sub tree identified.

Definition at line 206 of file HiveWhiteBoard.cpp.

206  {
207  return fwd( [&]( IDataManagerSvc& p ) { return p.clearSubTree( path ); } );
208  }

◆ detachServices()

StatusCode HiveWhiteBoard::detachServices ( )
inline

Definition at line 430 of file HiveWhiteBoard.cpp.

430  {
433  return StatusCode::SUCCESS;
434  }

◆ exists()

bool HiveWhiteBoard::exists ( const DataObjID id)
inlineoverride

check if a data object exists in the current store

Definition at line 372 of file HiveWhiteBoard.cpp.

372  {
373  DataObject* pObject{ nullptr };
374  return findObject( id.fullKey(), pObject ).isSuccess();
375  }

◆ finalize()

StatusCode HiveWhiteBoard::finalize ( )
inlineoverride

Service initialisation.

Definition at line 501 of file HiveWhiteBoard.cpp.

501  {
502  setDataLoader( 0 ).ignore();
503  clearStore().ignore();
504  return Service::finalize();
505  }

◆ findObject() [1/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 310 of file HiveWhiteBoard.cpp.

310  {
311  return fwd( [&]( IDataProviderSvc& p ) { return p.retrieveObject( parent, path, pObj ); } );
312  }

◆ findObject() [2/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 306 of file HiveWhiteBoard.cpp.

306  {
307  return fwd( [&]( IDataProviderSvc& p ) { return p.retrieveObject( path, pObj ); } );
308  }

◆ freeSlots()

size_t HiveWhiteBoard::freeSlots ( )
inlineoverride

Get free slots number.

Definition at line 166 of file HiveWhiteBoard.cpp.

166 { return m_freeSlots.unsafe_size(); }

◆ freeStore()

StatusCode HiveWhiteBoard::freeStore ( size_t  partition)
inlineoverride

Free a store partition.

Definition at line 393 of file HiveWhiteBoard.cpp.

393  {
394  assert( partition < m_partitions.size() );
395  auto prev = m_partitions[partition].with_lock( []( Partition& p ) { return std::exchange( p.eventNumber, -1 ); } );
396  if ( prev == -1 ) return StatusCode::FAILURE; // double free -- should never happen!
397  m_freeSlots.push( partition );
398  return StatusCode::SUCCESS;
399  }

◆ getNumberOfStores()

size_t HiveWhiteBoard::getNumberOfStores ( ) const
inlineoverride

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

Definition at line 369 of file HiveWhiteBoard.cpp.

369 { return m_slots; }

◆ getPartitionNumber()

size_t HiveWhiteBoard::getPartitionNumber ( int  eventnumber) const
inlineoverride

Get the partition number corresponding to a given event.

Definition at line 402 of file HiveWhiteBoard.cpp.

402  {
404  with_lock( [eventnumber]( const Partition& p ) { return p.eventNumber == eventnumber; } ) );
405  return i != end( m_partitions ) ? std::distance( begin( m_partitions ), i ) : std::string::npos;
406  }

◆ initialize()

StatusCode HiveWhiteBoard::initialize ( )
inlineoverride

Service initialisation.

Definition at line 441 of file HiveWhiteBoard.cpp.

441  {
443  if ( !sc.isSuccess() ) {
444  error() << "Unable to initialize base class" << endmsg;
445  return sc;
446  }
447  if ( m_slots < (size_t)1 ) {
448  error() << "Invalid number of slots (" << m_slots << ")" << endmsg;
449  return StatusCode::FAILURE;
450  }
451 
452  if ( !setNumberOfStores( m_slots ).isSuccess() ) {
453  error() << "Cannot set number of slots" << endmsg;
454  return StatusCode::FAILURE;
455  }
456 
458  for ( size_t i = 0; i < m_slots; i++ ) {
459  DataSvc* svc = new DataSvc( name() + "_" + std::to_string( i ), serviceLocator() );
460  // Percolate properties
461  svc->setProperty( m_rootCLID ).ignore();
462  svc->setProperty( m_rootName ).ignore();
463  svc->setProperty( m_forceLeaves ).ignore();
465  // make sure that CommonMessaging is initialized
466  svc->setProperty( m_outputLevel ).ignore();
468 
469  sc = svc->initialize();
470  if ( !sc.isSuccess() ) {
471  error() << "Failed to instantiate DataSvc as store partition" << endmsg;
472  return sc;
473  }
474  m_partitions[i].with_lock( [&]( Partition& p ) {
475  p.dataProvider = svc;
476  p.dataManager = svc;
477  } );
478  m_freeSlots.push( i );
479  }
480  selectStore( 0 ).ignore();
481  return attachServices();
482  }

◆ linkObject() [1/2]

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

Add a link to another object.

Definition at line 314 of file HiveWhiteBoard.cpp.

314  {
315  return fwd( [&]( IDataProviderSvc& p ) { return p.linkObject( from, objPath, to ); } );
316  }

◆ linkObject() [2/2]

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

Add a link to another object.

Definition at line 318 of file HiveWhiteBoard.cpp.

318  {
319  return fwd( [&]( IDataProviderSvc& p ) { return p.linkObject( fullPath, to ); } );
320  }

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

190  {
191  return fwd( [&]( IDataManagerSvc& p ) { return p.objectLeaves( pObject, leaves ); } );
192  }

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

194  {
195  return fwd( [&]( IDataManagerSvc& p ) { return p.objectLeaves( pObject, leaves ); } );
196  }

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

198  {
199  return fwd( [&]( IDataManagerSvc& p ) { return p.objectParent( pObject, refpParent ); } );
200  }

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

202  {
203  return fwd( [&]( IDataManagerSvc& p ) { return p.objectParent( pObject, refpParent ); } );
204  }

◆ preLoad()

StatusCode HiveWhiteBoard::preLoad ( )
inlineoverride

load all preload items of the list

Definition at line 278 of file HiveWhiteBoard.cpp.

278  {
279  return fwd( [&]( IDataProviderSvc& p ) { return p.preLoad(); } );
280  }

◆ registerAddress() [1/2]

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

IDataManagerSvc: Register object address with the data store.

Definition at line 178 of file HiveWhiteBoard.cpp.

178  {
179  return fwd( [&]( IDataManagerSvc& p ) { return p.registerAddress( parent, path, pAdd ); } );
180  }

◆ registerAddress() [2/2]

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

IDataManagerSvc: Register object address with the data store.

Definition at line 174 of file HiveWhiteBoard.cpp.

174  {
175  return fwd( [&]( IDataManagerSvc& p ) { return p.registerAddress( path, pAddr ); } );
176  }

◆ registerObject() [1/2]

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

Register object with the data store.

Definition at line 286 of file HiveWhiteBoard.cpp.

286  {
287  return fwd( [&]( IDataProviderSvc& p ) { return p.registerObject( parent, obj, pObj ); } );
288  }

◆ registerObject() [2/2]

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

Register object with the data store.

Definition at line 282 of file HiveWhiteBoard.cpp.

282  {
283  return fwd( [&]( IDataProviderSvc& p ) { return p.registerObject( parent, obj, pObj ); } );
284  }

◆ reinitialize()

StatusCode HiveWhiteBoard::reinitialize ( )
inlineoverride

Service initialisation.

Definition at line 485 of file HiveWhiteBoard.cpp.

485  {
487  if ( !sc.isSuccess() ) {
488  error() << "Unable to reinitialize base class" << endmsg;
489  return sc;
490  }
491  detachServices().ignore( /* AUTOMATICALLY ADDED FOR gaudi/Gaudi!763 */ );
492  sc = attachServices();
493  if ( !sc.isSuccess() ) {
494  error() << "Failed to attach necessary services." << endmsg;
495  return sc;
496  }
497  return StatusCode::SUCCESS;
498  }

◆ removePreLoadItem()

StatusCode HiveWhiteBoard::removePreLoadItem ( const DataStoreItem item)
inlineoverride

Remove an item from the preload list.

Definition at line 264 of file HiveWhiteBoard.cpp.

264  {
265  for_( m_partitions, [&]( Partition& p ) {
266  p.dataProvider->removePreLoadItem( item ).ignore( /* AUTOMATICALLY ADDED FOR gaudi/Gaudi!763 */ );
267  } );
268  return StatusCode::SUCCESS;
269  }

◆ resetPreLoad()

StatusCode HiveWhiteBoard::resetPreLoad ( )
inlineoverride

Clear the preload list.

Definition at line 271 of file HiveWhiteBoard.cpp.

271  {
272  for_( m_partitions, [&]( Partition& p ) {
273  p.dataProvider->resetPreLoad().ignore( /* AUTOMATICALLY ADDED FOR gaudi/Gaudi!763 */ );
274  } );
275  return StatusCode::SUCCESS;
276  }

◆ retrieveObject()

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

Retrieve object from data store.

Definition at line 302 of file HiveWhiteBoard.cpp.

302  {
303  return fwd( [&]( IDataProviderSvc& p ) { return p.retrieveObject( parent, path, pObj ); } );
304  }

◆ rootCLID()

CLID HiveWhiteBoard::rootCLID ( ) const
inlineoverride

IDataManagerSvc: Accessor for root event CLID.

Definition at line 169 of file HiveWhiteBoard.cpp.

169 { return (CLID)m_rootCLID; }

◆ rootName()

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

Name for root Event.

Definition at line 171 of file HiveWhiteBoard.cpp.

171 { return m_rootName; }

◆ selectStore()

StatusCode HiveWhiteBoard::selectStore ( size_t  partition)
inlineoverride

Activate a partition object. The identifies the partition uniquely.

Definition at line 352 of file HiveWhiteBoard.cpp.

352  {
353  s_current = &m_partitions[partition];
354  return StatusCode::SUCCESS;
355  }

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

249  {
250  if ( pDataLoader ) pDataLoader->addRef();
251  if ( pDataLoader ) pDataLoader->setDataProvider( this ).ignore( /* AUTOMATICALLY ADDED FOR gaudi/Gaudi!763 */ );
252  m_dataLoader = pDataLoader;
253  for_( m_partitions, [&]( Partition& p ) { p.dataManager->setDataLoader( m_dataLoader, this ).ignore(); } );
254  return StatusCode::SUCCESS;
255  }

◆ setNumberOfStores()

StatusCode HiveWhiteBoard::setNumberOfStores ( size_t  slots)
inlineoverride

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

Definition at line 358 of file HiveWhiteBoard.cpp.

358  {
360  warning() << "Too late to change the number of slots!" << endmsg;
361  return StatusCode::FAILURE;
362  }
363  m_slots = slots;
365  return StatusCode::SUCCESS;
366  }

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

233  {
234  return fwd(
235  [pObj, path = std::move( path )]( IDataManagerSvc& p ) { return p.setRoot( std::move( path ), pObj ); } );
236  }

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

240  {
241  return fwd(
242  [pAddr, path = std::move( path )]( IDataManagerSvc& p ) { return p.setRoot( std::move( path ), pAddr ); } );
243  }

◆ traverseSubTree() [1/2]

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

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

Definition at line 224 of file HiveWhiteBoard.cpp.

224  {
225  return fwd( [&]( IDataManagerSvc& p ) { return p.traverseSubTree( pObject, pAgent ); } );
226  }

◆ traverseSubTree() [2/2]

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

Analyze by traversing all data objects below the sub tree.

Definition at line 220 of file HiveWhiteBoard.cpp.

220  {
221  return fwd( [&]( IDataManagerSvc& p ) { return p.traverseSubTree( path, pAgent ); } );
222  }

◆ traverseTree()

StatusCode HiveWhiteBoard::traverseTree ( IDataStoreAgent pAgent)
inlineoverride

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

Definition at line 228 of file HiveWhiteBoard.cpp.

228  {
229  return fwd( [&]( IDataManagerSvc& p ) { return p.traverseTree( pAgent ); } );
230  }

◆ unlinkObject() [1/3]

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

Remove a link to another object.

Definition at line 326 of file HiveWhiteBoard.cpp.

326  {
327  return fwd( [&]( IDataProviderSvc& p ) { return p.unlinkObject( from, objPath ); } );
328  }

◆ unlinkObject() [2/3]

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

Remove a link to another object.

Definition at line 322 of file HiveWhiteBoard.cpp.

322  {
323  return fwd( [&]( IDataProviderSvc& p ) { return p.unlinkObject( from, objPath ); } );
324  }

◆ unlinkObject() [3/3]

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

Remove a link to another object.

Definition at line 330 of file HiveWhiteBoard.cpp.

330  {
331  return fwd( [&]( IDataProviderSvc& p ) { return p.unlinkObject( path ); } );
332  }

◆ unregisterAddress() [1/2]

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

IDataManagerSvc: Unregister object address from the data store.

Definition at line 186 of file HiveWhiteBoard.cpp.

186  {
187  return fwd( [&]( IDataManagerSvc& p ) { return p.unregisterAddress( pParent, path ); } );
188  }

◆ unregisterAddress() [2/2]

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

IDataManagerSvc: Unregister object address from the data store.

Definition at line 182 of file HiveWhiteBoard.cpp.

182  {
183  return fwd( [&]( IDataManagerSvc& p ) { return p.unregisterAddress( path ); } );
184  }

◆ unregisterObject() [1/3]

StatusCode HiveWhiteBoard::unregisterObject ( DataObject pObj)
inlineoverride

Unregister object from the data store.

Definition at line 294 of file HiveWhiteBoard.cpp.

294  {
295  return fwd( [&]( IDataProviderSvc& p ) { return p.unregisterObject( pObj ); } );
296  }

◆ unregisterObject() [2/3]

StatusCode HiveWhiteBoard::unregisterObject ( DataObject pObj,
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( pObj, path ); } );
300  }

◆ unregisterObject() [3/3]

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

Unregister object from the data store.

Definition at line 290 of file HiveWhiteBoard.cpp.

290  {
291  return fwd( [&]( IDataProviderSvc& p ) { return p.unregisterObject( path ); } );
292  }

◆ updateObject() [1/2]

StatusCode HiveWhiteBoard::updateObject ( DataObject pObj)
inlineoverride

Update object.

Definition at line 338 of file HiveWhiteBoard.cpp.

338  {
339  return fwd( [&]( IDataProviderSvc& p ) { return p.updateObject( pObj ); } );
340  }

◆ updateObject() [2/2]

StatusCode HiveWhiteBoard::updateObject ( IRegistry pDirectory)
inlineoverride

Update object identified by its directory entry.

Definition at line 334 of file HiveWhiteBoard.cpp.

334  {
335  return fwd( [&]( IDataProviderSvc& p ) { return p.updateObject( pDirectory ); } );
336  }

Member Data Documentation

◆ m_addrCreator

SmartIF<IAddressCreator> HiveWhiteBoard::m_addrCreator
protected

Reference to address creator.

Definition at line 143 of file HiveWhiteBoard.cpp.

◆ m_dataLoader

SmartIF<IConversionSvc> HiveWhiteBoard::m_dataLoader
protected

Pointer to data loader service.

Definition at line 141 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 136 of file HiveWhiteBoard.cpp.

◆ m_forceLeaves

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

Definition at line 134 of file HiveWhiteBoard.cpp.

◆ m_freeSlots

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

fifo queue of free slots

Definition at line 147 of file HiveWhiteBoard.cpp.

◆ m_inhibitPathes

Gaudi::Property<std::vector<std::string> > HiveWhiteBoard::m_inhibitPathes { this, "InhibitPathes", {}, "inhibited leaves" }
protected

Definition at line 138 of file HiveWhiteBoard.cpp.

◆ m_loader

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

Definition at line 132 of file HiveWhiteBoard.cpp.

◆ m_partitions

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

Datastore partitions.

Definition at line 145 of file HiveWhiteBoard.cpp.

◆ m_rootCLID

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

Definition at line 130 of file HiveWhiteBoard.cpp.

◆ m_rootName

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

Definition at line 131 of file HiveWhiteBoard.cpp.

◆ m_slots

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

Definition at line 133 of file HiveWhiteBoard.cpp.


The documentation for this class was generated from the following file:
HiveWhiteBoard::m_rootName
Gaudi::Property< std::string > m_rootName
Definition: HiveWhiteBoard.cpp:131
IDataManagerSvc::objectParent
virtual StatusCode objectParent(const DataObject *pObject, IRegistry *&refpParent)=0
IDataManagerSvc: Explore the object store: retrieve the object's parent.
Service::initialize
StatusCode initialize() override
Definition: Service.cpp:118
HiveWhiteBoard::findObject
StatusCode findObject(std::string_view path, DataObject *&pObj) override
Find object identified by its full path in the data store.
Definition: HiveWhiteBoard.cpp:306
IDataProviderSvc::unregisterObject
virtual StatusCode unregisterObject(std::string_view fullPath)=0
Unregister object from the data store.
HiveWhiteBoard::m_loader
Gaudi::Property< std::string > m_loader
Definition: HiveWhiteBoard.cpp:132
IDataProviderSvc::unlinkObject
virtual StatusCode unlinkObject(IRegistry *from, std::string_view objPath)=0
Remove a link to another object.
IDataManagerSvc
Definition: IDataManagerSvc.h:55
std::move
T move(T... args)
AtlasMCRecoFullPrecedenceDump.path
path
Definition: AtlasMCRecoFullPrecedenceDump.py:49
StatusCode::isSuccess
bool isSuccess() const
Definition: StatusCode.h:314
HiveWhiteBoard::setNumberOfStores
StatusCode setNumberOfStores(size_t slots) override
Set the number of event slots (copies of DataSvc objects).
Definition: HiveWhiteBoard.cpp:358
HiveWhiteBoard::m_dataLoader
SmartIF< IConversionSvc > m_dataLoader
Pointer to data loader service.
Definition: HiveWhiteBoard.cpp:141
std::vector
STL class.
SmartIF::reset
void reset(TYPE *ptr=nullptr)
Set the internal pointer to the passed one disposing of the old one.
Definition: SmartIF.h:96
std::find_if
T find_if(T... args)
std::vector::size
T size(T... args)
HiveWhiteBoard::resetPreLoad
StatusCode resetPreLoad() override
Clear the preload list.
Definition: HiveWhiteBoard.cpp:271
PropertyHolder::setProperty
StatusCode setProperty(const std::string &name, const Gaudi::Details::PropertyBase &p) override
set the property from another property with a different name
Definition: PropertyHolder.h: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 ...
std::distance
T distance(T... args)
HiveWhiteBoard::m_partitions
std::vector< Synced< Partition > > m_partitions
Datastore partitions.
Definition: HiveWhiteBoard.cpp:145
Service::finalize
StatusCode finalize() override
Definition: Service.cpp:222
Service::FSMState
Gaudi::StateMachine::State FSMState() const override
Definition: Service.h:62
std::vector::clear
T clear(T... args)
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.
IDataProviderSvc::registerObject
StatusCode registerObject(std::string_view fullPath, DataObject *pObject)
Register object with the data store.
Definition: IDataProviderSvc.h:72
IConverter::setDataProvider
virtual StatusCode setDataProvider(IDataProviderSvc *pService)=0
Set Data provider service.
IDataProviderSvc::linkObject
virtual StatusCode linkObject(IRegistry *from, std::string_view objPath, DataObject *toObj)=0
Add a link to another object.
HiveWhiteBoard::detachServices
StatusCode detachServices()
Definition: HiveWhiteBoard.cpp:430
HiveWhiteBoard::selectStore
StatusCode selectStore(size_t partition) override
Activate a partition object. The identifies the partition uniquely.
Definition: HiveWhiteBoard.cpp:352
Gaudi::Utils::begin
AttribStringParser::Iterator begin(const AttribStringParser &parser)
Definition: AttribStringParser.h:136
HiveWhiteBoard::clearStore
StatusCode clearStore() override
IDataManagerSvc: Remove all data objects in the data store.
Definition: HiveWhiteBoard.cpp:214
Service::name
const std::string & name() const override
Retrieve name of the service
Definition: Service.cpp:332
StatusCode
Definition: StatusCode.h:65
IDataManagerSvc::registerAddress
virtual StatusCode registerAddress(std::string_view fullPath, IOpaqueAddress *pAddress)=0
Register object address with the data store.
IDataProviderSvc::retrieveObject
virtual StatusCode retrieveObject(IRegistry *pDirectory, std::string_view path, DataObject *&pObject)=0
Retrieve object identified by its directory entry.
std::to_string
T to_string(T... args)
IDataManagerSvc::unregisterAddress
virtual StatusCode unregisterAddress(std::string_view fullPath)=0
Unregister object address from the data store.
IDataProviderSvc::preLoad
virtual StatusCode preLoad()=0
Load all preload items of the list.
HiveWhiteBoard::m_slots
Gaudi::Property< size_t > m_slots
Definition: HiveWhiteBoard.cpp:133
IDataManagerSvc::traverseTree
virtual StatusCode traverseTree(IDataStoreAgent *pAgent)=0
Analyse by traversing all data objects in the data store.
SmartIF< IConversionSvc >
CLID
unsigned int CLID
Class ID definition.
Definition: ClassID.h:18
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:202
HiveWhiteBoard::m_rootCLID
Gaudi::Property< CLID > m_rootCLID
Definition: HiveWhiteBoard.cpp:130
Gaudi::StateMachine::RUNNING
@ RUNNING
Definition: StateMachine.h:26
StatusCode::ignore
const StatusCode & ignore() const
Allow discarding a StatusCode without warning.
Definition: StatusCode.h:139
Gaudi::Functional::details::for_
decltype(auto) for_(F &&f)
Definition: MergingTransformer.h:36
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:100
DataSvc
Definition: DataSvc.h:52
HiveWhiteBoard::m_inhibitPathes
Gaudi::Property< std::vector< std::string > > m_inhibitPathes
Definition: HiveWhiteBoard.cpp:138
HiveWhiteBoard::m_forceLeaves
Gaudi::Property< bool > m_forceLeaves
Definition: HiveWhiteBoard.cpp:134
HiveWhiteBoard::m_addrCreator
SmartIF< IAddressCreator > m_addrCreator
Reference to address creator.
Definition: HiveWhiteBoard.cpp:143
std
STL namespace.
Gaudi::StateMachine::INITIALIZED
@ INITIALIZED
Definition: StateMachine.h:25
MSG::ERROR
@ ERROR
Definition: IMessageSvc.h:25
DataObject
Definition: DataObject.h:36
Service::reinitialize
StatusCode reinitialize() override
Definition: Service.cpp:295
HiveWhiteBoard::attachServices
StatusCode attachServices()
Definition: HiveWhiteBoard.cpp:408
HiveWhiteBoard::setDataLoader
StatusCode setDataLoader(IConversionSvc *pDataLoader, IDataProviderSvc *=nullptr) override
IDataManagerSvc: Pass a default data loader to the service.
Definition: HiveWhiteBoard.cpp:249
DataSvc::initialize
StatusCode initialize() override
Service initialization.
Definition: DataSvc.cpp:821
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.
Gaudi::Concurrency::ConcurrencyFlags::setNumConcEvents
static GAUDI_API void setNumConcEvents(const std::size_t &nE)
Definition: ConcurrencyFlags.h:69
IDataProviderSvc
Definition: IDataProviderSvc.h:53
IOTest.end
end
Definition: IOTest.py:125
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:101
HiveWhiteBoard::m_freeSlots
tbb::concurrent_queue< size_t > m_freeSlots
fifo queue of free slots
Definition: HiveWhiteBoard.cpp:147
std::prev
T prev(T... args)
std::partition
T partition(T... args)
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:89
Service::m_outputLevel
Gaudi::Property< int > m_outputLevel
flag indicating whether ToolHandle tools have been added to m_tools
Definition: Service.h:232
HiveWhiteBoard::m_enableFaultHdlr
Gaudi::Property< bool > m_enableFaultHdlr
Definition: HiveWhiteBoard.cpp:136
IInterface::addRef
virtual unsigned long addRef()=0
Increment the reference count of Interface instance.
Gaudi::cxx::with_lock
auto with_lock(Fun &&f)
Definition: SynchronizedValue.h:98
IDataManagerSvc::setRoot
virtual StatusCode setRoot(std::string root_name, DataObject *pObject)=0
Initialize data store for new event by giving new event path.
IDataProviderSvc::updateObject
virtual StatusCode updateObject(IRegistry *pDirectory)=0
Update object identified by its directory entry.
Service::serviceLocator
SmartIF< ISvcLocator > & serviceLocator() const override
Retrieve pointer to service locator
Definition: Service.cpp:335