| The Gaudi Framework v32r1 (f65d50dc)

Public Member Functions | Private Member Functions | Private Attributes | List of all members
DataSvcFileEntriesTool Class Reference

Tool to scan a transient store branch that collects all the objects that belong to the same source (file). More...

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

## Public Member Functions
StatusCode | initialize () override
| Initialize the tool. More...
StatusCode | finalize () override
| Finalize the tool. More...
const LeavesList & | leaves () const override
| Return the list of collected objects. More...
void | handle (const Incident &incident) override
| Call-back function for the BeginEvent incident. More...
Public Member Functions inherited from extends< AlgTool, IDataStoreLeaves, IIncidentListener >
void * | i_cast (const InterfaceID &tid) const override
| Implementation of IInterface::i_cast. More...
StatusCode | queryInterface (const InterfaceID &ti, void **pp) override
| Implementation of IInterface::queryInterface. More...
std::vector< std::string > | getInterfaceNames () const override
| Implementation of IInterface::getInterfaceNames. More...
Public Member Functions inherited from AlgTool
StatusCode | queryInterface (const InterfaceID &riid, void **ppvUnknown) override
| Query for a given interface. More...
const std::string & | name () const override
| Retrieve full identifying name of the concrete tool object. More...
const std::string & | type () const override
| Retrieve type (concrete class) of the sub-algtool. More...
const IInterface * | parent () const override
| Retrieve parent of the sub-algtool. More...
StatusCode | configure () override
StatusCode | initialize () override
StatusCode | start () override
StatusCode | stop () override
StatusCode | finalize () override
StatusCode | terminate () override
StatusCode | reinitialize () override
StatusCode | restart () override
Gaudi::StateMachine::State | FSMState () const override
Gaudi::StateMachine::State | targetFSMState () const override
StatusCode | sysInitialize () override
| Initialize AlgTool. More...
StatusCode | sysStart () override
| Start AlgTool. More...
StatusCode | sysStop () override
| Stop AlgTool. More...
StatusCode | sysFinalize () override
| Finalize AlgTool. More...
StatusCode | sysReinitialize () override
| Initialize AlgTool. More...
StatusCode | sysRestart () override
| Start AlgTool. More...
| AlgTool (const std::string &type, const std::string &name, const IInterface *parent)
| Standard Constructor. More...
SmartIF< ISvcLocator > & | serviceLocator () const override
| Retrieve pointer to service locator. More...
ISvcLocator * | svcLoc () const
| shortcut for the method service locator More...
IDataProviderSvc * | evtSvc () const
| accessor to event service service More...
IToolSvc * | toolSvc () const
| The standard ToolSvc service, Return a pointer to the service if present. More...
StatusCode | setProperties ()
| Method for setting declared properties to the values specified in the jobOptions via the job option service. More...
template<class T >
StatusCode | service (const std::string &name, T *&svc, 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 &type, const std::string &name, T *&svc) const
| Access a service by name, type creating it if it doesn't already exist. More...
SmartIF< IService > | service (const std::string &name, const bool createIf=true, const bool quiet=false) const
| Return a pointer to the service identified by name (or "type/name") More...
template<typename T >
SmartIF< T > | service (const std::string &name, const bool createIf=true, const bool quiet=false) const
template<class T >
Gaudi::Details::PropertyBase * | declareProperty (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, std::string toolTypeAndName, bool createIf=true)
template<class T >
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, ToolHandleArray< T > &hndlArr, const std::string &doc="none")
template<class T >
void | addToolsArray (ToolHandleArray< T > &hndlArr)
void | acceptDHVisitor (IDataHandleVisitor *) const override
void | registerTool (IAlgTool *tool) const
void | deregisterTool (IAlgTool *tool) const
const std::vector< IAlgTool * > & | tools () const
IAuditorSvc * | auditorSvc () const
| Access the auditor service. More...
IMonitorSvc * | monitorSvc () const
| Access the monitor service. More...
template<class T >
void | declareInfo (const std::string &name, const T &var, const std::string &desc) const
| Declare monitoring information. More...
void | declareInfo (const std::string &name, const std::string &format, const void *var, int size, const std::string &desc) const
| Declare monitoring information (special case) More...
| ~AlgTool () override
Public Member Functions inherited from DataHandleHolderBase< PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > > >
std::vector< Gaudi::DataHandle * > | inputHandles () const override
std::vector< Gaudi::DataHandle * > | outputHandles () const override
virtual const DataObjIDColl & | extraInputDeps () const override
virtual const DataObjIDColl & | extraOutputDeps () const override
void | declare (Gaudi::DataHandle &handle) override
void | renounce (Gaudi::DataHandle &handle) override
const DataObjIDColl & | inputDataObjs () const override
const DataObjIDColl & | outputDataObjs () const override
void | addDependency (const DataObjID &id, const Gaudi::DataHandle::Mode &mode) override
Public Member Functions inherited from extends< PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > >, IDataHandleHolder >
void * | i_cast (const InterfaceID &tid) const override
| Implementation of IInterface::i_cast. More...
StatusCode | queryInterface (const InterfaceID &ti, void **pp) override
| Implementation of IInterface::queryInterface. More...
std::vector< std::string > | getInterfaceNames () const override
| Implementation of IInterface::getInterfaceNames. More...
Public Member Functions inherited from PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > >
| PropertyHolder ()=default
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Details::PropertyBase &prop)
| Declare a property. More...
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, TYPE &value, const std::string &doc="none")
| Helper to wrap a regular data member and use it as a regular property. More...
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, Gaudi::Property< TYPE, VERIFIER, HANDLERS > &prop, const std::string &doc="none")
| Declare a PropertyBase instance setting name and documentation. More...
Gaudi::Details::PropertyBase * | declareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="")
| Declare a remote property. More...
StatusCode | setProperty (const Gaudi::Details::PropertyBase &p) override
| set the property form another property More...
StatusCode | setProperty (const std::string &s) override
| set the property from the formatted string More...
StatusCode | setProperty (const std::string &n, const std::string &v) override
| set the property from name and the value More...
StatusCode | setProperty (const std::string &name, const TYPE &value)
| set the property form the value More...
StatusCode | getProperty (Gaudi::Details::PropertyBase *p) const override
| get the property More...
const Gaudi::Details::PropertyBase & | getProperty (const std::string &name) const override
| get the property by name More...
StatusCode | getProperty (const std::string &n, std::string &v) const override
| convert the property to the string More...
const std::vector< Gaudi::Details::PropertyBase * > & | getProperties () const override
| get all properties More...
bool | hasProperty (const std::string &name) const override
| Return true if we have a property with the given name. More...
| PropertyHolder (const PropertyHolder &)=delete
PropertyHolder & | operator= (const PropertyHolder &)=delete
Public Member Functions inherited from CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > >
MSG::Level | msgLevel () const
| get the cached level (originally extracted from the embedded MsgStream) More...
bool | msgLevel (MSG::Level lvl) const
| get the output level from the embedded MsgStream More...
MSG::Level | outputLevel () const
| Backward compatibility function for getting the output level. More...
Public Member Functions inherited from CommonMessagingBase
virtual | ~CommonMessagingBase ()=default
| Virtual destructor. More...
const SmartIF< IMessageSvc > & | msgSvc () const
| The standard message service. More...
MsgStream & | msgStream () const
| Return an uninitialized MsgStream. More...
MsgStream & | msgStream (const MSG::Level level) const
| Predefined configurable message stream for the efficient printouts. More...
MsgStream & | always () const
| shortcut for the method msgStream(MSG::ALWAYS) More...
MsgStream & | fatal () const
| shortcut for the method msgStream(MSG::FATAL) More...
MsgStream & | err () const
| shortcut for the method msgStream(MSG::ERROR) More...
MsgStream & | error () const
| shortcut for the method msgStream(MSG::ERROR) More...
MsgStream & | warning () const
| shortcut for the method msgStream(MSG::WARNING) More...
MsgStream & | info () const
| shortcut for the method msgStream(MSG::INFO) More...
MsgStream & | debug () const
| shortcut for the method msgStream(MSG::DEBUG) More...
MsgStream & | verbose () const
| shortcut for the method msgStream(MSG::VERBOSE) More...
MsgStream & | msg () const
| shortcut for the method msgStream(MSG::INFO) More...

