This class provides the manager for ROOT custom streamers.
More...
#include <AthenaRootStreamerSvc.h>
This class provides the manager for ROOT custom streamers.
- Author
- Marcin Nowak
Definition at line 29 of file AthenaRootStreamerSvc.h.
◆ ConverterPair_t
vector of converters created by the service, (as Reflex Objects) kept so they can be deleted at the end
Definition at line 68 of file AthenaRootStreamerSvc.h.
◆ ConverterVector_t
◆ StreamerMap
◆ AthenaRootStreamerSvc()
AthenaRootStreamerSvc::AthenaRootStreamerSvc |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
◆ ~AthenaRootStreamerSvc()
AthenaRootStreamerSvc::~AthenaRootStreamerSvc |
( |
| ) |
|
|
virtual |
◆ AddStreamer() [1/2]
StatusCode AthenaRootStreamerSvc::AddStreamer |
( |
const std::string & |
converter_classname, |
|
|
bool |
adopt = true |
|
) |
| |
|
virtual |
Create (or exetend) ROOT streamer Class name for which the streamer is added is extracted from the converter One class has one streamer and possibly more than one converter.
- Parameters
-
converter_classname | [IN] classname of the converter object |
adopt | [IN] should the streamer be enabled now or wait for later Adopt()
|
Implements IAthenaRootStreamerSvc.
Definition at line 110 of file AthenaRootStreamerSvc.cxx.
112 RootType streamer_class( converter_classname );
113 if( !streamer_class ) {
116 static std::once_flag libLoadFlag;
117 std::call_once( libLoadFlag, []( TInterpreter& interpreter ) {
121 interpreter.LoadLibraryMap();
122 interpreter.SetClassAutoloading(
true );
127 gInterpreter->AutoLoad( converter_classname.c_str() );
130 streamer_class =
RootType( converter_classname );
131 if( ! streamer_class ) {
133 <<
"> in the dictionary, and autoloading failed" );
134 return(StatusCode::FAILURE);
136 log <<
MSG::DEBUG <<
"Loaded dictionary for class " << converter_classname
141 void*
obj = streamer_class.Construct();
◆ AddStreamer() [2/2]
Create (or exetend) ROOT streamer Class name for which the streamer is added is extracted from the converter One class has one streamer and possibly more than one converter.
- Parameters
-
converter | [IN] pointer to a converter object |
adopt | [IN] should the streamer be enabled now or wait for later Adopt()
|
Implements IAthenaRootStreamerSvc.
Definition at line 147 of file AthenaRootStreamerSvc.cxx.
149 const std::string &classname = converter->
ClassName();
155 auto convH = std::make_unique<AthenaRootConverterHandle>(converter);
156 if( streamer->
AddConverter(std::move(convH)).isFailure() ) {
158 <<
" already has a converter for checksum = "
160 return(StatusCode::FAILURE);
163 <<
" added converter for checksum = "
169 return(StatusCode::SUCCESS);
◆ AdoptAllStreamers()
StatusCode AthenaRootStreamerSvc::AdoptAllStreamers |
( |
| ) |
|
|
virtual |
◆ AdoptStreamerForClass()
StatusCode AthenaRootStreamerSvc::AdoptStreamerForClass |
( |
const std::string & |
class_name | ) |
|
|
virtual |
Adopt ROOT custom streamer for a given class.
- Parameters
-
class_name | [IN] class name for which the streamer is adopted. |
Implements IAthenaRootStreamerSvc.
Definition at line 174 of file AthenaRootStreamerSvc.cxx.
178 <<
" with has no converters defined" );
179 return(StatusCode::FAILURE);
183 return(StatusCode::SUCCESS);
186 return(StatusCode::FAILURE);
◆ finalize()
StatusCode AthenaRootStreamerSvc::finalize |
( |
| ) |
|
|
virtual |
◆ initialize()
StatusCode AthenaRootStreamerSvc::initialize |
( |
| ) |
|
|
virtual |
◆ interfaceID()
const InterfaceID & IAthenaRootStreamerSvc::interfaceID |
( |
| ) |
|
|
inlinestaticinherited |
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ queryInterface()
StatusCode AthenaRootStreamerSvc::queryInterface |
( |
const InterfaceID & |
riid, |
|
|
void ** |
ppvInterface |
|
) |
| |
|
virtual |
Required of all Gaudi services: see Gaudi documentation for details.
Definition at line 91 of file AthenaRootStreamerSvc.cxx.
97 return(AthService::queryInterface(riid, ppvInterface));
100 return(StatusCode::SUCCESS);
◆ type()
const InterfaceID & AthenaRootStreamerSvc::type |
( |
| ) |
const |
|
virtual |
◆ m_createdConverters
◆ m_streamerClassNames
StringArrayProperty AthenaRootStreamerSvc::m_streamerClassNames |
|
private |
◆ m_streamerMap
The documentation for this class was generated from the following files: