| The Gaudi Framework v32r1 (f65d50dc)

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
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...

## Public Member Functions
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...
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...

## 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 > >
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
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

## ◆ Properties

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

Definition at line 31 of file DataStreamTool.h.

## ◆ Streams

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

Definition at line 30 of file DataStreamTool.h.

## Constructor & Destructor Documentation

## ◆ DataStreamTool()

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

Fake copy constructor (never implemented).

## Member Function Documentation

## ◆ addStream()

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

Definition at line 40 of file DataStreamTool.cpp.

40 {
41
42 if ( getStream( input ) ) { warning() << "Input stream " << input << "already in use" << endmsg; }
43
44 m_streamSpecs.push_back( input );
45
46 auto strname = name() + '_' + std::to_string( ++m_streamCount );
47 EventSelectorDataStream* s = nullptr;
48
49 StatusCode status = createStream( strname, input, s );
50
51 if ( status.isSuccess() && s ) {
52 s->addRef();
53 m_streams.push_back( s );
54 status = StatusCode::SUCCESS;
55 } else {
56 if ( s ) {
57 s->release();
58 error() << "Error connecting/creating Stream: " << s << endmsg;
59 }
60 error() << "Error connecting/creating Stream: " << input << endmsg;
61 status = StatusCode::FAILURE;
62 }
63 return status;
64 }
CommonMessagingBase::warning
MsgStream & warning() const
shortcut for the method msgStream(MSG::WARNING)
Definition: CommonMessaging.h:101
std::to_string
T to_string(T... args)
DataStreamTool::createStream
StatusCode createStream(const std::string &, const std::string &, EventSelectorDataStream *&) override
Definition: DataStreamTool.cpp:151
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
std::vector::push_back
T push_back(T... args)
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
StatusCode::isSuccess
bool isSuccess() const
Definition: StatusCode.h:267
DataStreamTool::getStream
EventSelectorDataStream * getStream(const std::string &) override
Retrieve stream by name.
Definition: DataStreamTool.cpp:157
EventSelectorDataStream
Definition of class EventSelectorDataStream.
Definition: EventSelectorDataStream.h:45
DataStreamTool::m_streamCount
size_type m_streamCount
Definition: DataStreamTool.h:84
gaudirun.s
string s
Definition: gaudirun.py:316
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:86
DataStreamTool::m_streams
Streams m_streams
Definition: DataStreamTool.h:86
AlgTool::name
const std::string & name() const override
Retrieve full identifying name of the concrete tool object.
Definition: AlgTool.cpp:58
DataStreamTool::m_streamSpecs
StreamSpecs m_streamSpecs
Definition: DataStreamTool.h:88
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:192

## ◆ addStreams()

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

Definition at line 66 of file DataStreamTool.cpp.

66 {
67
68 StatusCode status = StatusCode::SUCCESS;
69 for ( auto& i : inputs ) {
70 status = addStream( i );
71 if ( !status.isSuccess() ) break;
72 }
73 return status;
74 }
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:50
StatusCode::isSuccess
bool isSuccess() const
Definition: StatusCode.h:267
DataStreamTool::addStream
StatusCode addStream(const std::string &) override
Definition: DataStreamTool.cpp:40

## ◆ beginOfStreams()

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

Definition at line 68 of file DataStreamTool.h.

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

## ◆ clear()

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

Definition at line 174 of file DataStreamTool.cpp.

