13 #include "GaudiKernel/Converter.h"
38 ISvcLocator* pSvcLocator ) :
39 base_class (
name, pSvcLocator ),
40 m_clidSvc(
"ClassIDSvc/ClassIDSvc",
name)
58 ITPCnvBase* cnv = ITPCnvBase::Factory::create (
cls).release();
61 <<
"] via Reflex::PluginService");
64 std::scoped_lock lock (
m_mutex);
78 ITPCnvBase* cnv = ITPCnvBase::Factory::create (
prefix(
type) +
"_TRANS_" + transClassName).release();
80 return t2p_cnv (transClassName);
83 << transClassName <<
"]");
86 std::scoped_lock lock (
m_mutex);
99 std::string trans_type;
100 if (!
m_clidSvc->getTypeNameOfID(transClid, trans_type).isSuccess()) {
101 ATH_MSG_INFO(
"could not get a type-name for clid [" << transClid <<
"]");
105 ITPCnvBase* cnv = ITPCnvBase::Factory::create (
prefix(
type) +
"_TRANS_" + trans_type).release();
106 if (cnv ==
nullptr) {
108 if (!
m_clidSvc->getTypeInfoNameOfID(transClid, trans_type).isSuccess()) {
110 << transClid <<
"]");
113 cnv = ITPCnvBase::Factory::create (
prefix(
type) +
"_TRANS_" + trans_type).release();
117 if (cnv ==
nullptr) {
119 << transClid <<
"] (" << trans_type <<
")");
122 std::scoped_lock lock (
m_mutex);
123 m_cnvs.emplace_back (cnv);
135 ITPCnvBase* cnv = ITPCnvBase::Factory::create (
prefix(
type) +
"_PERS_" + persClassName).release();
137 return p2t_cnv (persClassName);
138 if (cnv ==
nullptr) {
140 << persClassName <<
"]");
143 std::scoped_lock lock (
m_mutex);
144 m_cnvs.emplace_back (cnv);
153 std::unique_ptr<ITPCnvBase>
156 return ITPCnvBase::Factory::create (
"_TRANS_" + transClassName);
164 std::unique_ptr<ITPCnvBase>
167 std::string trans_type;
168 if (!
m_clidSvc->getTypeNameOfID(transClid, trans_type).isSuccess()) {
172 std::unique_ptr<ITPCnvBase> cnv = ITPCnvBase::Factory::create (
"_TRANS_" + trans_type);
173 if (cnv ==
nullptr) {
175 if (!
m_clidSvc->getTypeInfoNameOfID(transClid, trans_type).isSuccess()) {
178 cnv = ITPCnvBase::Factory::create (
"_TRANS_" + trans_type);