## Private Member Functions
void | i_collectLeaves ()
| Scan the data service starting from the node specified as Root. More...
void | i_collectLeaves (IRegistry *reg)
| Scan the data service starting from the specified node. More...
IRegistry * | i_getRootNode ()
| Return the pointer to the IRegistry object associated to the node specified as Root. More...

## Private Attributes
Gaudi::Property< std::string > | m_dataSvcName {this, "DataService", "EventDataSvc", "Name of the data service to use"}
Gaudi::Property< std::string > | m_rootNode {this, "Root", "", "Path to the element from which to start the scan"}
Gaudi::Property< bool > | m_scanOnBeginEvent
Gaudi::Property< bool > | m_ignoreOriginChange
SmartIF< IIncidentSvc > | m_incidentSvc
| Pointer to the incident service. More...
SmartIF< IDataManagerSvc > | m_dataMgrSvc
| Pointer to the IDataManagerSvc interface of the data service. More...
SmartIF< IDataProviderSvc > | m_dataSvc
| Pointer to the IDataProviderSvc interface of the data service. More...
LeavesList | m_leaves
| Internal cache for the list of objects found during the scan. More...
std::string | m_initialBase
| File ID of the Root node. More...

## Additional Inherited Members
Public Types inherited from extends< AlgTool, IDataStoreLeaves, IIncidentListener >
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 AlgTool
using | Factory = Gaudi::PluginService::Factory< IAlgTool *(const std::string &, const std::string &, const IInterface *)>
Public Types inherited from extends< PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > >, IDataHandleHolder >
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 PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > >
using | PropertyHolderImpl = PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > >
| Typedef used to refer to this class from derived classes, as in. More...
Public Types inherited from CommonMessaging< implements< IAlgTool, IDataHandleHolder, 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 AlgTool
template<typename I >
void | declareInterface (I *i)
std::vector< IAlgTool * > & | tools ()
Protected Member Functions inherited from DataHandleHolderBase< PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > > >
void | initDataHandleHolder ()
| initializes all handles - called by the sysInitialize method of any descendant of this More...
Protected Member Functions inherited from PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > >
Gaudi::Details::PropertyBase * | property (const std::string &name) const
Protected Member Functions inherited from CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > >
MSG::Level | setUpMessaging () const
| Set up local caches. More...
MSG::Level | resetMessaging ()
| Reinitialize internal states. More...
void | updateMsgStreamOutputLevel (int level)
| Update the output level of the cached MsgStream. More...
Protected Attributes inherited from AlgTool
std::unique_ptr< IDataHandleVisitor > | m_updateDataHandles
| Hook for for derived classes to provide a custom visitor for data handles. More...
Protected Attributes inherited from DataHandleHolderBase< PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > > >
DataObjIDColl | m_inputDataObjs
DataObjIDColl | m_outputDataObjs

