| The Gaudi Framework v29r0 (ff2e7097)

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

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

Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
DataStreamTool Class Reference

`#include <GaudiKernel/DataStreamTool.h>`

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

## Public Types
typedef std::vector< EventSelectorDataStream * > | Streams
typedef std::vector< Gaudi::Property< std::string > > | Properties
Public Types inherited from extends< AlgTool, IDataStreamTool >
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...

## Public Member Functions
| DataStreamTool (const std::string &type, const std::string &name, const IInterface *parent)
| Standard constructor. More...
| ~DataStreamTool () override=default
| Destructor. More...
StatusCode | initialize () override
StatusCode | finalize () override
StatusCode | initializeStream (EventSelectorDataStream *) override
| Initialize newly opened stream. More...
StatusCode | finalizeStream (EventSelectorDataStream *) override
| Finalize no longer needed stream. More...
StatusCode | getNextStream (const EventSelectorDataStream *&, size_type &) override
StatusCode | getPreviousStream (const EventSelectorDataStream *&, size_type &) override
StatusCode | addStream (const std::string &) override
StatusCode | addStreams (const StreamSpecs &) override
StatusCode | eraseStream (const std::string &) override
EventSelectorDataStream * | getStream (const std::string &) override
| Retrieve stream by name. More...
EventSelectorDataStream * | getStream (size_type) override
EventSelectorDataStream * | lastStream () override
size_type | size () override
StatusCode | clear () override
virtual Streams & | getStreams ()
virtual Streams::iterator | beginOfStreams ()
virtual Streams::iterator | endOfStreams ()
Public Member Functions inherited from extends< AlgTool, IDataStreamTool >
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...
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 output level 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...

## Protected Member Functions
StatusCode | createSelector (const std::string &, const std::string &, IEvtSelector *&) override
StatusCode | createStream (const std::string &, const std::string &, EventSelectorDataStream *&) override
StatusCode | connectStream (EventSelectorDataStream *)
| Connect single stream by reference. More...
StatusCode | connectStream (const std::string &)
| Connect single stream by name. More...
Streams::iterator | getStreamIterator (const std::string &)
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 > >
void | updateMsgStreamOutputLevel (int level)
| Update the output level of the cached MsgStream. More...

## Protected Attributes
size_type | m_streamID = 0
size_type | m_streamCount = 0
Streams | m_streams
StreamSpecs | m_streamSpecs
SmartIF< IIncidentSvc > | m_incidentSvc = nullptr
| Reference to the incident service. 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

## Private Member Functions
| DataStreamTool (const DataStreamTool &)=delete
| Fake copy constructor (never implemented). More...
DataStreamTool & | operator= (const DataStreamTool &)=delete
| Fake assignment operator (never implemented). More...

## Detailed Description

Author
  Andres Felipe Osorio Oliveros
  Marco Clemencic

Date
  2006-09-21

Definition at line 28 of file DataStreamTool.h.

## Member Typedef Documentation

typedef std::vector<Gaudi::Property<std::string> > DataStreamTool::Properties

Definition at line 32 of file DataStreamTool.h.

typedef std::vector<EventSelectorDataStream*> DataStreamTool::Streams

Definition at line 31 of file DataStreamTool.h.

## Constructor & Destructor Documentation

DataStreamTool::DataStreamTool | ( | const std::string & | type,
|  | const std::string & | name,
|  | const IInterface * | parent
| ) |  |

Standard constructor.

Definition at line 24 of file DataStreamTool.cpp.

25 : base_class( type, name, parent )
26 {
27 // declareInterface<IDataStreamTool>(this);
28 }
extends< AlgTool, IDataStreamTool >::base_class
extends base_class
Typedef to this class.
Definition: extends.h:15

DataStreamTool::~DataStreamTool | ( |  | ) |
| override default

Destructor.

DataStreamTool::DataStreamTool | ( | const DataStreamTool & |  | ) |
| private delete

Fake copy constructor (never implemented).

## Member Function Documentation

StatusCode DataStreamTool::addStream | ( | const std::string & | input | ) |
| override

Definition at line 49 of file DataStreamTool.cpp.

50 {
51
52 if ( getStream( input ) ) {
53 warning() << "Input stream " << input << "already in use" << endmsg;
54 }
55
56 m_streamSpecs.push_back( input );
57
58 auto strname = name() + '_' + std::to_string( ++m_streamCount );
59 EventSelectorDataStream* s = nullptr;
60
61 StatusCode status = createStream( strname, input, s );
62
63 if ( status.isSuccess() && s ) {
64 s->addRef();
65 m_streams.push_back( s );
66 status = StatusCode::SUCCESS;
67 } else {
68 if ( s ) {
69 s->release();
70 error() << "Error connecting/creating Stream: " << s << endmsg;
71 }
72 error() << "Error connecting/creating Stream: " << input << endmsg;
73 status = StatusCode::FAILURE;
74 }
75 return status;
76 }
StatusCode::SUCCESS
Definition: StatusCode.h:31
StatusCode::FAILURE
Definition: StatusCode.h:31
StatusCode::isSuccess
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:75
std::to_string
T to_string(T...args)
DataStreamTool::createStream
StatusCode createStream(const std::string &, const std::string &, EventSelectorDataStream *&) override
Definition: DataStreamTool.cpp:169
std::vector::push_back
T push_back(T...args)
CommonMessagingBase::error
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
Definition: CommonMessaging.h:111
CommonMessagingBase::warning
MsgStream & warning() const
shortcut for the method msgStream(MSG::WARNING)
Definition: CommonMessaging.h:114
implements::addRef
unsigned long addRef() override
Reference Interface instance.
Definition: implements.h:41
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:28
DataStreamTool::getStream
EventSelectorDataStream * getStream(const std::string &) override
Retrieve stream by name.
Definition: DataStreamTool.cpp:176
AlgTool::name
const std::string & name() const override
Retrieve full identifying name of the concrete tool object.
Definition: AlgTool.cpp:63
EventSelectorDataStream
Definition of class EventSelectorDataStream.
Definition: EventSelectorDataStream.h:45
DataStreamTool::m_streamCount
size_type m_streamCount
Definition: DataStreamTool.h:87
gaudirun.s
string s
Definition: gaudirun.py:253
DataStreamTool::m_streams
Streams m_streams
Definition: DataStreamTool.h:89
DataStreamTool::m_streamSpecs
StreamSpecs m_streamSpecs
Definition: DataStreamTool.h:91
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209
implements::release
unsigned long release() override
Release Interface instance.
Definition: implements.h:43

StatusCode DataStreamTool::addStreams | ( | const StreamSpecs & | inputs | ) |
| override

Definition at line 78 of file DataStreamTool.cpp.

79 {
80
81 StatusCode status = StatusCode::SUCCESS;
82 for ( auto& i : inputs ) {
83 status = addStream( i );
84 if ( !status.isSuccess() ) break;
85 }
86 return status;
87 }
StatusCode::SUCCESS
Definition: StatusCode.h:31
StatusCode::isSuccess
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:75
BrunelScenarioForwardScheduler.inputs
inputs
Definition: BrunelScenarioForwardScheduler.py:133
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:28
DataStreamTool::addStream
StatusCode addStream(const std::string &) override
Definition: DataStreamTool.cpp:49

virtual Streams::iterator DataStreamTool::beginOfStreams | ( |  | ) |
| inline virtual

Definition at line 71 of file DataStreamTool.h.

71 { return m_streams.begin(); };
std::vector::begin
T begin(T...args)
DataStreamTool::m_streams
Streams m_streams
Definition: DataStreamTool.h:89

StatusCode DataStreamTool::clear | ( |  | ) |
| override

Definition at line 196 of file DataStreamTool.cpp.

