|
ATLAS Offline Software
|
Go to the documentation of this file.
11 #include "GaudiKernel/System.h"
22 const std::string&
name,
23 const IInterface*
parent) :
25 m_msgsvcTP(
"",
name ),
26 m_dictSvc(
"AthDictLoaderSvc",
name ),
27 m_useAthDictLoader( true ),
29 m_tpcnvsvc(
"AthTPCnvSvc",
name ) {
31 declareInterface< TrigSerTPTool >(
this );
35 "allows to skip classes not relevant in the current "
38 "an instance of the messageSvc for debugging purposes" );
40 "simpler setup for running online" );
42 "use AthDictLoaderSvc instead of plain ROOT" );
53 ATH_MSG_INFO(
"Could not retrieve a separate MsgSvc for "
54 "the T/P debugging" );
58 m_logTP = std::make_unique< MsgStream >( msvc,
59 "TrigSerTPTool-T/P" );
81 return StatusCode::SUCCESS;
102 std::string &persName )
const
112 const auto tpItr =
m_TPmap.find( clname );
115 <<
"Transient class " << clname
116 <<
" is not in the T/P Converter map";
119 persName = tpItr->second;
123 ATH_MSG_ERROR(
"T/P Converter for transient class " << tpItr->first
124 <<
" persistent class " << persName <<
" could not be retrieved");
129 const std::string persname =
131 TClass *persObjCl =
getClass( persname );
134 persptr = persObjCl->New();
135 ATH_MSG_DEBUG(
"created object of " << persptr <<
" at " << persptr );
138 <<
"Couldn't find dictionary for type " << persname;
150 catch(
const std::runtime_error&
e ){
153 const std::string issue =
e.what();
154 if( issue.find(
"is deprecated" ) != std::string::npos ) {
167 std::string& transName )
const
178 <<
"T/P Converter for persistent class "
179 << persName <<
" could not be retrieved";
187 TClass *transCl =
getClass( transName );
190 trans = transCl->New();
200 catch (
const std::runtime_error&
e){
214 const auto tpItr =
m_TPmap.find( transClassName );
217 <<
"Transient class " << transClassName
218 <<
" is not in the T/P Converter map";
219 static const std::string
dummy(
"" );
224 return tpItr->second;
233 cl = TClass::GetClass( cname.c_str() );
def persistent(transient)
void add(const ClassName &pattern, const ClassName &replacement)
Add a new transformation rule.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
virtual const std::type_info & transientTInfo() const =0
return C++ type id of the transient class this converter is for
virtual void transToPersUntyped(const void *trans, void *pers, MsgStream &msg)=0
Convert transient object representation to persistent.
std::string typeinfoName(const std::type_info &ti)
Convert a type_info to a demangled string.
::StatusCode StatusCode
StatusCode definition for legacy code.
std::string apply(const std::string &name) const
Apply transformations to a class name.
Helpers for checking error return status codes and reporting errors.
#define REPORT_MESSAGE(LVL)
Report a message.
virtual void persToTransWithKeyUntyped(const void *pers, void *trans, const std::string &, MsgStream &msg)
Convert persistent object representation to transient.
virtual const std::type_info & persistentTInfo() const =0
return C++ type id of the persistent class this converter is for
cl
print [x.__class__ for x in toList(dqregion.getSubRegions()) ]