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"
56 virtual const CLID& objType()
const;
60 virtual long i_repSvcType()
const;
92 return service_i(name, createIf, T::interfaceID(), (
void**)&psvc);
98 return service_i(type, name, T::interfaceID(), (
void**)&psvc);
102 SmartIF<IService> service(
const std::string& name,
const bool createIf =
true)
const;
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
SmartIF< IDataProviderSvc > m_dataProvider
Pointer to data provider service.
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
The data converters are responsible to translate data from one representation into another...
SmartIF< IConversionSvc > m_conversionSvc
Pointer to the connected conversion service.
static S::ReturnType create(Args...a1)
bool operator==(const GaudiUtils::Allocator< T1 > &, const GaudiUtils::Allocator< T2 > &)
IAddressCreator interface definition.
std::ostream & operator<<(std::ostream &s, const ConverterID &id)
Data provider interface definition.
Gaudi::InterfaceId< IInterface, 0, 0 > iid
Interface ID.
Base class used to implement the interfaces.
long m_storageType
Storage type.
This class is used for returning status codes from appropriate routines.
StatusCode service(const std::string &name, T *&psvc, bool createIf=false) const
Access a service by name, creating it if it doesn't already exist.
The IMessage is the interface implemented by the message service.
const CLID m_classType
Class type the converter can handle.
The IRegistry represents the entry door to the environment any data object residing in a transient da...
ConverterID(long stype, CLID clid)
SmartIF< IMessageSvc > m_messageSvc
MessageSvc reference.
unsigned int CLID
Class ID definition.
Class wrapping the signature for a factory with any number of arguments.
SmartIF< ISvcLocator > m_svcLocator
Service Locator reference.
Gaudi::PluginService::Factory< IConverter *, ISvcLocator * > Factory
StatusCode service(const std::string &type, const std::string &name, T *&psvc) const
Access a service by name, type creating it if it doesn't already exist.
Opaque address interface definition.
SmartIF< IDataManagerSvc > m_dataManager
Pointer to data manager service.
SmartIF< IAddressCreator > m_addressCreator
Pointer to the address creation service interface.
A DataObject is the base class of any identifiable object on any data store.