197 {
198
199 StatusCode iret, status = StatusCode::SUCCESS;
200 iret.ignore();
201
202 // disconnect the streams
203 for ( auto& il : m_streamSpecs ) {
204 EventSelectorDataStream* s = getStream( il );
205 if ( s ) {
206 if ( s->isInitialized() ) {
207 iret = finalizeStream( s );
208 if ( !iret.isSuccess() ) {
209 error() << "Error finalizing Stream" << il << endmsg;
210 status = iret;
211 }
212 }
213 iret = eraseStream( il );
214 if ( !iret.isSuccess() ) {
215 error() << "Error diconnecting Stream" << il << endmsg;
216 status = iret;
217 }
218 }
219 }
220
221 m_streamSpecs.clear();
222
223 return status;
224 }
EventSelectorDataStream::isInitialized
bool isInitialized() const
Check initialization status.
Definition: EventSelectorDataStream.h:105
StatusCode::SUCCESS
Definition: StatusCode.h:31
StatusCode::isSuccess
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:75
CommonMessagingBase::error
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
Definition: CommonMessaging.h:111
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:28
DataStreamTool::finalizeStream
StatusCode finalizeStream(EventSelectorDataStream *) override
Finalize no longer needed stream.
Definition: DataStreamTool.cpp:135
DataStreamTool::getStream
EventSelectorDataStream * getStream(const std::string &) override
Retrieve stream by name.
Definition: DataStreamTool.cpp:176
DataStreamTool::eraseStream
StatusCode eraseStream(const std::string &) override
Definition: DataStreamTool.cpp:157
EventSelectorDataStream
Definition of class EventSelectorDataStream.
Definition: EventSelectorDataStream.h:45
gaudirun.s
string s
Definition: gaudirun.py:253
StatusCode::ignore
void ignore() const
Definition: StatusCode.h:109
DataStreamTool::m_streamSpecs
StreamSpecs m_streamSpecs
Definition: DataStreamTool.h:91
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209

StatusCode DataStreamTool::connectStream | ( | EventSelectorDataStream * | s | ) |
| protected

Connect single stream by reference.

Definition at line 226 of file DataStreamTool.cpp.

227 {
228
229 if ( !s ) return StatusCode::FAILURE;
230 s->addRef();
231 m_streams.push_back( s );
232 return StatusCode::SUCCESS;
233 }
StatusCode::SUCCESS
Definition: StatusCode.h:31
StatusCode::FAILURE
Definition: StatusCode.h:31
std::vector::push_back
T push_back(T...args)
implements::addRef
unsigned long addRef() override
Reference Interface instance.
Definition: implements.h:41
DataStreamTool::m_streams
Streams m_streams
Definition: DataStreamTool.h:89

StatusCode DataStreamTool::connectStream | ( | const std::string & | info | ) |
| protected

Connect single stream by name.

Definition at line 235 of file DataStreamTool.cpp.

236 {
237 if ( getStream( info ) ) {
238 warning() << "Input stream " << info << "already in use" << endmsg;
239 }
240 auto nam = name() + '_' + std::to_string( ++m_streamCount );
241 EventSelectorDataStream* s = nullptr;
242 StatusCode status = createStream( nam, info, s );
243 if ( status.isSuccess() ) return connectStream( s );
244 s->release();
245 return status;
246 }
StatusCode::isSuccess
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:75
std::to_string
T to_string(T...args)
DataStreamTool::createStream
StatusCode createStream(const std::string &, const std::string &, EventSelectorDataStream *&) override
Definition: DataStreamTool.cpp:169
CommonMessagingBase::warning
MsgStream & warning() const
shortcut for the method msgStream(MSG::WARNING)
Definition: CommonMessaging.h:114
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:28
DataStreamTool::connectStream
StatusCode connectStream(EventSelectorDataStream *)
Connect single stream by reference.
Definition: DataStreamTool.cpp:226
DataStreamTool::getStream
EventSelectorDataStream * getStream(const std::string &) override
Retrieve stream by name.
Definition: DataStreamTool.cpp:176
AlgTool::name
const std::string & name() const override
Retrieve full identifying name of the concrete tool object.
Definition: AlgTool.cpp:63
EventSelectorDataStream
Definition of class EventSelectorDataStream.
Definition: EventSelectorDataStream.h:45
DataStreamTool::m_streamCount
size_type m_streamCount
Definition: DataStreamTool.h:87
gaudirun.s
string s
Definition: gaudirun.py:253
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209
implements::release
unsigned long release() override
Release Interface instance.
Definition: implements.h:43