## Detailed Description

Tool to scan a transient store branch that collects all the objects that belong to the same source (file).

By default, the list of entries is cached and the cache is cleared at every BeginEvent incident.

Properties:

  DataService (string): Name of the data service to use [EventDataSvc]

  Root (string): Path to the element from which to start the scan [root of the data service]

  ScanOnBeginEvent (bool): If the scan has to be started during the BeginEvent incident (true) or on demand (false, default)

Definition at line 27 of file DataSvcFileEntriesTool.cpp.

## Member Function Documentation

## ◆ finalize()

StatusCode DataSvcFileEntriesTool::finalize | ( |  | ) |
| override

Finalize the tool.

Definition at line 125 of file DataSvcFileEntriesTool.cpp.

125 {
126 // unregister from the incident service
127 if ( m_incidentSvc ) { m_incidentSvc->removeListener( this, IncidentType::BeginEvent ); }
128 // Release the services
129 m_incidentSvc.reset();
130 m_dataMgrSvc.reset();
131 m_dataSvc.reset();
132
133 return AlgTool::finalize();
134 }
DataSvcFileEntriesTool::m_incidentSvc
SmartIF< IIncidentSvc > m_incidentSvc
Pointer to the incident service.
Definition: DataSvcFileEntriesTool.cpp:60
DataSvcFileEntriesTool::m_dataSvc
SmartIF< IDataProviderSvc > m_dataSvc
Pointer to the IDataProviderSvc interface of the data service.
Definition: DataSvcFileEntriesTool.cpp:64
DataSvcFileEntriesTool::m_dataMgrSvc
SmartIF< IDataManagerSvc > m_dataMgrSvc
Pointer to the IDataManagerSvc interface of the data service.
Definition: DataSvcFileEntriesTool.cpp:62
AlgTool::finalize
StatusCode finalize() override
Definition: AlgTool.cpp:268
SmartIF::reset
void reset(TYPE *ptr=nullptr)
Set the internal pointer to the passed one disposing of the old one.
Definition: SmartIF.h:86
IIncidentSvc::removeListener
virtual void removeListener(IIncidentListener *lis, const std::string &type="")=0
Remove listener.

## ◆ handle()

void DataSvcFileEntriesTool::handle | ( | const Incident & | incident | ) |
| override

Call-back function for the BeginEvent incident.

Clears the internal cache, cache the file ID of the Root node and, if the property ScanOnBeginEvent is set to true, scans the data service.

Definition at line 136 of file DataSvcFileEntriesTool.cpp.

136 {
137 // Get the file id of the root node at every event
138 IOpaqueAddress* addr = i_getRootNode()->address();
139 if ( addr )
140 m_initialBase = addr->par()[0];
141 else
142 m_initialBase.clear(); // use empty file id if there is no address
143
144 m_leaves.clear();
145 if ( m_scanOnBeginEvent ) {
146 verbose() << "::handle scanning on " << incident.type() << endmsg;
147 i_collectLeaves();
148 }
149 }
IOpaqueAddress::par
virtual const std::string * par() const =0
Retrieve String parameters.
Incident::type
const std::string & type() const
Access to the incident type.
Definition: Incident.h:38
DataSvcFileEntriesTool::m_initialBase
std::string m_initialBase
File ID of the Root node.
Definition: DataSvcFileEntriesTool.cpp:82
DataSvcFileEntriesTool::i_collectLeaves
void i_collectLeaves()
Scan the data service starting from the node specified as Root.
Definition: DataSvcFileEntriesTool.cpp:165
CommonMessagingBase::verbose
MsgStream & verbose() const
shortcut for the method msgStream(MSG::VERBOSE)
Definition: CommonMessaging.h:110
DataSvcFileEntriesTool::m_scanOnBeginEvent
Gaudi::Property< bool > m_scanOnBeginEvent
Definition: DataSvcFileEntriesTool.cpp:52
std::string::clear
T clear(T... args)
IRegistry::address
virtual IOpaqueAddress * address() const =0
Retrieve opaque storage address.
IOpaqueAddress
Opaque address interface definition.
Definition: IOpaqueAddress.h:23
DataSvcFileEntriesTool::m_leaves
LeavesList m_leaves
Internal cache for the list of objects found during the scan.
Definition: DataSvcFileEntriesTool.cpp:67
DataSvcFileEntriesTool::i_getRootNode
IRegistry * i_getRootNode()
Return the pointer to the IRegistry object associated to the node specified as Root.
Definition: DataSvcFileEntriesTool.cpp:156
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:192

## ◆ i_collectLeaves() [1/2]

void DataSvcFileEntriesTool::i_collectLeaves | ( |  | ) |
| private

Scan the data service starting from the node specified as Root.

Definition at line 165 of file DataSvcFileEntriesTool.cpp.

165 { i_collectLeaves( i_getRootNode() ); }
DataSvcFileEntriesTool::i_collectLeaves
void i_collectLeaves()
Scan the data service starting from the node specified as Root.
Definition: DataSvcFileEntriesTool.cpp:165
DataSvcFileEntriesTool::i_getRootNode
IRegistry * i_getRootNode()
Return the pointer to the IRegistry object associated to the node specified as Root.
Definition: DataSvcFileEntriesTool.cpp:156

## ◆ i_collectLeaves() [2/2]

void DataSvcFileEntriesTool::i_collectLeaves | ( | IRegistry * | reg | ) |
| private

Scan the data service starting from the specified node.

todo: implement the scanning as an IDataStoreAgent

Definition at line 168 of file DataSvcFileEntriesTool.cpp.

