| The Gaudi Framework v29r1 (5cd95fa2)

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

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

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
| ~DataSvcFileEntriesTool () override=default
| Destructor. More...
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...
| ~extends () override=default
| Virtual destructor. 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, 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)
virtual void | acceptDHVisitor (IDataHandleVisitor *) const override
void | commitHandles () 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...
| ~extends () override=default
| Virtual destructor. More...
Public Member Functions inherited from PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > >
| PropertyHolder ()=default
| ~PropertyHolder () override=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, TYPE &value, const std::string &doc="none") const
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
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, GaudiHandleBase &ref, const std::string &doc="none")
| Specializations for various GaudiHandles. More...
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, GaudiHandleArrayBase &ref, const std::string &doc="none")
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, DataObjectHandleBase &ref, const std::string &doc="none")
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...
MSG::Level | msgLevel () const
| get the cached level (originally extracted from the embedded MsgStream) More...
MSG::Level | outputLevel () const __attribute__((deprecated))
| Backward compatibility function for getting the output level. More...
bool | msgLevel (MSG::Level lvl) const
| get the output level from the embedded MsgStream More...
Public Member Functions inherited from extend_interfaces< Interfaces... >
| ~extend_interfaces () override=default
| Virtual destructor. More...

## 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
typedef Gaudi::PluginService::Factory< IAlgTool *, const std::string &, const std::string &, const IInterface * > | Factory
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 ()
| 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.

## Constructor & Destructor Documentation

DataSvcFileEntriesTool::~DataSvcFileEntriesTool | ( |  | ) |
| override default

Destructor.

## Member Function Documentation

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

Finalize the tool.

Definition at line 132 of file DataSvcFileEntriesTool.cpp.

133 {
134 // unregister from the incident service
135 if ( m_incidentSvc ) {
136 m_incidentSvc->removeListener( this, IncidentType::BeginEvent );
137 }
138 // Release the services
139 m_incidentSvc.reset();
140 m_dataMgrSvc.reset();
141 m_dataSvc.reset();
142
143 return AlgTool::finalize();
144 }
DataSvcFileEntriesTool::m_incidentSvc
SmartIF< IIncidentSvc > m_incidentSvc
Pointer to the incident service.
Definition: DataSvcFileEntriesTool.cpp:64
DataSvcFileEntriesTool::m_dataSvc
SmartIF< IDataProviderSvc > m_dataSvc
Pointer to the IDataProviderSvc interface of the data service.
Definition: DataSvcFileEntriesTool.cpp:68
DataSvcFileEntriesTool::m_dataMgrSvc
SmartIF< IDataManagerSvc > m_dataMgrSvc
Pointer to the IDataManagerSvc interface of the data service.
Definition: DataSvcFileEntriesTool.cpp:66
AlgTool::finalize
StatusCode finalize() override
Definition: AlgTool.cpp:313
SmartIF::reset
void reset(TYPE *ptr=nullptr)
Set the internal pointer to the passed one disposing of the old one.
Definition: SmartIF.h:92
IIncidentSvc::removeListener
virtual void removeListener(IIncidentListener *lis, const std::string &type="")=0
Remove listener.

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 146 of file DataSvcFileEntriesTool.cpp.

147 {
148 // Get the file id of the root node at every event
149 IOpaqueAddress* addr = i_getRootNode()->address();
150 if ( addr )
151 m_initialBase = addr->par()[0];
152 else
153 m_initialBase.clear(); // use empty file id if there is no address
154
155 m_leaves.clear();
156 if ( m_scanOnBeginEvent ) {
157 verbose() << "::handle scanning on " << incident.type() << endmsg;
158 i_collectLeaves();
159 }
160 }
Incident::type
const std::string & type() const
Access to the incident type.
Definition: Incident.h:41
CommonMessagingBase::verbose
MsgStream & verbose() const
shortcut for the method msgStream(MSG::VERBOSE)
Definition: CommonMessaging.h:118
IOpaqueAddress::par
virtual const std::string * par() const =0
Retrieve String parameters.
DataSvcFileEntriesTool::m_initialBase
std::string m_initialBase
File ID of the Root node.
Definition: DataSvcFileEntriesTool.cpp:86
DataSvcFileEntriesTool::i_collectLeaves
void i_collectLeaves()
Scan the data service starting from the node specified as Root.
Definition: DataSvcFileEntriesTool.cpp:180
DataSvcFileEntriesTool::m_scanOnBeginEvent
Gaudi::Property< bool > m_scanOnBeginEvent
Definition: DataSvcFileEntriesTool.cpp:56
std::string::clear
T clear(T...args)
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:71
IRegistry::address
virtual IOpaqueAddress * address() const =0
Retrieve opaque storage address.
DataSvcFileEntriesTool::i_getRootNode
IRegistry * i_getRootNode()
Return the pointer to the IRegistry object associated to the node specified as Root.
Definition: DataSvcFileEntriesTool.cpp:170
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209

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

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

Definition at line 180 of file DataSvcFileEntriesTool.cpp.

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

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 183 of file DataSvcFileEntriesTool.cpp.

184 {
185 // I do not put sanity checks on the pointers because I know how I'm calling the function
186 IOpaqueAddress* addr = reg->address();
187 if ( addr ) { // we consider only objects that are in a file
188 if ( msgLevel( MSG::VERBOSE ) ) verbose() << "::i_collectLeaves added " << reg->identifier() << endmsg;
189 m_leaves.push_back( reg->object() ); // add this object
190 // Origin of the current object
191 const std::string& base = addr->par()[0];
192 // Compare with the origin seen during BeginEvent
193 if ( !m_ignoreOriginChange && ( m_initialBase != base ) )
194 throw GaudiException( "Origin of data has changed ('" + m_initialBase + "' != '" + base +
195 "'), probably OutputStream was called before "
196 "InputCopyStream: check options",
197 name(), StatusCode::FAILURE );
198
199 std::vector<IRegistry*> lfs; // leaves of the current object
200 StatusCode sc = m_dataMgrSvc->objectLeaves( reg, lfs );
201 if ( sc.isSuccess() ) {
202 for ( const auto& i : lfs ) {
203 // Continue if the leaf has the same database as the parent
204 if ( i->address() && i->address()->par()[0] == base ) {
205 DataObject* obj = nullptr;
206 sc = m_dataSvc->retrieveObject( reg, i->name(), obj );
207 if ( sc.isSuccess() ) {
208 i_collectLeaves( i );
209 } else {
210 throw GaudiException( "Cannot get " + i->identifier() + " from " + m_dataSvcName, name(),
211 StatusCode::FAILURE );
212 }
213 }
214 }
215 }
216 }
217 }
GaudiException
Define general base for Gaudi exception.
Definition: GaudiException.h:22
StatusCode::FAILURE
Definition: StatusCode.h:31
StatusCode::isSuccess
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:75
CommonMessagingBase::verbose
MsgStream & verbose() const
shortcut for the method msgStream(MSG::VERBOSE)
Definition: CommonMessaging.h:118
IRegistry::name
virtual const name_type & name() const =0
Name of the directory (or key)
MSG::VERBOSE
Definition: IMessageSvc.h:16
IOpaqueAddress::par
virtual const std::string * par() const =0
Retrieve String parameters.
DataSvcFileEntriesTool::m_dataSvc
SmartIF< IDataProviderSvc > m_dataSvc
Pointer to the IDataProviderSvc interface of the data service.
Definition: DataSvcFileEntriesTool.cpp:68
DataSvcFileEntriesTool::m_initialBase
std::string m_initialBase
File ID of the Root node.
Definition: DataSvcFileEntriesTool.cpp:86
DataSvcFileEntriesTool::m_dataMgrSvc
SmartIF< IDataManagerSvc > m_dataMgrSvc
Pointer to the IDataManagerSvc interface of the data service.
Definition: DataSvcFileEntriesTool.cpp:66
std::string
STL class.
DataSvcFileEntriesTool::i_collectLeaves
void i_collectLeaves()
Scan the data service starting from the node specified as Root.
Definition: DataSvcFileEntriesTool.cpp:180
IRegistry::identifier
virtual const id_type & identifier() const =0
Full identifier (or key)
DataSvcFileEntriesTool::m_ignoreOriginChange
Gaudi::Property< bool > m_ignoreOriginChange
Definition: DataSvcFileEntriesTool.cpp:59
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:28
DataSvcFileEntriesTool::m_dataSvcName
Gaudi::Property< std::string > m_dataSvcName
Definition: DataSvcFileEntriesTool.cpp:54
IRegistry::object
virtual DataObject * object() const =0
Retrieve object behind the link.
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 ...
AlgTool::name
const std::string & name() const override
Retrieve full identifying name of the concrete tool object.
Definition: AlgTool.cpp:63
std::vector< IRegistry * >
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:71
CommonMessagingBase::msgLevel
MSG::Level msgLevel() const
get the cached level (originally extracted from the embedded MsgStream)
Definition: CommonMessaging.h:124
IRegistry::address
virtual IOpaqueAddress * address() const =0
Retrieve opaque storage address.
DataObject
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:29
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209
IDataProviderSvc::retrieveObject
virtual StatusCode retrieveObject(IRegistry *pDirectory, const std::string &path, DataObject *&pObject)=0
Retrieve object identified by its directory entry.

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

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