StatusCode DataStreamTool::createSelector | ( | const std::string & | nam,
|  | const std::string & | typ,
|  | IEvtSelector *& | sel
| ) |  |
| override protected

Definition at line 119 of file DataStreamTool.cpp.

120 {
121 auto isvc = make_SmartIF( Service::Factory::create( typ, nam, serviceLocator() ) );
122 if ( isvc ) {
123 auto isel = isvc.as<IEvtSelector>();
124 if ( isel ) {
125 sel = isel.get();
126 sel->addRef(); // make sure that sel is not left dangling once isel and isvc go out of scope...
127 return StatusCode::SUCCESS;
128 }
129 }
130 sel = nullptr;
131 error() << "Failed to create IEvtSelector " << typ << "/" << nam << endmsg;
132 return StatusCode::FAILURE;
133 }
StatusCode::SUCCESS
Definition: StatusCode.h:31
AlgTool::serviceLocator
SmartIF< ISvcLocator > & serviceLocator() const override
Retrieve pointer to service locator.
Definition: AlgTool.cpp:84
StatusCode::FAILURE
Definition: StatusCode.h:31
IEvtSelector
The Event Selector Interface.
Definition: IEvtSelector.h:18
CommonMessagingBase::error
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
Definition: CommonMessaging.h:111
IInterface::addRef
virtual unsigned long addRef()=0
Increment the reference count of Interface instance.
make_SmartIF
SmartIF< IFace > make_SmartIF(IFace *iface)
Definition: SmartIF.h:152
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209

StatusCode DataStreamTool::createStream | ( | const std::string & | nam,
|  | const std::string & | info,
|  | EventSelectorDataStream *& | stream
| ) |  |
| override protected

Definition at line 169 of file DataStreamTool.cpp.

171 {
172 stream = new EventSelectorDataStream( nam, info, serviceLocator() );
173 return StatusCode::SUCCESS;
174 }
StatusCode::SUCCESS
Definition: StatusCode.h:31
AlgTool::serviceLocator
SmartIF< ISvcLocator > & serviceLocator() const override
Retrieve pointer to service locator.
Definition: AlgTool.cpp:84
EventSelectorDataStream
Definition of class EventSelectorDataStream.
Definition: EventSelectorDataStream.h:45

virtual Streams::iterator DataStreamTool::endOfStreams | ( |  | ) |
| inline virtual

Definition at line 73 of file DataStreamTool.h.

73 { return m_streams.end(); };
std::vector::end
T end(T...args)
DataStreamTool::m_streams
Streams m_streams
Definition: DataStreamTool.h:89

StatusCode DataStreamTool::eraseStream | ( | const std::string & | info | ) |
| override

Definition at line 157 of file DataStreamTool.cpp.

158 {
159
160 auto i = getStreamIterator( info );
161 if ( i != m_streams.end() ) {
162 ( *i )->release();
163 m_streams.erase( i );
164 return StatusCode::SUCCESS;
165 }
166 return StatusCode::FAILURE;
167 }
StatusCode::SUCCESS
Definition: StatusCode.h:31
DataStreamTool::getStreamIterator
Streams::iterator getStreamIterator(const std::string &)
Definition: DataStreamTool.cpp:182
StatusCode::FAILURE
Definition: StatusCode.h:31
std::vector::end
T end(T...args)
std::vector::erase
T erase(T...args)
DataStreamTool::m_streams
Streams m_streams
Definition: DataStreamTool.h:89

StatusCode DataStreamTool::finalize | ( |  | ) |
| override

Definition at line 89 of file DataStreamTool.cpp.

90 {
91 clear().ignore();
92 m_incidentSvc.reset();
93 return AlgTool::finalize();
94 }
DataStreamTool::clear
StatusCode clear() override
Definition: DataStreamTool.cpp:196
AlgTool::finalize
StatusCode finalize() override
Definition: AlgTool.cpp:311
DataStreamTool::m_incidentSvc
SmartIF< IIncidentSvc > m_incidentSvc
Reference to the incident service.
Definition: DataStreamTool.h:94
SmartIF::reset
void reset(TYPE *ptr=nullptr)
Set the internal pointer to the passed one disposing of the old one.
Definition: SmartIF.h:92
StatusCode::ignore
void ignore() const
Definition: StatusCode.h:109

StatusCode DataStreamTool::finalizeStream | ( | EventSelectorDataStream * | s | ) |
| override

Finalize no longer needed stream.

Definition at line 135 of file DataStreamTool.cpp.

136 {
137 if ( s ) {
138 IEvtSelector* sel = s->selector();
139 if ( sel ) {
140 SmartIF<IService> isvc( sel );
141 if ( isvc ) {
142 isvc->finalize().ignore();
143 s->finalize().ignore();
144 // Fire EndStream "Incident"
145 m_incidentSvc->fireIncident( Incident( name(), IncidentType::EndStream ) );
146 return StatusCode::SUCCESS;
147 }
148 // Failed to get service interface of sub-event selector
149 return StatusCode::FAILURE;
150 }
151 // No selector (yet) attached - no need to finalize it!
152 return StatusCode::SUCCESS;
153 }
154 return StatusCode::FAILURE;
155 }
StatusCode::SUCCESS
Definition: StatusCode.h:31
SmartIF< IService >
StatusCode::FAILURE
Definition: StatusCode.h:31
IEvtSelector
The Event Selector Interface.
Definition: IEvtSelector.h:18
EventSelectorDataStream::selector
IEvtSelector * selector() const
Retrieve event selector object.
Definition: EventSelectorDataStream.h:103
IOTest.sel
sel
Definition: IOTest.py:95
IIncidentSvc::fireIncident
virtual void fireIncident(const Incident &incident)=0
Fire an Incident.
EventSelectorDataStream::finalize
virtual StatusCode finalize()
Finalize stream and release resources.
Definition: EventSelectorDataStream.cpp:188
DataStreamTool::m_incidentSvc
SmartIF< IIncidentSvc > m_incidentSvc
Reference to the incident service.
Definition: DataStreamTool.h:94
AlgTool::name
const std::string & name() const override
Retrieve full identifying name of the concrete tool object.
Definition: AlgTool.cpp:63
Incident
Base class for all Incidents (computing events).
Definition: Incident.h:17
StatusCode::ignore
void ignore() const
Definition: StatusCode.h:109

StatusCode DataStreamTool::getNextStream | ( | const EventSelectorDataStream *& | esds,
|  | size_type & | dsid
| ) |  |
| override

Definition at line 254 of file DataStreamTool.cpp.

255 {
256
257 EventSelectorDataStream* nextStream = getStream( dsid );
258 if ( !nextStream ) return StatusCode::FAILURE; //<-end of streams reached
259
260 esds = nextStream;
261 ++m_streamID;
262
263 return StatusCode::SUCCESS;
264 }
StatusCode::SUCCESS
Definition: StatusCode.h:31
StatusCode::FAILURE
Definition: StatusCode.h:31
DataStreamTool::getStream
EventSelectorDataStream * getStream(const std::string &) override
Retrieve stream by name.
Definition: DataStreamTool.cpp:176
DataStreamTool::m_streamID
size_type m_streamID
Definition: DataStreamTool.h:85
EventSelectorDataStream
Definition of class EventSelectorDataStream.
Definition: EventSelectorDataStream.h:45

StatusCode DataStreamTool::getPreviousStream | ( | const EventSelectorDataStream *& | esds,
|  | size_type & | dsid
| ) |  |
| override

Definition at line 266 of file DataStreamTool.cpp.