168 {
169 // I do not put sanity checks on the pointers because I know how I'm calling the function
170 IOpaqueAddress* addr = reg->address();
171 if ( addr ) { // we consider only objects that are in a file
172 if ( msgLevel( MSG::VERBOSE ) ) verbose() << "::i_collectLeaves added " << reg->identifier() << endmsg;
173 m_leaves.push_back( reg->object() ); // add this object
174 // Origin of the current object
175 const std::string& base = addr->par()[0];
176 // Compare with the origin seen during BeginEvent
177 if ( !m_ignoreOriginChange && ( m_initialBase != base ) )
178 throw GaudiException( "Origin of data has changed ('" + m_initialBase + "' != '" + base +
179 "'), probably OutputStream was called before "
180 "InputCopyStream: check options",
181 name(), StatusCode::FAILURE );
182
183 std::vector<IRegistry*> lfs; // leaves of the current object
184 StatusCode sc = m_dataMgrSvc->objectLeaves( reg, lfs );
185 if ( sc.isSuccess() ) {
186 for ( const auto& i : lfs ) {
187 // Continue if the leaf has the same database as the parent
188 if ( i->address() && i->address()->par()[0] == base ) {
189 DataObject* obj = nullptr;
190 sc = m_dataSvc->retrieveObject( reg, i->name(), obj );
191 if ( sc.isSuccess() ) {
192 i_collectLeaves( i );
193 } else {
194 throw GaudiException( "Cannot get " + i->identifier() + " from " + m_dataSvcName, name(),
195 StatusCode::FAILURE );
196 }
197 }
198 }
199 }
200 }
201 }
IOpaqueAddress::par
virtual const std::string * par() const =0
Retrieve String parameters.
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 ...
GaudiException
Define general base for Gaudi exception.
Definition: GaudiException.h:21
MSG::VERBOSE
Definition: IMessageSvc.h:15
DataSvcFileEntriesTool::m_dataSvc
SmartIF< IDataProviderSvc > m_dataSvc
Pointer to the IDataProviderSvc interface of the data service.
Definition: DataSvcFileEntriesTool.cpp:64
DataSvcFileEntriesTool::m_initialBase
std::string m_initialBase
File ID of the Root node.
Definition: DataSvcFileEntriesTool.cpp:82
CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > >::msgLevel
MSG::Level msgLevel() const
get the cached level (originally extracted from the embedded MsgStream)
Definition: CommonMessaging.h:138
DataSvcFileEntriesTool::m_dataMgrSvc
SmartIF< IDataManagerSvc > m_dataMgrSvc
Pointer to the IDataManagerSvc interface of the data service.
Definition: DataSvcFileEntriesTool.cpp:62
std::string
STL class.
DataSvcFileEntriesTool::i_collectLeaves
void i_collectLeaves()
Scan the data service starting from the node specified as Root.
Definition: DataSvcFileEntriesTool.cpp:165
DataSvcFileEntriesTool::m_ignoreOriginChange
Gaudi::Property< bool > m_ignoreOriginChange
Definition: DataSvcFileEntriesTool.cpp:55
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:50
CommonMessagingBase::verbose
MsgStream & verbose() const
shortcut for the method msgStream(MSG::VERBOSE)
Definition: CommonMessaging.h:110
DataSvcFileEntriesTool::m_dataSvcName
Gaudi::Property< std::string > m_dataSvcName
Definition: DataSvcFileEntriesTool.cpp:50
StatusCode::isSuccess
bool isSuccess() const
Definition: StatusCode.h:267
IRegistry::address
virtual IOpaqueAddress * address() const =0
Retrieve opaque storage address.
IRegistry::object
virtual DataObject * object() const =0
Retrieve object behind the link.
std::vector< IRegistry * >
IDataProviderSvc::retrieveObject
virtual StatusCode retrieveObject(IRegistry *pDirectory, std::string_view path, DataObject *&pObject)=0
Retrieve object identified by its directory entry.
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:86
IRegistry::identifier
virtual const id_type & identifier() const =0
Full identifier (or key)
IOpaqueAddress
Opaque address interface definition.
Definition: IOpaqueAddress.h:23
DataSvcFileEntriesTool::m_leaves
LeavesList m_leaves
Internal cache for the list of objects found during the scan.
Definition: DataSvcFileEntriesTool.cpp:67
DataObject
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:30
AlgTool::name
const std::string & name() const override
Retrieve full identifying name of the concrete tool object.
Definition: AlgTool.cpp:58
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:192

## ◆ i_getRootNode()

IRegistry * DataSvcFileEntriesTool::i_getRootNode | ( |  | ) |
| private

Return the pointer to the IRegistry object associated to the node specified as Root.

Definition at line 156 of file DataSvcFileEntriesTool.cpp.

156 {
157 DataObject* obj = nullptr;
158 StatusCode sc = m_dataSvc->retrieveObject( m_rootNode.value(), obj );
159 if ( sc.isFailure() ) {
160 throw GaudiException( "Cannot get " + m_rootNode + " from " + m_dataSvcName, name(), StatusCode::FAILURE );
161 }
162 return obj->registry();
163 }
GaudiException
Define general base for Gaudi exception.
Definition: GaudiException.h:21
DataObject::registry
IRegistry * registry() const
Get pointer to Registry.
Definition: DataObject.h:72
DataSvcFileEntriesTool::m_rootNode
Gaudi::Property< std::string > m_rootNode
Definition: DataSvcFileEntriesTool.cpp:51
DataSvcFileEntriesTool::m_dataSvc
SmartIF< IDataProviderSvc > m_dataSvc
Pointer to the IDataProviderSvc interface of the data service.
Definition: DataSvcFileEntriesTool.cpp:64
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:50
DataSvcFileEntriesTool::m_dataSvcName
Gaudi::Property< std::string > m_dataSvcName
Definition: DataSvcFileEntriesTool.cpp:50
IDataProviderSvc::retrieveObject
virtual StatusCode retrieveObject(IRegistry *pDirectory, std::string_view path, DataObject *&pObject)=0
Retrieve object identified by its directory entry.
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:86
StatusCode::isFailure
bool isFailure() const
Definition: StatusCode.h:130
DataObject
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:30
AlgTool::name
const std::string & name() const override
Retrieve full identifying name of the concrete tool object.
Definition: AlgTool.cpp:58

## ◆ initialize()

StatusCode DataSvcFileEntriesTool::initialize | ( |  | ) |
| override

Initialize the tool.

Definition at line 96 of file DataSvcFileEntriesTool.cpp.

96 {
97 StatusCode sc = AlgTool::initialize();
98 if ( sc.isFailure() ) return sc;
99
100 // Retrieve the pointer to the needed services.
101
102 m_incidentSvc = serviceLocator()->service( "IncidentSvc" );
103 if ( !m_incidentSvc ) {
104 error() << "Cannot get IncidentSvc" << endmsg;
105 return StatusCode::FAILURE;
106 }
107
108 m_dataMgrSvc = m_dataSvc = serviceLocator()->service( m_dataSvcName );
109 if ( !m_dataSvc || !m_dataMgrSvc ) {
110 error() << "Cannot get IDataProviderSvc+IDataManagerSvc " << m_dataSvcName << endmsg;
111 return StatusCode::FAILURE;
112 }
113
114 // Register ourself to the incident service as listener for BeginEvent
115 m_incidentSvc->addListener( this, IncidentType::BeginEvent );
116
117 // If the Root node is not specified, take the name from the data service itself.
118 if ( m_rootNode.empty() ) { m_rootNode = m_dataMgrSvc->rootName(); }
119
120 // Clear the cache (in case the instance is re-initilized).
121 m_leaves.clear();
122 return StatusCode::SUCCESS;
123 }
AlgTool::initialize
StatusCode initialize() override
Definition: AlgTool.cpp:201
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
DataSvcFileEntriesTool::m_rootNode
Gaudi::Property< std::string > m_rootNode
Definition: DataSvcFileEntriesTool.cpp:51
DataSvcFileEntriesTool::m_incidentSvc
SmartIF< IIncidentSvc > m_incidentSvc
Pointer to the incident service.
Definition: DataSvcFileEntriesTool.cpp:60
DataSvcFileEntriesTool::m_dataSvc
SmartIF< IDataProviderSvc > m_dataSvc
Pointer to the IDataProviderSvc interface of the data service.
Definition: DataSvcFileEntriesTool.cpp:64
DataSvcFileEntriesTool::m_dataMgrSvc
SmartIF< IDataManagerSvc > m_dataMgrSvc
Pointer to the IDataManagerSvc interface of the data service.
Definition: DataSvcFileEntriesTool.cpp:62
AlgTool::serviceLocator
SmartIF< ISvcLocator > & serviceLocator() const override
Retrieve pointer to service locator.
Definition: AlgTool.cpp:79
ISvcLocator::service
StatusCode service(const Gaudi::Utils::TypeNameString &name, T *&svc, bool createIf=true)
Templated method to access a service by name.
Definition: ISvcLocator.h:76
CommonMessagingBase::error
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
Definition: CommonMessaging.h:98
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:50
DataSvcFileEntriesTool::m_dataSvcName
Gaudi::Property< std::string > m_dataSvcName
Definition: DataSvcFileEntriesTool.cpp:50
IIncidentSvc::addListener
virtual void addListener(IIncidentListener *lis, const std::string &type="", long priority=0, bool rethrow=false, bool singleShot=false)=0
Add listener.
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:86
StatusCode::isFailure
bool isFailure() const
Definition: StatusCode.h:130
DataSvcFileEntriesTool::m_leaves
LeavesList m_leaves
Internal cache for the list of objects found during the scan.
Definition: DataSvcFileEntriesTool.cpp:67
IDataManagerSvc::rootName
virtual const std::string & rootName() const =0
Get Name of root Event.
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:192

