ATLAS Offline Software
Loading...
Searching...
No Matches
IByteStreamCnvSvc Class Referenceabstract

interface for bytestream conversion services More...

#include <IByteStreamCnvSvc.h>

Inheritance diagram for IByteStreamCnvSvc:
Collaboration diagram for IByteStreamCnvSvc:

Public Member Functions

 DeclareInterfaceID (IByteStreamCnvSvc, 1, 0)
 Gaudi interface id.
template<class T>
StatusCode getFullEventAssembler (T *&t, const std::string &name)
 Access to FullEventAssembler.

Protected Member Functions

virtual FullEventAssemblerBasefindFullEventAssembler (const std::string &name) const =0
 Find FullEventAssembler with given name.
virtual StatusCode storeFullEventAssembler (std::unique_ptr< FullEventAssemblerBase > fea, const std::string &name)=0
 Store FullEventAssembler under given name.

Detailed Description

interface for bytestream conversion services

Definition at line 18 of file IByteStreamCnvSvc.h.

Member Function Documentation

◆ DeclareInterfaceID()

IByteStreamCnvSvc::DeclareInterfaceID ( IByteStreamCnvSvc ,
1 ,
0  )

Gaudi interface id.

◆ findFullEventAssembler()

virtual FullEventAssemblerBase * IByteStreamCnvSvc::findFullEventAssembler ( const std::string & name) const
protectedpure virtual

Find FullEventAssembler with given name.

Returns
pointer to FullEventAssembler or nullptr if it does not exist

◆ getFullEventAssembler()

template<class T>
StatusCode IByteStreamCnvSvc::getFullEventAssembler ( T *& t,
const std::string & name )

Access to FullEventAssembler.

Definition at line 42 of file IByteStreamCnvSvc.h.

43{
44 // Find existing FEA
45 FullEventAssemblerBase* fea = findFullEventAssembler(name);
46 if (fea) {
47 t = dynamic_cast<T*>(fea);
48 if (t == nullptr) {
49 REPORT_MESSAGE_WITH_CONTEXT(MSG::ERROR, "IByteStreamCnvSvc")
50 << "FullEventAssembler with key '" << name << "' exists, but of different type" << endmsg;
51 return StatusCode::FAILURE;
52 }
53 return StatusCode::SUCCESS;
54 }
55 else { // create new FEA
56 auto ptr = std::make_unique<T>();
57 t = ptr.get();
58 return storeFullEventAssembler(std::move(ptr), name);
59 }
60}
#define endmsg
#define REPORT_MESSAGE_WITH_CONTEXT(LVL, CONTEXT_NAME)
Report a message, with an explicitly specified context name.
virtual FullEventAssemblerBase * findFullEventAssembler(const std::string &name) const =0
Find FullEventAssembler with given name.
virtual StatusCode storeFullEventAssembler(std::unique_ptr< FullEventAssemblerBase > fea, const std::string &name)=0
Store FullEventAssembler under given name.
unsigned long long T
void * ptr(T *p)
Definition SGImplSvc.cxx:74

◆ storeFullEventAssembler()

virtual StatusCode IByteStreamCnvSvc::storeFullEventAssembler ( std::unique_ptr< FullEventAssemblerBase > fea,
const std::string & name )
protectedpure virtual

Store FullEventAssembler under given name.

Returns
Success or failure.

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