#include <AthTPCnvSvc.h>
Definition at line 30 of file AthTPCnvSvc.h.
◆ TpCnvs_t
◆ AthTPCnvSvc() [1/2]
| AthTPCnvSvc::AthTPCnvSvc |
( |
const std::string & | name, |
|
|
ISvcLocator * | pSvcLocator ) |
Constructor with parameters:
Definition at line 35 of file AthTPCnvSvc.cxx.
36 :
37 base_class ( name, pSvcLocator ),
39{
40}
ServiceHandle< IClassIDSvc > m_clidSvc
handle to a IClassIDSvc to handle loading of types by CLID
◆ ~AthTPCnvSvc()
| AthTPCnvSvc::~AthTPCnvSvc |
( |
| ) |
|
|
overridevirtual |
◆ AthTPCnvSvc() [2/2]
| AthTPCnvSvc::AthTPCnvSvc |
( |
| ) |
|
|
private |
◆ load_tpcnv()
| ITPCnvBase * AthTPCnvSvc::load_tpcnv |
( |
const std::string & | cls | ) |
|
|
overridevirtual |
load the T/P converter class named cls return NULL on failure.
the converter is OWNED by the T/P converter service
Definition at line 54 of file AthTPCnvSvc.cxx.
55{
56 ITPCnvBase* cnv = ITPCnvBase::Factory::create (cls).release();
57 if (cnv == nullptr) {
59 << "] via Reflex::PluginService");
60 }
61 else {
62 std::scoped_lock lock (
m_mutex);
64 }
65 return cnv;
66}
TpCnvs_t m_cnvs
a registry of ITPCnvBase* instances
◆ p2t_cnv()
return the T/P converter for a persistent class (NULL if failure) ITPCnvSvc owns the ITPCnvBase pointer
Definition at line 130 of file AthTPCnvSvc.cxx.
132{
133 ITPCnvBase* cnv = ITPCnvBase::Factory::create (
prefix(type) +
"_PERS_" + persClassName).release();
135 return p2t_cnv (persClassName);
136 if (cnv == nullptr) {
138 << persClassName << "]");
139 }
140 else {
141 std::scoped_lock lock (
m_mutex);
142 m_cnvs.emplace_back (cnv);
143 }
144 return cnv;
145}
#define ATH_MSG_WARNING(x)
virtual ITPCnvBase * p2t_cnv(const std::string &persClassName, Athena::TPCnvType::Value type=Athena::TPCnvType::Athena) override
return the T/P converter for a persistent class (NULL if failure) ITPCnvSvc owns the ITPCnvBase point...
◆ t2p_cnv() [1/2]
return the T/P converter for a transient class (NULL if failure) ITPCnvSvc owns the ITPCnvBase pointer
Definition at line 94 of file AthTPCnvSvc.cxx.
96{
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 <<
"]");
100 return nullptr;
101 }
102
103 ITPCnvBase* cnv = ITPCnvBase::Factory::create (
prefix(type) +
"_TRANS_" + trans_type).release();
104 if (cnv == nullptr) {
105
106 if (!
m_clidSvc->getTypeInfoNameOfID(transClid, trans_type).isSuccess()) {
108 << transClid << "]");
109 return nullptr;
110 }
111 cnv = ITPCnvBase::Factory::create (
prefix(type) +
"_TRANS_" + trans_type).release();
112 }
115 if (cnv == nullptr) {
117 << transClid << "] (" << trans_type << ")");
118 }
119 else {
120 std::scoped_lock lock (
m_mutex);
121 m_cnvs.emplace_back (cnv);
122 }
123 return cnv;
124}
virtual ITPCnvBase * t2p_cnv(const std::string &transClassName, Athena::TPCnvType::Value type=Athena::TPCnvType::Athena) override
return the T/P converter for a transient class (NULL if failure) ITPCnvSvc owns the ITPCnvBase pointe...
◆ t2p_cnv() [2/2]
return the T/P converter for a transient class (NULL if failure) ITPCnvSvc owns the ITPCnvBase pointer
Definition at line 72 of file AthTPCnvSvc.cxx.
75{
76 ITPCnvBase* cnv = ITPCnvBase::Factory::create (
prefix(type) +
"_TRANS_" + transClassName).release();
78 return t2p_cnv (transClassName);
79 if (cnv == nullptr) {
81 << transClassName << "]");
82 }
83 else {
84 std::scoped_lock lock (
m_mutex);
86 }
87 return cnv;
88}
◆ t2p_cnv_unique() [1/2]
| std::unique_ptr< ITPCnvBase > AthTPCnvSvc::t2p_cnv_unique |
( |
const CLID | transClid | ) |
const |
|
overridevirtual |
Return the T/P converter for a transient class.
Returns null on failure (with no warning printed). Ownership is returned to the caller.
Definition at line 163 of file AthTPCnvSvc.cxx.
164{
165 std::string trans_type;
166 if (!
m_clidSvc->getTypeNameOfID(transClid, trans_type).isSuccess()) {
167 return nullptr;
168 }
169
170 std::unique_ptr<ITPCnvBase> cnv = ITPCnvBase::Factory::create ( "_TRANS_" + trans_type);
171 if (cnv == nullptr) {
172
173 if (!
m_clidSvc->getTypeInfoNameOfID(transClid, trans_type).isSuccess()) {
174 return nullptr;
175 }
176 cnv = ITPCnvBase::Factory::create ( "_TRANS_" + trans_type);
177 }
178
179
180
181
182
183 return cnv;
184}
◆ t2p_cnv_unique() [2/2]
| std::unique_ptr< ITPCnvBase > AthTPCnvSvc::t2p_cnv_unique |
( |
const std::string & | transClassName | ) |
const |
|
overridevirtual |
return the T/P converter for a transient class (NULL if failure) Ownership is returned to the caller.
Return the T/P converter for a transient class.
Ownership is returned to the caller.
Definition at line 152 of file AthTPCnvSvc.cxx.
153{
154 return ITPCnvBase::Factory::create ("_TRANS_" + transClassName);
155}
◆ m_clidSvc
handle to a IClassIDSvc to handle loading of types by CLID
Definition at line 106 of file AthTPCnvSvc.h.
◆ m_cnvs
a registry of ITPCnvBase* instances
Definition at line 111 of file AthTPCnvSvc.h.
◆ m_mutex
| std::mutex AthTPCnvSvc::m_mutex |
|
mutableprivate |
The documentation for this class was generated from the following files: