1 #ifndef GAUDIKERNEL_CONVERTER_H
2 #define GAUDIKERNEL_CONVERTER_H
5 #include "GaudiKernel/IConverter.h"
6 #include "GaudiKernel/ISvcLocator.h"
7 #include "GaudiKernel/IService.h"
8 #include "GaudiKernel/ConversionSvc.h"
9 #include "GaudiKernel/IDataProviderSvc.h"
10 #include "GaudiKernel/IDataManagerSvc.h"
27 typedef Gaudi::PluginService::Factory<
IConverter*,
56 virtual const CLID& objType()
const;
60 virtual long i_repSvcType()
const;
91 StatusCode service(
const std::string& name, T*& psvc,
bool createIf =
false )
const {
92 return service_i(name, createIf, T::interfaceID(), (
void**)&psvc);
97 StatusCode service(
const std::string&
type,
const std::string& name, T*& psvc)
const {
98 return service_i(type, name, T::interfaceID(), (
void**)&psvc);
102 SmartIF<IService> service(
const std::string& name,
const bool createIf =
true)
const;
123 const CLID m_classType;
138 StatusCode service_i(
const std::string& svcName,
142 StatusCode service_i(
const std::string& svcType,
143 const std::string& svcName,
155 return m_stype ==
id.m_stype && m_clid ==
id.m_clid;
164 return s <<
"CNV_" <<
id.m_stype <<
"_" <<
id.m_clid;
168 #ifndef GAUDI_NEW_PLUGIN_SERVICE
173 template <
typename S,
typename... Args>
174 static typename S::ReturnType
create(Args... a1) {
181 #define DECLARE_CONVERTER_FACTORY(x) \
182 DECLARE_FACTORY_WITH_CREATOR_AND_ID(x, CnvFactory< x >, \
183 ConverterID(x::storageType(), x::classID()), Converter::Factory)
184 #define DECLARE_NAMESPACE_CONVERTER_FACTORY(n, x) \
185 DECLARE_CONVERTER_FACTORY(n::x)
190 #define DECLARE_CONVERTER_FACTORY(x) \
191 DECLARE_COMPONENT_WITH_ID(x, ConverterID(x::storageType(), x::classID()))
192 #define DECLARE_NAMESPACE_CONVERTER_FACTORY(n, x) \
193 DECLARE_CONVERTER_FACTORY(n::x)
197 #endif // GAUDIKERNEL_CONVERTER_H