174 {
175
176 StatusCode iret, status = StatusCode::SUCCESS;
177 iret.ignore();
178
179 // disconnect the streams
180 for ( auto& il : m_streamSpecs ) {
181 EventSelectorDataStream* s = getStream( il );
182 if ( s ) {
183 if ( s->isInitialized() ) {
184 iret = finalizeStream( s );
185 if ( !iret.isSuccess() ) {
186 error() << "Error finalizing Stream" << il << endmsg;
187 status = iret;
188 }
189 }
190 iret = eraseStream( il );
191 if ( !iret.isSuccess() ) {
192 error() << "Error diconnecting Stream" << il << endmsg;
193 status = iret;
194 }
195 }
196 }
197
198 m_streamSpecs.clear();
199
200 return status;
201 }
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
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
DataStreamTool::finalizeStream
StatusCode finalizeStream(EventSelectorDataStream *) override
Finalize no longer needed stream.
Definition: DataStreamTool.cpp:119
StatusCode::isSuccess
bool isSuccess() const
Definition: StatusCode.h:267
DataStreamTool::getStream
EventSelectorDataStream * getStream(const std::string &) override
Retrieve stream by name.
Definition: DataStreamTool.cpp:157
DataStreamTool::eraseStream
StatusCode eraseStream(const std::string &) override
Definition: DataStreamTool.cpp:140
StatusCode::ignore
const StatusCode & ignore() const
Ignore/check StatusCode.
Definition: StatusCode.h:153
EventSelectorDataStream
Definition of class EventSelectorDataStream.
Definition: EventSelectorDataStream.h:45
gaudirun.s
string s
Definition: gaudirun.py:316
DataStreamTool::m_streamSpecs
StreamSpecs m_streamSpecs
Definition: DataStreamTool.h:88
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:192

## ◆ connectStream() [1/2]

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

Connect single stream by reference.

Definition at line 203 of file DataStreamTool.cpp.

203 {
204
205 if ( !s ) return StatusCode::FAILURE;
206 s->addRef();
207 m_streams.push_back( s );
208 return StatusCode::SUCCESS;
209 }
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
std::vector::push_back
T push_back(T... args)
gaudirun.s
string s
Definition: gaudirun.py:316
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:86
DataStreamTool::m_streams
Streams m_streams
Definition: DataStreamTool.h:86

## ◆ connectStream() [2/2]

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

Connect single stream by name.

Definition at line 211 of file DataStreamTool.cpp.

211 {
212 if ( getStream( info ) ) { warning() << "Input stream " << info << "already in use" << endmsg; }
213 auto nam = name() + '_' + std::to_string( ++m_streamCount );
214 EventSelectorDataStream* s = nullptr;
215 StatusCode status = createStream( nam, info, s );
216 if ( status.isSuccess() ) return connectStream( s );
217 s->release();
218 return status;
219 }
CommonMessagingBase::warning
MsgStream & warning() const
shortcut for the method msgStream(MSG::WARNING)
Definition: CommonMessaging.h:101
std::to_string
T to_string(T... args)
DataStreamTool::createStream
StatusCode createStream(const std::string &, const std::string &, EventSelectorDataStream *&) override
Definition: DataStreamTool.cpp:151
CommonMessagingBase::info
MsgStream & info() const
shortcut for the method msgStream(MSG::INFO)
Definition: CommonMessaging.h:104
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:50
DataStreamTool::connectStream
StatusCode connectStream(EventSelectorDataStream *)
Connect single stream by reference.
Definition: DataStreamTool.cpp:203
StatusCode::isSuccess
bool isSuccess() const
Definition: StatusCode.h:267
DataStreamTool::getStream
EventSelectorDataStream * getStream(const std::string &) override
Retrieve stream by name.
Definition: DataStreamTool.cpp:157
EventSelectorDataStream
Definition of class EventSelectorDataStream.
Definition: EventSelectorDataStream.h:45
DataStreamTool::m_streamCount
size_type m_streamCount
Definition: DataStreamTool.h:84
gaudirun.s
string s
Definition: gaudirun.py:316
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

## ◆ createSelector()

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

Definition at line 104 of file DataStreamTool.cpp.

104 {
105 auto isvc = make_SmartIF( Service::Factory::create( typ, nam, serviceLocator() ).release() );
106 if ( isvc ) {
107 auto isel = isvc.as<IEvtSelector>();
108 if ( isel ) {
109 sel = isel.get();
110 sel->addRef(); // make sure that sel is not left dangling once isel and isvc go out of scope...
111 return StatusCode::SUCCESS;
112 }
113 }
114 sel = nullptr;
115 error() << "Failed to create IEvtSelector " << typ << "/" << nam << endmsg;
116 return StatusCode::FAILURE;
117 }
IEvtSelector
The Event Selector Interface.
Definition: IEvtSelector.h:18
IOTest.sel
sel
Definition: IOTest.py:93
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
AlgTool::serviceLocator
SmartIF< ISvcLocator > & serviceLocator() const override
Retrieve pointer to service locator.
Definition: AlgTool.cpp:79
CommonMessagingBase::error
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
Definition: CommonMessaging.h:98
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:86
make_SmartIF
SmartIF< IFace > make_SmartIF(IFace *iface)
Definition: SmartIF.h:140
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:192

## ◆ createStream()

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

Definition at line 151 of file DataStreamTool.cpp.

152 {
153 stream = new EventSelectorDataStream( nam, info, serviceLocator() );
154 return StatusCode::SUCCESS;
155 }
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
CommonMessagingBase::info
MsgStream & info() const
shortcut for the method msgStream(MSG::INFO)
Definition: CommonMessaging.h:104
AlgTool::serviceLocator
SmartIF< ISvcLocator > & serviceLocator() const override
Retrieve pointer to service locator.
Definition: AlgTool.cpp:79
EventSelectorDataStream
Definition of class EventSelectorDataStream.
Definition: EventSelectorDataStream.h:45

## ◆ endOfStreams()

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

Definition at line 70 of file DataStreamTool.h.

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

## ◆ eraseStream()

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

Definition at line 140 of file DataStreamTool.cpp.

140 {
141
142 auto i = getStreamIterator( info );
143 if ( i != m_streams.end() ) {
144 ( *i )->release();
145 m_streams.erase( i );
146 return StatusCode::SUCCESS;
147 }
148 return StatusCode::FAILURE;
149 }
DataStreamTool::getStreamIterator
Streams::iterator getStreamIterator(const std::string &)
Definition: DataStreamTool.cpp:162
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
std::vector::end
T end(T... args)
CommonMessagingBase::info
MsgStream & info() const
shortcut for the method msgStream(MSG::INFO)
Definition: CommonMessaging.h:104
std::vector::erase
T erase(T... args)
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:86
DataStreamTool::m_streams
Streams m_streams
Definition: DataStreamTool.h:86

## ◆ finalize()

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

Definition at line 76 of file DataStreamTool.cpp.

76 {
77 clear().ignore();
78 m_incidentSvc.reset();
79 return AlgTool::finalize();
80 }
DataStreamTool::clear
StatusCode clear() override
Definition: DataStreamTool.cpp:174
AlgTool::finalize
StatusCode finalize() override
Definition: AlgTool.cpp:268
DataStreamTool::m_incidentSvc
SmartIF< IIncidentSvc > m_incidentSvc
Reference to the incident service.
Definition: DataStreamTool.h:91
StatusCode::ignore
const StatusCode & ignore() const
Ignore/check StatusCode.
Definition: StatusCode.h:153
SmartIF::reset
void reset(TYPE *ptr=nullptr)
Set the internal pointer to the passed one disposing of the old one.
Definition: SmartIF.h:86

## ◆ finalizeStream()

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

Finalize no longer needed stream.

Definition at line 119 of file DataStreamTool.cpp.

119 {
120 if ( s ) {
121 IEvtSelector* sel = s->selector();
122 if ( sel ) {
123 SmartIF<IService> isvc( sel );
124 if ( isvc ) {
125 isvc->finalize().ignore();
126 s->finalize().ignore();
127 // Fire EndStream "Incident"
128 m_incidentSvc->fireIncident( Incident( name(), IncidentType::EndStream ) );
129 return StatusCode::SUCCESS;
130 }
131 // Failed to get service interface of sub-event selector
132 return StatusCode::FAILURE;
133 }
134 // No selector (yet) attached - no need to finalize it!
135 return StatusCode::SUCCESS;
136 }
137 return StatusCode::FAILURE;
138 }
SmartIF< IService >
IEvtSelector
The Event Selector Interface.
Definition: IEvtSelector.h:18
IOTest.sel
sel
Definition: IOTest.py:93
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
IIncidentSvc::fireIncident
virtual void fireIncident(const Incident &incident)=0
Fire an Incident.
DataStreamTool::m_incidentSvc
SmartIF< IIncidentSvc > m_incidentSvc
Reference to the incident service.
Definition: DataStreamTool.h:91
Incident
Base class for all Incidents (computing events).
Definition: Incident.h:17
gaudirun.s
string s
Definition: gaudirun.py:316
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:86
AlgTool::name
const std::string & name() const override
Retrieve full identifying name of the concrete tool object.
Definition: AlgTool.cpp:58