## ◆ leaves()

const IDataStoreLeaves::LeavesList & DataSvcFileEntriesTool::leaves | ( |  | ) | const
| override

Return the list of collected objects.

If the scan was not yet done since the last BeginEvent incident, it is done when calling this function. The result of the scan is cached.

Definition at line 151 of file DataSvcFileEntriesTool.cpp.

151 {
152 if ( m_leaves.empty() ) { const_cast<DataSvcFileEntriesTool*>( this )->i_collectLeaves(); }
153 return m_leaves;
154 }
DataSvcFileEntriesTool::m_leaves
LeavesList m_leaves
Internal cache for the list of objects found during the scan.
Definition: DataSvcFileEntriesTool.cpp:67

## Member Data Documentation

## ◆ m_dataMgrSvc

SmartIF<IDataManagerSvc> DataSvcFileEntriesTool::m_dataMgrSvc
| private

Pointer to the IDataManagerSvc interface of the data service.

Definition at line 62 of file DataSvcFileEntriesTool.cpp.

## ◆ m_dataSvc

SmartIF<IDataProviderSvc> DataSvcFileEntriesTool::m_dataSvc
| private

Pointer to the IDataProviderSvc interface of the data service.

Definition at line 64 of file DataSvcFileEntriesTool.cpp.

## ◆ m_dataSvcName

Gaudi::Property<std::string> DataSvcFileEntriesTool::m_dataSvcName {this, "DataService", "EventDataSvc", "Name of the data service to use"}
| private

Definition at line 50 of file DataSvcFileEntriesTool.cpp.

## ◆ m_ignoreOriginChange

Gaudi::Property<bool> DataSvcFileEntriesTool::m_ignoreOriginChange
| private

Initial value:
{
this, "IgnoreOriginChange", false,
"Disable the detection of the change in the origin of object between the BeginEvent and the scan"}

Definition at line 55 of file DataSvcFileEntriesTool.cpp.

## ◆ m_incidentSvc

SmartIF<IIncidentSvc> DataSvcFileEntriesTool::m_incidentSvc
| private

Pointer to the incident service.

Definition at line 60 of file DataSvcFileEntriesTool.cpp.

## ◆ m_initialBase

std::string DataSvcFileEntriesTool::m_initialBase
| private

File ID of the Root node.

It is cached every BeginEvent to be compared with the one seen during the collection of the leaves, to avoid that the collection is altered by previous calls to an OutputStream.

Definition at line 82 of file DataSvcFileEntriesTool.cpp.

## ◆ m_leaves

LeavesList DataSvcFileEntriesTool::m_leaves
| private

Internal cache for the list of objects found during the scan.

Definition at line 67 of file DataSvcFileEntriesTool.cpp.

## ◆ m_rootNode

Gaudi::Property<std::string> DataSvcFileEntriesTool::m_rootNode {this, "Root", "", "Path to the element from which to start the scan"}
| private

Definition at line 51 of file DataSvcFileEntriesTool.cpp.

## ◆ m_scanOnBeginEvent

Gaudi::Property<bool> DataSvcFileEntriesTool::m_scanOnBeginEvent
| private

Initial value:
{
this, "ScanOnBeginEvent", false,
"If the scan has to be started during the BeginEvent incident (true) or on demand (false, default)"}

Definition at line 52 of file DataSvcFileEntriesTool.cpp.

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

- GaudiCommonSvc/src/PersistencySvc/DataSvcFileEntriesTool.cpp