The Gaudi Framework
v30r3 (a5ef0a68)
|
Base class for all conversion services. More...
#include <GaudiKernel/ConversionSvc.h>
Classes | |
class | WorkerEntry |
Public Member Functions | |
ConversionSvc (const std::string &name, ISvcLocator *svc, long type) | |
Standard Constructor. More... | |
ConversionSvc (const ConversionSvc &)=delete | |
disable copy and assignment More... | |
ConversionSvc & | operator= (const ConversionSvc &)=delete |
StatusCode | initialize () override |
Initialize the service. More... | |
StatusCode | finalize () override |
stop the service. More... | |
long | repSvcType () const override |
Retrieve the class type of the data store the converter uses. More... | |
const CLID & | objType () const override |
Implementation of IConverter: dummy call. More... | |
StatusCode | setDataProvider (IDataProviderSvc *pService) override |
Implementation of IConverter: Set Data provider service. More... | |
SmartIF< IDataProviderSvc > & | dataProvider () const override |
Implementation of IConverter: Get Data provider service. More... | |
StatusCode | setConversionSvc (IConversionSvc *svc) override |
Implementation of IConverter: Set conversion service the converter is connected to. More... | |
SmartIF< IConversionSvc > & | conversionSvc () const override |
Implementation of IConverter: Get conversion service the converter is connected to. More... | |
StatusCode | setAddressCreator (IAddressCreator *creator) override |
Set address creator facility. More... | |
SmartIF< IAddressCreator > & | addressCreator () const override |
Retrieve address creator facility. More... | |
StatusCode | createObj (IOpaqueAddress *pAddress, DataObject *&refpObject) override |
Implementation of IConverter: Create the transient representation of an object. More... | |
StatusCode | fillObjRefs (IOpaqueAddress *pAddress, DataObject *pObject) override |
Implementation of IConverter: Resolve the references of the created transient object. More... | |
StatusCode | updateObj (IOpaqueAddress *pAddress, DataObject *refpObject) override |
Implementation of IConverter: Update the transient object from the other representation. More... | |
StatusCode | updateObjRefs (IOpaqueAddress *pAddress, DataObject *pObject) override |
Implementation of IConverter: Update the references of an updated transient object. More... | |
StatusCode | createRep (DataObject *pObject, IOpaqueAddress *&refpAddress) override |
Implementation of IConverter: Convert the transient object to the requested representation. More... | |
StatusCode | fillRepRefs (IOpaqueAddress *pAddress, DataObject *pObject) override |
Implementation of IConverter: Resolve the references of the converted object. More... | |
StatusCode | updateRep (IOpaqueAddress *pAddress, DataObject *pObject) override |
Implementation of IConverter: Update the converted representation of a transient object. More... | |
StatusCode | updateRepRefs (IOpaqueAddress *pAddress, DataObject *pObject) override |
Implementation of IConverter: Update the references of an already converted object. More... | |
StatusCode | addConverter (const CLID &clid) override |
Add converter object to conversion service. More... | |
StatusCode | addConverter (IConverter *pConverter) override |
Add converter object to conversion service. More... | |
StatusCode | removeConverter (const CLID &clid) override |
Remove converter object from conversion service (if present). More... | |
IConverter * | converter (const CLID &wanted) override |
Retrieve converter from list. More... | |
StatusCode | connectOutput (const std::string &outputFile, const std::string &openMode) override |
Connect the output file to the service with open mode. More... | |
StatusCode | connectOutput (const std::string &output) override |
Connect the output file to the service. More... | |
StatusCode | commitOutput (const std::string &output, bool do_commit) override |
Commit pending output. More... | |
StatusCode | createAddress (long svc_type, const CLID &clid, const std::string *par, const unsigned long *ip, IOpaqueAddress *&refpAddress) override |
Create a Generic address using explicit arguments to identify a single object. More... | |
StatusCode | convertAddress (const IOpaqueAddress *pAddress, std::string &refAddress) override |
Convert an address to string form. More... | |
StatusCode | createAddress (long svc_type, const CLID &clid, const std::string &refAddress, IOpaqueAddress *&refpAddress) override |
Convert an address in string form to object form. More... | |
virtual StatusCode | updateServiceState (IOpaqueAddress *pAddress) |
Update state of the service. More... | |
Public Member Functions inherited from extends< Service, IConversionSvc, IAddressCreator > | |
void * | i_cast (const InterfaceID &tid) const override |
Implementation of IInterface::i_cast. More... | |
StatusCode | queryInterface (const InterfaceID &ti, void **pp) override |
Implementation of IInterface::queryInterface. More... | |
std::vector< std::string > | getInterfaceNames () const override |
Implementation of IInterface::getInterfaceNames. More... | |
Public Member Functions inherited from Service | |
const std::string & | name () const override |
Retrieve name of the service. More... | |
StatusCode | configure () override |
StatusCode | initialize () override |
StatusCode | start () override |
StatusCode | stop () override |
StatusCode | finalize () override |
StatusCode | terminate () override |
Gaudi::StateMachine::State | FSMState () const override |
Gaudi::StateMachine::State | targetFSMState () const override |
StatusCode | reinitialize () override |
StatusCode | restart () override |
StatusCode | sysInitialize () override |
Initialize Service. More... | |
StatusCode | sysStart () override |
Initialize Service. More... | |
StatusCode | sysStop () override |
Initialize Service. More... | |
StatusCode | sysFinalize () override |
Finalize Service. More... | |
StatusCode | sysReinitialize () override |
Re-initialize the Service. More... | |
StatusCode | sysRestart () override |
Re-initialize the Service. More... | |
Service (std::string name, ISvcLocator *svcloc) | |
Standard Constructor. More... | |
SmartIF< ISvcLocator > & | serviceLocator () const override |
Retrieve pointer to service locator. More... | |
StatusCode | setProperties () |
Method for setting declared properties to the values specified for the job. More... | |
template<class T > | |
StatusCode | service (const std::string &name, const T *&psvc, bool createIf=true) const |
Access a service by name, creating it if it doesn't already exist. More... | |
template<class T > | |
StatusCode | service (const std::string &name, T *&psvc, bool createIf=true) const |
template<typename IFace = IService> | |
SmartIF< IFace > | service (const std::string &name, bool createIf=true) const |
template<class T > | |
StatusCode | service (const std::string &svcType, const std::string &svcName, T *&psvc) const |
Access a service by name and type, creating it if it doesn't already exist. More... | |
template<class T > | |
StatusCode | declareTool (ToolHandle< T > &handle, std::string toolTypeAndName, bool createIf=true) |
Declare used tool. More... | |
SmartIF< IAuditorSvc > & | auditorSvc () const |
The standard auditor service.May not be invoked before sysInitialize() has been invoked. More... | |
Public Member Functions inherited from PropertyHolder< CommonMessaging< implements< IService, IProperty, IStateful > > > | |
PropertyHolder ()=default | |
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Details::PropertyBase &prop) |
Declare a property. More... | |
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, TYPE &value, const std::string &doc="none") |
Helper to wrap a regular data member and use it as a regular property. More... | |
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, Gaudi::Property< TYPE, VERIFIER, HANDLERS > &prop, const std::string &doc="none") |
Declare a PropertyBase instance setting name and documentation. More... | |
Gaudi::Details::PropertyBase * | declareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="") |
Declare a remote property. More... | |
StatusCode | setProperty (const Gaudi::Details::PropertyBase &p) override |
set the property form another property More... | |
StatusCode | setProperty (const std::string &s) override |
set the property from the formatted string More... | |
StatusCode | setProperty (const std::string &n, const std::string &v) override |
set the property from name and the value More... | |
StatusCode | setProperty (const std::string &name, const TYPE &value) |
set the property form the value More... | |
StatusCode | getProperty (Gaudi::Details::PropertyBase *p) const override |
get the property More... | |
const Gaudi::Details::PropertyBase & | getProperty (const std::string &name) const override |
get the property by name More... | |
StatusCode | getProperty (const std::string &n, std::string &v) const override |
convert the property to the string More... | |
const std::vector< Gaudi::Details::PropertyBase * > & | getProperties () const override |
get all properties More... | |
bool | hasProperty (const std::string &name) const override |
Return true if we have a property with the given name. More... | |
PropertyHolder (const PropertyHolder &)=delete | |
PropertyHolder & | operator= (const PropertyHolder &)=delete |
Public Member Functions inherited from CommonMessaging< implements< IService, IProperty, IStateful > > | |
MSG::Level | msgLevel () const |
get the cached level (originally extracted from the embedded MsgStream) More... | |
bool | msgLevel (MSG::Level lvl) const |
get the output level from the embedded MsgStream More... | |
MSG::Level | outputLevel () const |
Backward compatibility function for getting the output level. More... | |
Public Member Functions inherited from CommonMessagingBase | |
virtual | ~CommonMessagingBase ()=default |
Virtual destructor. More... | |
const SmartIF< IMessageSvc > & | msgSvc () const |
The standard message service. More... | |
MsgStream & | msgStream () const |
Return an uninitialized MsgStream. More... | |
MsgStream & | msgStream (const MSG::Level level) const |
Predefined configurable message stream for the efficient printouts. More... | |
MsgStream & | always () const |
shortcut for the method msgStream(MSG::ALWAYS) More... | |
MsgStream & | fatal () const |
shortcut for the method msgStream(MSG::FATAL) More... | |
MsgStream & | err () const |
shortcut for the method msgStream(MSG::ERROR) More... | |
MsgStream & | error () const |
shortcut for the method msgStream(MSG::ERROR) More... | |
MsgStream & | warning () const |
shortcut for the method msgStream(MSG::WARNING) More... | |
MsgStream & | info () const |
shortcut for the method msgStream(MSG::INFO) More... | |
MsgStream & | debug () const |
shortcut for the method msgStream(MSG::DEBUG) More... | |
MsgStream & | verbose () const |
shortcut for the method msgStream(MSG::VERBOSE) More... | |
MsgStream & | msg () const |
shortcut for the method msgStream(MSG::INFO) More... | |
Protected Member Functions | |
virtual IConverter * | createConverter (long typ, const CLID &clid, const ICnvFactory *fac) |
Create new Converter using factory. More... | |
virtual StatusCode | configureConverter (long typ, const CLID &clid, IConverter *cnv) |
Configure the new converter before initialize is called. More... | |
virtual StatusCode | initializeConverter (long typ, const CLID &clid, IConverter *cnv) |
Initialize the new converter. More... | |
virtual StatusCode | activateConverter (long typ, const CLID &clid, IConverter *cnv) |
Activate the new converter after initialization. More... | |
virtual void | loadConverter (DataObject *pObject) |
Load converter or dictionary needed by the converter. More... | |
virtual SmartIF< IAddressCreator > & | addressCreator () |
Retrieve address creation interface. More... | |
StatusCode | makeCall (int typ, bool ignore_add, bool ignore_obj, bool update, IOpaqueAddress *&pAddress, DataObject *&pObject) |
Protected Member Functions inherited from Service | |
~Service () override | |
Standard Destructor. More... | |
int | outputLevel () const |
get the Service's output level More... | |
Protected Member Functions inherited from PropertyHolder< CommonMessaging< implements< IService, IProperty, IStateful > > > | |
Gaudi::Details::PropertyBase * | property (const std::string &name) const |
Protected Member Functions inherited from CommonMessaging< implements< IService, IProperty, IStateful > > | |
MSG::Level | setUpMessaging () const |
Set up local caches. More... | |
MSG::Level | resetMessaging () |
Reinitialize internal states. More... | |
void | updateMsgStreamOutputLevel (int level) |
Update the output level of the cached MsgStream. More... | |
Protected Attributes | |
SmartIF< IDataProviderSvc > | m_dataSvc |
Pointer to data provider service. More... | |
SmartIF< IAddressCreator > | m_addressCreator |
Pointer to the address creation service interface. More... | |
SmartIF< IConversionSvc > | m_cnvSvc |
Pointer to the IConversionSvc interface of this. More... | |
long | m_type |
Conversion service type. More... | |
std::vector< WorkerEntry > | m_workers |
List of conversion workers. More... | |
Protected Attributes inherited from Service | |
Gaudi::StateMachine::State | m_state = Gaudi::StateMachine::OFFLINE |
Service state. More... | |
Gaudi::StateMachine::State | m_targetState = Gaudi::StateMachine::OFFLINE |
Service state. More... | |
Gaudi::Property< int > | m_outputLevel {this, "OutputLevel", MSG::NIL, "output level"} |
Gaudi::Property< bool > | m_auditInit {this, "AuditServices", false, "[[deprecated]] unused"} |
Gaudi::Property< bool > | m_auditorInitialize {this, "AuditInitialize", false, "trigger auditor on initialize()"} |
Gaudi::Property< bool > | m_auditorStart {this, "AuditStart", false, "trigger auditor on start()"} |
Gaudi::Property< bool > | m_auditorStop {this, "AuditStop", false, "trigger auditor on stop()"} |
Gaudi::Property< bool > | m_auditorFinalize {this, "AuditFinalize", false, "trigger auditor on finalize()"} |
Gaudi::Property< bool > | m_auditorReinitialize {this, "AuditReinitialize", false, "trigger auditor on reinitialize()"} |
Gaudi::Property< bool > | m_auditorRestart {this, "AuditRestart", false, "trigger auditor on restart()"} |
SmartIF< IAuditorSvc > | m_pAuditorSvc |
Auditor Service. More... | |
Additional Inherited Members | |
Public Types inherited from extends< Service, IConversionSvc, IAddressCreator > | |
using | base_class = extends |
Typedef to this class. More... | |
using | extend_interfaces_base = extend_interfaces< Interfaces... > |
Typedef to the base of this class. More... | |
Public Types inherited from Service | |
using | Factory = Gaudi::PluginService::Factory< IService *(const std::string &, ISvcLocator *)> |
Public Types inherited from PropertyHolder< CommonMessaging< implements< IService, IProperty, IStateful > > > | |
using | PropertyHolderImpl = PropertyHolder< CommonMessaging< implements< IService, IProperty, IStateful > > > |
Typedef used to refer to this class from derived classes, as in. More... | |
Public Types inherited from CommonMessaging< implements< IService, IProperty, IStateful > > | |
using | base_class = CommonMessaging |
Public Types inherited from extend_interfaces< Interfaces... > | |
using | ext_iids = typename Gaudi::interface_list_cat< typename Interfaces::ext_iids... >::type |
take union of the ext_iids of all Interfaces... More... | |
Base class for all conversion services.
It manages a set of Converters that are specialized for conversions of specific objects.
This supports self learning converters: User hooks include the following (overridable) entries:
configureConverter and activateConverter are user hooks, where the convetrer can be manipulated by the hosting service and knowledge can be supplied, which a "generic" converter cannot aquire itself.
These hooks allow any sub-classed conversion service to override the calls and create converters, which aquire the knowledge about their persistency type and the object type they convert during the initialization.
Only AFTER these three steps the converter must satisfy the storage type of the hosting service and the class type of the required object type.
Definition at line 45 of file ConversionSvc.h.
ConversionSvc::ConversionSvc | ( | const std::string & | name, |
ISvcLocator * | svc, | ||
long | type | ||
) |
Standard Constructor.
Definition at line 347 of file ConversionSvc.cpp.
|
delete |
disable copy and assignment
|
protectedvirtual |
Activate the new converter after initialization.
Activate the freshly created converter.
Definition at line 299 of file ConversionSvc.cpp.
|
override |
Add converter object to conversion service.
Definition at line 200 of file ConversionSvc.cpp.
|
override |
Add converter object to conversion service.
Definition at line 228 of file ConversionSvc.cpp.
|
override |
Retrieve address creator facility.
Access the transient store.
Definition at line 191 of file ConversionSvc.cpp.
|
inlineprotectedvirtual |
Retrieve address creation interface.
Definition at line 202 of file ConversionSvc.h.
|
override |
|
protectedvirtual |
Configure the new converter before initialize is called.
Configure the freshly created converter.
Definition at line 283 of file ConversionSvc.cpp.
|
override |
Connect the output file to the service with open mode.
Definition at line 311 of file ConversionSvc.cpp.
|
override |
|
override |
Implementation of IConverter: Get conversion service the converter is connected to.
Get conversion service the converter is connected to.
Definition at line 197 of file ConversionSvc.cpp.
|
override |
Convert an address to string form.
Definition at line 332 of file ConversionSvc.cpp.
|
override |
Retrieve converter from list.
Definition at line 143 of file ConversionSvc.cpp.
|
override |
Create a Generic address using explicit arguments to identify a single object.
Definition at line 323 of file ConversionSvc.cpp.
|
override |
|
protectedvirtual |
Create new Converter using factory.
Reimplemented in Gaudi::RootCnvSvc.
Definition at line 272 of file ConversionSvc.cpp.
|
override |
Implementation of IConverter: Create the transient representation of an object.
Create the transient representation of an object.
Definition at line 95 of file ConversionSvc.cpp.
|
override |
Implementation of IConverter: Convert the transient object to the requested representation.
Convert the transient object to the requested representation.
Definition at line 119 of file ConversionSvc.cpp.
|
override |
Implementation of IConverter: Get Data provider service.
Access the transient store.
Definition at line 173 of file ConversionSvc.cpp.
|
override |
Implementation of IConverter: Resolve the references of the created transient object.
Resolve the references of the created transient object.
Definition at line 101 of file ConversionSvc.cpp.
|
override |
Implementation of IConverter: Resolve the references of the converted object.
Resolve the references of the converted object.
Definition at line 125 of file ConversionSvc.cpp.
|
override |
stop the service.
Definition at line 255 of file ConversionSvc.cpp.
|
override |
|
protectedvirtual |
Initialize the new converter.
Initialize new converter.
Definition at line 293 of file ConversionSvc.cpp.
|
protectedvirtual |
Load converter or dictionary needed by the converter.
Reimplemented in Gaudi::RootCnvSvc.
Definition at line 90 of file ConversionSvc.cpp.
|
protected |
Definition at line 29 of file ConversionSvc.cpp.
|
override |
Implementation of IConverter: dummy call.
Retrieve the class type of objects the converter produces.
Definition at line 305 of file ConversionSvc.cpp.
|
delete |
|
override |
Remove converter object from conversion service (if present).
Definition at line 240 of file ConversionSvc.cpp.
|
override |
Retrieve the class type of the data store the converter uses.
Definition at line 308 of file ConversionSvc.cpp.
|
override |
Set address creator facility.
Definition at line 176 of file ConversionSvc.cpp.
|
override |
Implementation of IConverter: Set conversion service the converter is connected to.
Set conversion service the converter is connected to.
Definition at line 194 of file ConversionSvc.cpp.
|
override |
Implementation of IConverter: Set Data provider service.
Define transient data store.
pService | Pointer to data provider service |
Definition at line 159 of file ConversionSvc.cpp.
|
override |
Implementation of IConverter: Update the transient object from the other representation.
Update the transient object from the other representation.
Definition at line 107 of file ConversionSvc.cpp.
|
override |
Implementation of IConverter: Update the references of an updated transient object.
Update the references of an updated transient object.
Definition at line 113 of file ConversionSvc.cpp.
|
override |
Implementation of IConverter: Update the converted representation of a transient object.
Update the converted representation of a transient object.
Definition at line 131 of file ConversionSvc.cpp.
|
override |
Implementation of IConverter: Update the references of an already converted object.
Update the references of an already converted object.
Definition at line 137 of file ConversionSvc.cpp.
|
virtual |
Update state of the service.
Reimplemented in Gaudi::RootCnvSvc.
Definition at line 92 of file ConversionSvc.cpp.
|
mutableprotected |
Pointer to the address creation service interface.
Definition at line 211 of file ConversionSvc.h.
|
mutableprotected |
Pointer to the IConversionSvc interface of this.
Definition at line 213 of file ConversionSvc.h.
|
mutableprotected |
Pointer to data provider service.
Definition at line 209 of file ConversionSvc.h.
|
protected |
Conversion service type.
Definition at line 215 of file ConversionSvc.h.
|
protected |
List of conversion workers.
Definition at line 217 of file ConversionSvc.h.