![]() |
The Gaudi Framework
master (ff829712)
|
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. | |
ConversionSvc (const ConversionSvc &)=delete | |
disable copy and assignment | |
ConversionSvc & | operator= (const ConversionSvc &)=delete |
StatusCode | initialize () override |
Initialize the service. | |
StatusCode | finalize () override |
stop the service. | |
long | repSvcType () const override |
Retrieve the class type of the data store the converter uses. | |
const CLID & | objType () const override |
Implementation of IConverter: dummy call. | |
StatusCode | setDataProvider (IDataProviderSvc *pService) override |
Implementation of IConverter: Set Data provider service. | |
SmartIF< IDataProviderSvc > & | dataProvider () const override |
Implementation of IConverter: Get Data provider service. | |
StatusCode | setConversionSvc (IConversionSvc *svc) override |
Implementation of IConverter: Set conversion service the converter is connected to. | |
SmartIF< IConversionSvc > & | conversionSvc () const override |
Implementation of IConverter: Get conversion service the converter is connected to. | |
StatusCode | setAddressCreator (IAddressCreator *creator) override |
Set address creator facility. | |
SmartIF< IAddressCreator > & | addressCreator () const override |
Retrieve address creator facility. | |
StatusCode | createObj (IOpaqueAddress *pAddress, DataObject *&refpObject) override |
Implementation of IConverter: Create the transient representation of an object. | |
StatusCode | fillObjRefs (IOpaqueAddress *pAddress, DataObject *pObject) override |
Implementation of IConverter: Resolve the references of the created transient object. | |
StatusCode | updateObj (IOpaqueAddress *pAddress, DataObject *refpObject) override |
Implementation of IConverter: Update the transient object from the other representation. | |
StatusCode | updateObjRefs (IOpaqueAddress *pAddress, DataObject *pObject) override |
Implementation of IConverter: Update the references of an updated transient object. | |
StatusCode | createRep (DataObject *pObject, IOpaqueAddress *&refpAddress) override |
Implementation of IConverter: Convert the transient object to the requested representation. | |
StatusCode | fillRepRefs (IOpaqueAddress *pAddress, DataObject *pObject) override |
Implementation of IConverter: Resolve the references of the converted object. | |
StatusCode | updateRep (IOpaqueAddress *pAddress, DataObject *pObject) override |
Implementation of IConverter: Update the converted representation of a transient object. | |
StatusCode | updateRepRefs (IOpaqueAddress *pAddress, DataObject *pObject) override |
Implementation of IConverter: Update the references of an already converted object. | |
StatusCode | addConverter (const CLID &clid) override |
Add converter object to conversion service. | |
StatusCode | addConverter (IConverter *pConverter) override |
Add converter object to conversion service. | |
StatusCode | removeConverter (const CLID &clid) override |
Remove converter object from conversion service (if present). | |
IConverter * | converter (const CLID &wanted) override |
Retrieve converter from list. | |
StatusCode | connectOutput (const std::string &outputFile, const std::string &openMode) override |
Connect the output file to the service with open mode. | |
StatusCode | connectOutput (const std::string &output) override |
Connect the output file to the service. | |
StatusCode | commitOutput (const std::string &output, bool do_commit) override |
Commit pending output. | |
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. | |
StatusCode | convertAddress (const IOpaqueAddress *pAddress, std::string &refAddress) override |
Convert an address to string form. | |
StatusCode | createAddress (long svc_type, const CLID &clid, const std::string &refAddress, IOpaqueAddress *&refpAddress) override |
Convert an address in string form to object form. | |
virtual StatusCode | updateServiceState (IOpaqueAddress *pAddress) |
Update state of the service. | |
![]() | |
void const * | i_cast (const InterfaceID &tid) const override |
Implementation of IInterface::i_cast. | |
StatusCode | queryInterface (const InterfaceID &ti, void **pp) override |
Implementation of IInterface::queryInterface. | |
std::vector< std::string > | getInterfaceNames () const override |
Implementation of IInterface::getInterfaceNames. | |
![]() | |
const std::string & | name () const override |
Retrieve name of the service. | |
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. | |
StatusCode | sysStart () override |
Initialize Service. | |
StatusCode | sysStop () override |
Initialize Service. | |
StatusCode | sysFinalize () override |
Finalize Service. | |
StatusCode | sysReinitialize () override |
Re-initialize the Service. | |
StatusCode | sysRestart () override |
Re-initialize the Service. | |
Service (std::string name, ISvcLocator *svcloc) | |
Standard Constructor. | |
SmartIF< ISvcLocator > & | serviceLocator () const override |
Retrieve pointer to service locator. | |
template<typename IFace = IService> | |
SmartIF< IFace > | service (const std::string &name, bool createIf=true) const |
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. | |
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. | |
![]() | |
StatusCode | setProperty (const Gaudi::Details::PropertyBase &p) |
Set the property from a property. | |
StatusCode | setProperty (const std::string &name, const char *v) |
Special case for string literals. | |
StatusCode | setProperty (const std::string &name, const std::string &v) |
Special case for std::string. | |
StatusCode | setProperty (const std::string &name, const TYPE &value) |
set the property form the value | |
PropertyHolder ()=default | |
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Details::PropertyBase &prop) |
Declare a property. | |
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. | |
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. | |
Gaudi::Details::PropertyBase * | declareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="") |
Declare a remote property. | |
StatusCode | setProperty (const std::string &name, const Gaudi::Details::PropertyBase &p) override |
set the property from another property with a different name | |
StatusCode | setProperty (const std::string &s) override |
set the property from the formatted string | |
StatusCode | setProperty (const Gaudi::Details::PropertyBase &p) |
Set the property from a property. | |
StatusCode | setProperty (const std::string &name, const char *v) |
Special case for string literals. | |
StatusCode | setProperty (const std::string &name, const std::string &v) |
Special case for std::string. | |
StatusCode | setProperty (const std::string &name, const TYPE &value) |
set the property form the value | |
StatusCode | setPropertyRepr (const std::string &n, const std::string &r) override |
set the property from name and value string representation | |
StatusCode | getProperty (Gaudi::Details::PropertyBase *p) const override |
get the property | |
const Gaudi::Details::PropertyBase & | getProperty (std::string_view name) const override |
get the property by name | |
StatusCode | getProperty (std::string_view n, std::string &v) const override |
convert the property to the string | |
const std::vector< Gaudi::Details::PropertyBase * > & | getProperties () const override |
get all properties | |
bool | hasProperty (std::string_view name) const override |
Return true if we have a property with the given name. | |
Gaudi::Details::PropertyBase * | property (std::string_view name) const |
\fixme property and bindPropertiesTo should be protected | |
void | bindPropertiesTo (Gaudi::Interfaces::IOptionsSvc &optsSvc) |
PropertyHolder (const PropertyHolder &)=delete | |
PropertyHolder & | operator= (const PropertyHolder &)=delete |
![]() | |
MSG::Level | msgLevel () const |
get the cached level (originally extracted from the embedded MsgStream) | |
bool | msgLevel (MSG::Level lvl) const |
get the output level from the embedded MsgStream | |
![]() | |
virtual | ~CommonMessagingBase ()=default |
Virtual destructor. | |
const SmartIF< IMessageSvc > & | msgSvc () const |
The standard message service. | |
MsgStream & | msgStream () const |
Return an uninitialized MsgStream. | |
MsgStream & | msgStream (const MSG::Level level) const |
Predefined configurable message stream for the efficient printouts. | |
MsgStream & | always () const |
shortcut for the method msgStream(MSG::ALWAYS) | |
MsgStream & | fatal () const |
shortcut for the method msgStream(MSG::FATAL) | |
MsgStream & | err () const |
shortcut for the method msgStream(MSG::ERROR) | |
MsgStream & | error () const |
shortcut for the method msgStream(MSG::ERROR) | |
MsgStream & | warning () const |
shortcut for the method msgStream(MSG::WARNING) | |
MsgStream & | info () const |
shortcut for the method msgStream(MSG::INFO) | |
MsgStream & | debug () const |
shortcut for the method msgStream(MSG::DEBUG) | |
MsgStream & | verbose () const |
shortcut for the method msgStream(MSG::VERBOSE) | |
MsgStream & | msg () const |
shortcut for the method msgStream(MSG::INFO) | |
Protected Member Functions | |
virtual IConverter * | createConverter (long typ, const CLID &clid, const ICnvFactory *fac) |
Create new Converter using factory. | |
virtual StatusCode | configureConverter (long typ, const CLID &clid, IConverter *cnv) |
Configure the new converter before initialize is called. | |
virtual StatusCode | initializeConverter (long typ, const CLID &clid, IConverter *cnv) |
Initialize the new converter. | |
virtual StatusCode | activateConverter (long typ, const CLID &clid, IConverter *cnv) |
Activate the new converter after initialization. | |
virtual void | loadConverter (DataObject *pObject) |
Load converter or dictionary needed by the converter. | |
virtual SmartIF< IAddressCreator > & | addressCreator () |
Retrieve address creation interface. | |
StatusCode | makeCall (int typ, bool ignore_add, bool ignore_obj, bool update, IOpaqueAddress *&pAddress, DataObject *&pObject) |
![]() | |
std::vector< IAlgTool * > & | tools () |
~Service () override | |
int | outputLevel () const |
get the Service's output level | |
![]() | |
MSG::Level | setUpMessaging () const |
Set up local caches. | |
MSG::Level | resetMessaging () |
Reinitialize internal states. | |
void | updateMsgStreamOutputLevel (int level) |
Update the output level of the cached MsgStream. | |
Protected Attributes | |
SmartIF< IDataProviderSvc > | m_dataSvc |
Pointer to data provider service. | |
SmartIF< IAddressCreator > | m_addressCreator |
Pointer to the address creation service interface. | |
SmartIF< IConversionSvc > | m_cnvSvc |
Pointer to the IConversionSvc interface of this. | |
long | m_type |
Conversion service type. | |
std::vector< WorkerEntry > | m_workers |
List of conversion workers. | |
![]() | |
Gaudi::StateMachine::State | m_state = Gaudi::StateMachine::OFFLINE |
Service state. | |
Gaudi::StateMachine::State | m_targetState = Gaudi::StateMachine::OFFLINE |
Service state. | |
Gaudi::Property< int > | m_outputLevel { this, "OutputLevel", MSG::NIL, "output level" } |
flag indicating whether ToolHandle tools have been added to m_tools | |
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. | |
Additional Inherited Members | |
![]() | |
using | base_class |
Typedef to this class. | |
using | extend_interfaces_base |
Typedef to the base of this class. | |
![]() | |
using | Factory = Gaudi::PluginService::Factory<IService*( const std::string&, ISvcLocator* )> |
![]() | |
using | PropertyHolderImpl |
Typedef used to refer to this class from derived classes, as in. | |
![]() | |
using | base_class |
![]() | |
using | ext_iids |
take union of the ext_iids of all Interfaces... | |
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 53 of file ConversionSvc.h.
ConversionSvc::ConversionSvc | ( | const std::string & | name, |
ISvcLocator * | svc, | ||
long | type ) |
Standard Constructor.
Definition at line 320 of file ConversionSvc.cpp.
|
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 |
Add converter object to conversion service.
Definition at line 190 of file ConversionSvc.cpp.
|
override |
Add converter object to conversion service.
Definition at line 215 of file ConversionSvc.cpp.
|
inlineprotectedvirtual |
Retrieve address creation interface.
Definition at line 203 of file ConversionSvc.h.
|
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 |
Retrieve converter from list.
Definition at line 140 of file ConversionSvc.cpp.
|
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 |
stop the service.
Definition at line 240 of file ConversionSvc.cpp.
|
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 212 of file ConversionSvc.h.
|
mutableprotected |
Pointer to the IConversionSvc interface of this.
Definition at line 214 of file ConversionSvc.h.
|
mutableprotected |
Pointer to data provider service.
Definition at line 210 of file ConversionSvc.h.
|
protected |
Conversion service type.
Definition at line 216 of file ConversionSvc.h.
|
protected |
List of conversion workers.
Definition at line 218 of file ConversionSvc.h.