Definition at line 170 of file DataSvcFileEntriesTool.cpp.

171 {
172 DataObject* obj = nullptr;
173 StatusCode sc = m_dataSvc->retrieveObject( m_rootNode, obj );
174 if ( sc.isFailure() ) {
175 throw GaudiException( "Cannot get " + m_rootNode + " from " + m_dataSvcName, name(), StatusCode::FAILURE );
176 }
177 return obj->registry();
178 }
GaudiException
Define general base for Gaudi exception.
Definition: GaudiException.h:22
StatusCode::FAILURE
Definition: StatusCode.h:31
DataSvcFileEntriesTool::m_rootNode
Gaudi::Property< std::string > m_rootNode
Definition: DataSvcFileEntriesTool.cpp:55
DataSvcFileEntriesTool::m_dataSvc
SmartIF< IDataProviderSvc > m_dataSvc
Pointer to the IDataProviderSvc interface of the data service.
Definition: DataSvcFileEntriesTool.cpp:68
StatusCode::isFailure
bool isFailure() const
Test for a status code of FAILURE.
Definition: StatusCode.h:86
DataObject::registry
IRegistry * registry() const
Get pointer to Registry.
Definition: DataObject.h:72
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:28
DataSvcFileEntriesTool::m_dataSvcName
Gaudi::Property< std::string > m_dataSvcName
Definition: DataSvcFileEntriesTool.cpp:54
AlgTool::name
const std::string & name() const override
Retrieve full identifying name of the concrete tool object.
Definition: AlgTool.cpp:63
DataObject
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:29
IDataProviderSvc::retrieveObject
virtual StatusCode retrieveObject(IRegistry *pDirectory, const std::string &path, DataObject *&pObject)=0
Retrieve object identified by its directory entry.

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

Initialize the tool.

Definition at line 100 of file DataSvcFileEntriesTool.cpp.

101 {
102 StatusCode sc = AlgTool::initialize();
103 if ( sc.isFailure() ) return sc;
104
105 // Retrieve the pointer to the needed services.
106
107 m_incidentSvc = serviceLocator()->service( "IncidentSvc" );
108 if ( !m_incidentSvc ) {
109 error() << "Cannot get IncidentSvc" << endmsg;
110 return StatusCode::FAILURE;
111 }
112
113 m_dataMgrSvc = m_dataSvc = serviceLocator()->service( m_dataSvcName );
114 if ( !m_dataSvc || !m_dataMgrSvc ) {
115 error() << "Cannot get IDataProviderSvc+IDataManagerSvc " << m_dataSvcName << endmsg;
116 return StatusCode::FAILURE;
117 }
118
119 // Register ourself to the incident service as listener for BeginEvent
120 m_incidentSvc->addListener( this, IncidentType::BeginEvent );
121
122 // If the Root node is not specified, take the name from the data service itself.
123 if ( m_rootNode.empty() ) {
124 m_rootNode = m_dataMgrSvc->rootName();
125 }
126
127 // Clear the cache (in case the instance is re-initilized).
128 m_leaves.clear();
129 return StatusCode::SUCCESS;
130 }
StatusCode::SUCCESS
Definition: StatusCode.h:31
IDataManagerSvc::rootName
virtual const std::string & rootName() const =0
Get Name of root Event.
AlgTool::serviceLocator
SmartIF< ISvcLocator > & serviceLocator() const override
Retrieve pointer to service locator.
Definition: AlgTool.cpp:84
StatusCode::FAILURE
Definition: StatusCode.h:31
AlgTool::initialize
StatusCode initialize() override
Definition: AlgTool.cpp:243
DataSvcFileEntriesTool::m_rootNode
Gaudi::Property< std::string > m_rootNode
Definition: DataSvcFileEntriesTool.cpp:55
DataSvcFileEntriesTool::m_incidentSvc
SmartIF< IIncidentSvc > m_incidentSvc
Pointer to the incident service.
Definition: DataSvcFileEntriesTool.cpp:64
DataSvcFileEntriesTool::m_dataSvc
SmartIF< IDataProviderSvc > m_dataSvc
Pointer to the IDataProviderSvc interface of the data service.
Definition: DataSvcFileEntriesTool.cpp:68
StatusCode::isFailure
bool isFailure() const
Test for a status code of FAILURE.
Definition: StatusCode.h:86
DataSvcFileEntriesTool::m_dataMgrSvc
SmartIF< IDataManagerSvc > m_dataMgrSvc
Pointer to the IDataManagerSvc interface of the data service.
Definition: DataSvcFileEntriesTool.cpp:66
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:79
CommonMessagingBase::error
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
Definition: CommonMessaging.h:106
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:28
DataSvcFileEntriesTool::m_dataSvcName
Gaudi::Property< std::string > m_dataSvcName
Definition: DataSvcFileEntriesTool.cpp:54
IIncidentSvc::addListener
virtual void addListener(IIncidentListener *lis, const std::string &type="", long priority=0, bool rethrow=false, bool singleShot=false)=0
Add listener.
DataSvcFileEntriesTool::m_leaves
LeavesList m_leaves
Internal cache for the list of objects found during the scan.
Definition: DataSvcFileEntriesTool.cpp:71
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209

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 162 of file DataSvcFileEntriesTool.cpp.

163 {
164 if ( m_leaves.empty() ) {
165 const_cast<DataSvcFileEntriesTool*>( this )->i_collectLeaves();
166 }
167 return m_leaves;
168 }
DataSvcFileEntriesTool
Tool to scan a transient store branch that collects all the objects that belong to the same source (f...
Definition: DataSvcFileEntriesTool.cpp:27
DataSvcFileEntriesTool::i_collectLeaves
void i_collectLeaves()
Scan the data service starting from the node specified as Root.
Definition: DataSvcFileEntriesTool.cpp:180
DataSvcFileEntriesTool::m_leaves
LeavesList m_leaves
Internal cache for the list of objects found during the scan.
Definition: DataSvcFileEntriesTool.cpp:71

## Member Data Documentation

SmartIF<IDataManagerSvc> DataSvcFileEntriesTool::m_dataMgrSvc
| private

Pointer to the IDataManagerSvc interface of the data service.

Definition at line 66 of file DataSvcFileEntriesTool.cpp.

SmartIF<IDataProviderSvc> DataSvcFileEntriesTool::m_dataSvc
| private

Pointer to the IDataProviderSvc interface of the data service.

Definition at line 68 of file DataSvcFileEntriesTool.cpp.

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

Definition at line 54 of file DataSvcFileEntriesTool.cpp.

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 59 of file DataSvcFileEntriesTool.cpp.

SmartIF<IIncidentSvc> DataSvcFileEntriesTool::m_incidentSvc
| private

Pointer to the incident service.

Definition at line 64 of file DataSvcFileEntriesTool.cpp.

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 86 of file DataSvcFileEntriesTool.cpp.

LeavesList DataSvcFileEntriesTool::m_leaves
| private

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

Definition at line 71 of file DataSvcFileEntriesTool.cpp.

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

Definition at line 55 of file DataSvcFileEntriesTool.cpp.

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 56 of file DataSvcFileEntriesTool.cpp.

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

- GaudiCommonSvc/src/PersistencySvc/DataSvcFileEntriesTool.cpp