13 #include "GaudiKernel/Converter.h"
36 ISvcLocator* pSvcLocator ) :
37 base_class (
name, pSvcLocator ),
38 m_clidSvc(
"ClassIDSvc/ClassIDSvc",
name)
56 ITPCnvBase* cnv = ITPCnvBase::Factory::create (
cls).release();
59 <<
"] via Reflex::PluginService");
62 std::scoped_lock lock (
m_mutex);
76 ITPCnvBase* cnv = ITPCnvBase::Factory::create (
prefix(
type) +
"_TRANS_" + transClassName).release();
78 return t2p_cnv (transClassName);
81 << transClassName <<
"]");
84 std::scoped_lock lock (
m_mutex);
97 std::string trans_type;
98 if (!
m_clidSvc->getTypeNameOfID(transClid, trans_type).isSuccess()) {
99 ATH_MSG_INFO(
"could not get a type-name for clid [" << transClid <<
"]");
103 ITPCnvBase* cnv = ITPCnvBase::Factory::create (
prefix(
type) +
"_TRANS_" + trans_type).release();
104 if (cnv ==
nullptr) {
106 if (!
m_clidSvc->getTypeInfoNameOfID(transClid, trans_type).isSuccess()) {
108 << transClid <<
"]");
111 cnv = ITPCnvBase::Factory::create (
prefix(
type) +
"_TRANS_" + trans_type).release();
115 if (cnv ==
nullptr) {
117 << transClid <<
"] (" << trans_type <<
")");
120 std::scoped_lock lock (
m_mutex);
121 m_cnvs.emplace_back (cnv);
133 ITPCnvBase* cnv = ITPCnvBase::Factory::create (
prefix(
type) +
"_PERS_" + persClassName).release();
135 return p2t_cnv (persClassName);
136 if (cnv ==
nullptr) {
138 << persClassName <<
"]");
141 std::scoped_lock lock (
m_mutex);
142 m_cnvs.emplace_back (cnv);
151 std::unique_ptr<ITPCnvBase>
154 return ITPCnvBase::Factory::create (
"_TRANS_" + transClassName);
162 std::unique_ptr<ITPCnvBase>
165 std::string trans_type;
166 if (!
m_clidSvc->getTypeNameOfID(transClid, trans_type).isSuccess()) {
170 std::unique_ptr<ITPCnvBase> cnv = ITPCnvBase::Factory::create (
"_TRANS_" + trans_type);
171 if (cnv ==
nullptr) {
173 if (!
m_clidSvc->getTypeInfoNameOfID(transClid, trans_type).isSuccess()) {
176 cnv = ITPCnvBase::Factory::create (
"_TRANS_" + trans_type);