## ◆ getNextStream()

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

Definition at line 227 of file DataStreamTool.cpp.

227 {
228
229 EventSelectorDataStream* nextStream = getStream( dsid );
230 if ( !nextStream ) return StatusCode::FAILURE; //<-end of streams reached
231
232 esds = nextStream;
233 ++m_streamID;
234
235 return StatusCode::SUCCESS;
236 }
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
DataStreamTool::getStream
EventSelectorDataStream * getStream(const std::string &) override
Retrieve stream by name.
Definition: DataStreamTool.cpp:157
DataStreamTool::m_streamID
size_type m_streamID
Definition: DataStreamTool.h:82
EventSelectorDataStream
Definition of class EventSelectorDataStream.
Definition: EventSelectorDataStream.h:45
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:86

## ◆ getPreviousStream()

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

Definition at line 238 of file DataStreamTool.cpp.

238 {
239
240 EventSelectorDataStream* previousStream = getStream( dsid );
241 if ( !previousStream ) return StatusCode::FAILURE; //<-begin of streams reached
242
243 esds = previousStream;
244 --m_streamID;
245
246 return StatusCode::SUCCESS;
247 }
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
DataStreamTool::getStream
EventSelectorDataStream * getStream(const std::string &) override
Retrieve stream by name.
Definition: DataStreamTool.cpp:157
DataStreamTool::m_streamID
size_type m_streamID
Definition: DataStreamTool.h:82
EventSelectorDataStream
Definition of class EventSelectorDataStream.
Definition: EventSelectorDataStream.h:45
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:86

## ◆ getStream() [1/2]

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

Retrieve stream by name.

Definition at line 157 of file DataStreamTool.cpp.

157 {
158 auto i = getStreamIterator( info );
159 return i != m_streams.end() ? *i : nullptr;
160 }
DataStreamTool::getStreamIterator
Streams::iterator getStreamIterator(const std::string &)
Definition: DataStreamTool.cpp:162
std::vector::end
T end(T... args)
CommonMessagingBase::info
MsgStream & info() const
shortcut for the method msgStream(MSG::INFO)
Definition: CommonMessaging.h:104
DataStreamTool::m_streams
Streams m_streams
Definition: DataStreamTool.h:86

## ◆ getStream() [2/2]

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

Definition at line 167 of file DataStreamTool.cpp.

167 {
168 // pos has to point inside the vector
169 return ( ( pos >= 0 ) && ( (size_t)pos < m_streams.size() ) ) ? m_streams[pos] : nullptr;
170 }
std::vector::size
T size(T... args)
DataStreamTool::m_streams
Streams m_streams
Definition: DataStreamTool.h:86

## ◆ getStreamIterator()

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

Definition at line 162 of file DataStreamTool.cpp.

162 {
163 return std::find_if( std::begin( m_streams ), std::end( m_streams ),
164 [&]( const EventSelectorDataStream* i ) { return i->definition() == info; } );
165 }
std::end
T end(T... args)
CommonMessagingBase::info
MsgStream & info() const
shortcut for the method msgStream(MSG::INFO)
Definition: CommonMessaging.h:104
std::find_if
T find_if(T... args)
EventSelectorDataStream::definition
const std::string & definition() const
Retrieve definition string.
Definition: EventSelectorDataStream.h:100
std::begin
T begin(T... args)
EventSelectorDataStream
Definition of class EventSelectorDataStream.
Definition: EventSelectorDataStream.h:45
DataStreamTool::m_streams
Streams m_streams
Definition: DataStreamTool.h:86

## ◆ getStreams()

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

Definition at line 66 of file DataStreamTool.h.

66 { return m_streams; };
DataStreamTool::m_streams
Streams m_streams
Definition: DataStreamTool.h:86

## ◆ initialize()

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

Definition at line 22 of file DataStreamTool.cpp.

22 {
23
24 StatusCode status = AlgTool::initialize();
25 if ( !status.isSuccess() ) {
26 fatal() << "Error. Cannot initialize base class." << endmsg;
27 return status;
28 }
29
30 // Get the references to the services that are needed by the ApplicationMgr itself
31 m_incidentSvc = serviceLocator()->service( "IncidentSvc" );
32 if ( !m_incidentSvc ) {
33 fatal() << "Error retrieving IncidentSvc." << endmsg;
34 return StatusCode::FAILURE;
35 }
36
37 return StatusCode::SUCCESS;
38 }
AlgTool::initialize
StatusCode initialize() override
Definition: AlgTool.cpp:201
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
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
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:50
DataStreamTool::m_incidentSvc
SmartIF< IIncidentSvc > m_incidentSvc
Reference to the incident service.
Definition: DataStreamTool.h:91
StatusCode::isSuccess
bool isSuccess() const
Definition: StatusCode.h:267
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:86
CommonMessagingBase::fatal
MsgStream & fatal() const
shortcut for the method msgStream(MSG::FATAL)
Definition: CommonMessaging.h:92
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:192

## ◆ initializeStream()

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

Initialize newly opened stream.

Definition at line 82 of file DataStreamTool.cpp.

82 {
83 IEvtSelector* sel = nullptr;
84 StatusCode status = s->initialize();
85 if ( status.isSuccess() ) {
86 status = createSelector( s->name(), s->selectorType(), sel );
87 if ( status.isSuccess() ) {
88 SmartIF<IProperty> prop( sel ); // Att: IProperty, IService used to point to EventSelector
89 SmartIF<IService> isvc( sel );
90 s->setSelector( sel );
91 sel->release(); // No need for this interface anymore, it is passed to the stream
92 if ( prop && isvc ) {
93 for ( const auto& i : s->properties() ) prop->setProperty( i ).ignore();
94 prop->setProperty( Gaudi::Property<int>( "OutputLevel", msgLevel() ) ).ignore();
95 // FIXME: (MCl) Why do we have to initialize the selector here?
96 return isvc->sysInitialize();
97 }
98 }
99 }
100 return StatusCode::FAILURE;
101 }
SmartIF< IProperty >
Gaudi::Property
Implementation of property with value of concrete type.
Definition: Property.h:352
IEvtSelector
The Event Selector Interface.
Definition: IEvtSelector.h:18
IOTest.sel
sel
Definition: IOTest.py:93
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
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:50
DataStreamTool::createSelector
StatusCode createSelector(const std::string &, const std::string &, IEvtSelector *&) override
Definition: DataStreamTool.cpp:104
StatusCode::isSuccess
bool isSuccess() const
Definition: StatusCode.h:267
gaudirun.s
string s
Definition: gaudirun.py:316
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:86

## ◆ lastStream()

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

Definition at line 172 of file DataStreamTool.cpp.

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

## ◆ operator=()

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

Fake assignment operator (never implemented).

## ◆ size()

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

Definition at line 62 of file DataStreamTool.h.

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

## Member Data Documentation

## ◆ m_incidentSvc

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

Reference to the incident service.

Definition at line 91 of file DataStreamTool.h.

## ◆ m_streamCount

size_type DataStreamTool::m_streamCount = 0
| protected

Definition at line 84 of file DataStreamTool.h.

## ◆ m_streamID

size_type DataStreamTool::m_streamID = 0
| protected

Definition at line 82 of file DataStreamTool.h.

## ◆ m_streams

Streams DataStreamTool::m_streams
| protected

Definition at line 86 of file DataStreamTool.h.

## ◆ m_streamSpecs

StreamSpecs DataStreamTool::m_streamSpecs
| protected

Definition at line 88 of file DataStreamTool.h.

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

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