267 {
268
269 EventSelectorDataStream* previousStream = getStream( dsid );
270 if ( !previousStream ) return StatusCode::FAILURE; //<-begin of streams reached
271
272 esds = previousStream;
273 --m_streamID;
274
275 return StatusCode::SUCCESS;
276 }
StatusCode::SUCCESS
Definition: StatusCode.h:31
StatusCode::FAILURE
Definition: StatusCode.h:31
DataStreamTool::getStream
EventSelectorDataStream * getStream(const std::string &) override
Retrieve stream by name.
Definition: DataStreamTool.cpp:176
DataStreamTool::m_streamID
size_type m_streamID
Definition: DataStreamTool.h:85
EventSelectorDataStream
Definition of class EventSelectorDataStream.
Definition: EventSelectorDataStream.h:45

EventSelectorDataStream * DataStreamTool::getStream | ( | const std::string & | info | ) |
| override

Retrieve stream by name.

Definition at line 176 of file DataStreamTool.cpp.

177 {
178 auto i = getStreamIterator( info );
179 return i != m_streams.end() ? *i : nullptr;
180 }
DataStreamTool::getStreamIterator
Streams::iterator getStreamIterator(const std::string &)
Definition: DataStreamTool.cpp:182
std::vector::end
T end(T...args)
DataStreamTool::m_streams
Streams m_streams
Definition: DataStreamTool.h:89

EventSelectorDataStream * DataStreamTool::getStream | ( | size_type | pos | ) |
| override

Definition at line 188 of file DataStreamTool.cpp.

189 {
190 // pos has to point inside the vector
191 return ( ( pos >= 0 ) && ( (size_t)pos < m_streams.size() ) ) ? m_streams[pos] : nullptr;
192 }
std::vector::size
T size(T...args)
DataStreamTool::m_streams
Streams m_streams
Definition: DataStreamTool.h:89

DataStreamTool::Streams::iterator DataStreamTool::getStreamIterator | ( | const std::string & | info | ) |
| protected

Definition at line 182 of file DataStreamTool.cpp.

183 {
184 return std::find_if( std::begin( m_streams ), std::end( m_streams ),
185 [&]( const EventSelectorDataStream* i ) { return i->definition() == info; } );
186 }
CommonMessagingBase::info
MsgStream & info() const
shortcut for the method msgStream(MSG::INFO)
Definition: CommonMessaging.h:117
std::end
T end(T...args)
EventSelectorDataStream::definition
const std::string & definition() const
Retrieve definition string.
Definition: EventSelectorDataStream.h:101
std::find_if
T find_if(T...args)
std::begin
T begin(T...args)
EventSelectorDataStream
Definition of class EventSelectorDataStream.
Definition: EventSelectorDataStream.h:45
DataStreamTool::m_streams
Streams m_streams
Definition: DataStreamTool.h:89

virtual Streams& DataStreamTool::getStreams | ( |  | ) |
| inline virtual

Definition at line 69 of file DataStreamTool.h.

69 { return m_streams; };
DataStreamTool::m_streams
Streams m_streams
Definition: DataStreamTool.h:89

StatusCode DataStreamTool::initialize | ( |  | ) |
| override

Definition at line 30 of file DataStreamTool.cpp.

31 {
32
33 StatusCode status = AlgTool::initialize();
34 if ( !status.isSuccess() ) {
35 fatal() << "Error. Cannot initialize base class." << endmsg;
36 return status;
37 }
38
39 // Get the references to the services that are needed by the ApplicationMgr itself
40 m_incidentSvc = serviceLocator()->service( "IncidentSvc" );
41 if ( !m_incidentSvc ) {
42 fatal() << "Error retrieving IncidentSvc." << endmsg;
43 return StatusCode::FAILURE;
44 }
45
46 return StatusCode::SUCCESS;
47 }
StatusCode::SUCCESS
Definition: StatusCode.h:31
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:241
StatusCode::isSuccess
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:75
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
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:28
DataStreamTool::m_incidentSvc
SmartIF< IIncidentSvc > m_incidentSvc
Reference to the incident service.
Definition: DataStreamTool.h:94
CommonMessagingBase::fatal
MsgStream & fatal() const
shortcut for the method msgStream(MSG::FATAL)
Definition: CommonMessaging.h:105
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209

StatusCode DataStreamTool::initializeStream | ( | EventSelectorDataStream * | s | ) |
| override

