The Gaudi Framework
master (37c0b60a)
|
#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... | |
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 > | |
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, ToolHandle< T > &hndl, const std::string &doc="none") |
template<class T > | |
StatusCode | declareTool (ToolHandle< T > &handle, bool createIf=true) |
template<class T > | |
StatusCode | declareTool (ToolHandle< T > &handle, const std::string &toolTypeAndName, bool createIf=true) |
Declare used tool. More... | |
template<class T > | |
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, ToolHandleArray< T > &hndlArr, const std::string &doc="none") |
template<class T > | |
void | addToolsArray (ToolHandleArray< T > &hndlArr) |
const std::vector< IAlgTool * > & | tools () const |
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 std::string &name, const Gaudi::Details::PropertyBase &p) override |
set the property from another property with a different name More... | |
StatusCode | setProperty (const std::string &s) override |
set the property from the formatted string More... | |
StatusCode | setProperty (const Gaudi::Details::PropertyBase &p) |
Set the property from a property. More... | |
virtual StatusCode | setProperty (const std::string &name, const Gaudi::Details::PropertyBase &p)=0 |
Set the property from a property with a different name. More... | |
virtual StatusCode | setProperty (const std::string &s)=0 |
Set the property by string. More... | |
StatusCode | setProperty (const std::string &name, const char *v) |
Special case for string literals. More... | |
StatusCode | setProperty (const std::string &name, const std::string &v) |
Special case for std::string. More... | |
StatusCode | setProperty (const std::string &name, const TYPE &value) |
set the property form the value More... | |
StatusCode | setPropertyRepr (const std::string &n, const std::string &r) override |
set the property from name and value string representation More... | |
StatusCode | getProperty (Gaudi::Details::PropertyBase *p) const override |
get the property More... | |
const Gaudi::Details::PropertyBase & | getProperty (std::string_view name) const override |
get the property by name More... | |
StatusCode | getProperty (std::string_view 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 (std::string_view name) const override |
Return true if we have a property with the given name. More... | |
Gaudi::Details::PropertyBase * | property (std::string_view name) const |
\fixme property and bindPropertiesTo should be protected More... | |
void | bindPropertiesTo (Gaudi::Interfaces::IOptionsSvc &optsSvc) |
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... | |
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 | |
std::vector< IAlgTool * > & | tools () |
~Service () override | |
Standard Destructor More... | |
int | outputLevel () const |
get the Service's output level More... | |
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" } |
flag indicating whether ToolHandle tools have been added to m_tools More... | |
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()" } |
Gaudi::Property< bool > | m_autoRetrieveTools |
Gaudi::Property< bool > | m_checkToolDeps |
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 55 of file ConversionSvc.h.
ConversionSvc::ConversionSvc | ( | const std::string & | name, |
ISvcLocator * | svc, | ||
long | type | ||
) |
|
delete |
disable copy and assignment
|
protectedvirtual |
Activate the new converter after initialization.
Activate the freshly created converter.
Definition at line 278 of file ConversionSvc.cpp.
|
override |
|
override |
|
inlineprotectedvirtual |
|
override |
Retrieve address creator facility.
Access the transient store.
Definition at line 181 of file ConversionSvc.cpp.
|
override |
|
protectedvirtual |
Configure the new converter before initialize is called.
Configure the freshly created converter.
Definition at line 264 of file ConversionSvc.cpp.
|
override |
|
override |
Connect the output file to the service with open mode.
Definition at line 289 of file ConversionSvc.cpp.
|
override |
Implementation of IConverter: Get conversion service the converter is connected to.
Get conversion service the converter is connected to.
Definition at line 187 of file ConversionSvc.cpp.
|
override |
Convert an address to string form.
Definition at line 307 of file ConversionSvc.cpp.
|
override |
|
override |
Convert an address in string form to object form.
Definition at line 313 of file ConversionSvc.cpp.
|
override |
Create a Generic address using explicit arguments to identify a single object.
Definition at line 300 of file ConversionSvc.cpp.
|
protectedvirtual |
Create new Converter using factory.
Reimplemented in Gaudi::RootCnvSvc.
Definition at line 254 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 100 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 120 of file ConversionSvc.cpp.
|
override |
Implementation of IConverter: Get Data provider service.
Access the transient store.
Definition at line 166 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 105 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 |
|
override |
|
protectedvirtual |
Initialize the new converter.
Initialize new converter.
Definition at line 273 of file ConversionSvc.cpp.
|
protectedvirtual |
Load converter or dictionary needed by the converter.
Reimplemented in Gaudi::RootCnvSvc.
Definition at line 95 of file ConversionSvc.cpp.
|
protected |
Definition at line 38 of file ConversionSvc.cpp.
|
override |
Implementation of IConverter: dummy call.
Retrieve the class type of objects the converter produces.
Definition at line 283 of file ConversionSvc.cpp.
|
delete |
|
override |
Remove converter object from conversion service (if present).
Definition at line 226 of file ConversionSvc.cpp.
|
override |
Retrieve the class type of the data store the converter uses.
Definition at line 286 of file ConversionSvc.cpp.
|
override |
Set address creator facility.
Definition at line 169 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 184 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 155 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 110 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 115 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 130 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 135 of file ConversionSvc.cpp.
|
virtual |
Update state of the service.
Reimplemented in Gaudi::RootCnvSvc.
Definition at line 97 of file ConversionSvc.cpp.
|
mutableprotected |
Pointer to the address creation service interface.
Definition at line 214 of file ConversionSvc.h.
|
mutableprotected |
Pointer to the IConversionSvc interface of this.
Definition at line 216 of file ConversionSvc.h.
|
mutableprotected |
Pointer to data provider service.
Definition at line 212 of file ConversionSvc.h.
|
protected |
Conversion service type.
Definition at line 218 of file ConversionSvc.h.
|
protected |
List of conversion workers.
Definition at line 220 of file ConversionSvc.h.