Initialize newly opened stream.

Definition at line 96 of file DataStreamTool.cpp.

97 {
98 IEvtSelector* sel = nullptr;
99 StatusCode status = s->initialize();
100 if ( status.isSuccess() ) {
101 status = createSelector( s->name(), s->selectorType(), sel );
102 if ( status.isSuccess() ) {
103 SmartIF<IProperty> prop( sel ); // Att: IProperty, IService used to point to EventSelector
104 SmartIF<IService> isvc( sel );
105 s->setSelector( sel );
106 sel->release(); // No need for this interface anymore, it is passed to the stream
107 if ( prop && isvc ) {
108 for ( const auto& i : s->properties() ) prop->setProperty( i ).ignore();
109 prop->setProperty( Gaudi::Property<int>( "OutputLevel", msgLevel() ) ).ignore();
110 // FIXME: (MCl) Why do we have to initialize the selector here?
111 return isvc->sysInitialize();
112 }
113 }
114 }
115 return StatusCode::FAILURE;
116 }
SmartIF< IProperty >
EventSelectorDataStream::name
const std::string & name() const
Retrieve stream name.
Definition: EventSelectorDataStream.h:93
StatusCode::FAILURE
Definition: StatusCode.h:31
Gaudi::Property
Implementation of property with value of concrete type.
Definition: Property.h:319
IEvtSelector
The Event Selector Interface.
Definition: IEvtSelector.h:18
StatusCode::isSuccess
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:75
IOTest.sel
sel
Definition: IOTest.py:95
EventSelectorDataStream::initialize
virtual StatusCode initialize()
Parse input criteria.
Definition: EventSelectorDataStream.cpp:62
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:28
DataStreamTool::createSelector
StatusCode createSelector(const std::string &, const std::string &, IEvtSelector *&) override
Definition: DataStreamTool.cpp:119
IInterface::release
virtual unsigned long release()=0
Release Interface instance.
EventSelectorDataStream::selectorType
const std::string & selectorType() const
Retrieve event selector type.
Definition: EventSelectorDataStream.h:99
EventSelectorDataStream::properties
const Properties & properties()
Access properties.
Definition: EventSelectorDataStream.h:91
CommonMessagingBase::msgLevel
MSG::Level msgLevel() const
get the output level from the embedded MsgStream
Definition: CommonMessaging.h:129
EventSelectorDataStream::setSelector
virtual void setSelector(IEvtSelector *pSelector)
Attach event selector object.
Definition: EventSelectorDataStream.cpp:43

EventSelectorDataStream * DataStreamTool::lastStream | ( |  | ) |
| override

Definition at line 194 of file DataStreamTool.cpp.

194 { return m_streams.back(); }
std::vector::back
T back(T...args)
DataStreamTool::m_streams
Streams m_streams
Definition: DataStreamTool.h:89

DataStreamTool& DataStreamTool::operator= | ( | const DataStreamTool & |  | ) |
| private delete

Fake assignment operator (never implemented).

size_type DataStreamTool::size | ( |  | ) |
| inline override

Definition at line 65 of file DataStreamTool.h.

65 { return m_streams.size(); };
std::vector::size
T size(T...args)
DataStreamTool::m_streams
Streams m_streams
Definition: DataStreamTool.h:89

## Member Data Documentation

SmartIF<IIncidentSvc> DataStreamTool::m_incidentSvc = nullptr
| protected

Reference to the incident service.

Definition at line 94 of file DataStreamTool.h.

size_type DataStreamTool::m_streamCount = 0
| protected

Definition at line 87 of file DataStreamTool.h.

size_type DataStreamTool::m_streamID = 0
| protected

Definition at line 85 of file DataStreamTool.h.

Streams DataStreamTool::m_streams
| protected

Definition at line 89 of file DataStreamTool.h.

StreamSpecs DataStreamTool::m_streamSpecs
| protected

Definition at line 91 of file DataStreamTool.h.

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

- GaudiKernel/GaudiKernel/DataStreamTool.h
- GaudiKernel/src/Lib/DataStreamTool.cpp