The Gaudi Framework  master (594c33fa)
IConversionSvc Class Referenceabstract

#include <GaudiKernel/IConversionSvc.h>

Inheritance diagram for IConversionSvc:
Collaboration diagram for IConversionSvc:

Public Types

enum  Status : StatusCode::code_t {
  Status::INVALID_ADDRESS = static_cast<StatusCode::code_t>( IInterface::Status::LAST_ERROR ) + 1, Status::INVALID_OBJECT, Status::NO_MEMORY, Status::BAD_STORAGE_TYPE,
  Status::NO_SOURCE_OBJECT, Status::NO_CONVERTER
}
 Status code definitions. More...
 
- Public Types inherited from IInterface
enum  Status : StatusCode::code_t {
  Status::FAILURE = 0, Status::SUCCESS = 1, Status::NO_INTERFACE, Status::VERSMISMATCH,
  Status::LAST_ERROR
}
 Return status. More...
 
using iid = Gaudi::InterfaceId< IInterface, 0, 0 >
 Interface ID. More...
 
using ext_iids = Gaudi::interface_list< iid >
 Extra interfaces. More...
 

Public Member Functions

 DeclareInterfaceID (IConversionSvc, 4, 0)
 InterfaceID. More...
 
virtual StatusCode addConverter (IConverter *pConverter)=0
 Add converter object to conversion service. More...
 
virtual StatusCode addConverter (const CLID &clid)=0
 Add converter object to conversion service. More...
 
virtual StatusCode removeConverter (const CLID &clid)=0
 Remove converter object from conversion service (if present). More...
 
virtual IConverterconverter (const CLID &clid)=0
 Retrieve converter from list. More...
 
virtual StatusCode connectOutput (const std::string &outputFile)=0
 Connect the output file to the service. More...
 
virtual StatusCode connectOutput (const std::string &outputFile, const std::string &openMode)=0
 Connect the output file to the service with open mode. More...
 
virtual StatusCode commitOutput (const std::string &outputFile, bool do_commit)=0
 Commit pending output. More...
 
- Public Member Functions inherited from IConverter
 DeclareInterfaceID (IConverter, 3, 0)
 InterfaceID. More...
 
virtual StatusCode initialize ()=0
 Initialize the converter. More...
 
virtual StatusCode finalize ()=0
 Terminate the converter. More...
 
virtual const CLIDobjType () const =0
 Retrieve the class type of objects the converter produces. More...
 
virtual long repSvcType () const =0
 Retrieve the class type of the data store the converter uses. More...
 
virtual StatusCode setDataProvider (IDataProviderSvc *pService)=0
 Set Data provider service. More...
 
virtual SmartIF< IDataProviderSvc > & dataProvider () const =0
 Get Data provider service. More...
 
virtual StatusCode setConversionSvc (IConversionSvc *pService)=0
 Set conversion service the converter is connected to. More...
 
virtual SmartIF< IConversionSvc > & conversionSvc () const =0
 Get conversion service the converter is connected to. More...
 
virtual StatusCode setAddressCreator (IAddressCreator *creator)=0
 Set address creator facility. More...
 
virtual SmartIF< IAddressCreator > & addressCreator () const =0
 Get address creation interface needed to resolve links between objects. More...
 
virtual StatusCode createObj (IOpaqueAddress *pAddress, DataObject *&refpObject)=0
 Create the transient representation of an object. More...
 
virtual StatusCode fillObjRefs (IOpaqueAddress *pAddress, DataObject *pObject)=0
 Resolve the references of the created transient object. More...
 
virtual StatusCode updateObj (IOpaqueAddress *pAddress, DataObject *refpObject)=0
 Update the transient object from the other representation. More...
 
virtual StatusCode updateObjRefs (IOpaqueAddress *pAddress, DataObject *pObject)=0
 Update the references of an updated transient object. More...
 
virtual StatusCode createRep (DataObject *pObject, IOpaqueAddress *&refpAddress)=0
 Convert the transient object to the requested representation. More...
 
virtual StatusCode fillRepRefs (IOpaqueAddress *pAddress, DataObject *pObject)=0
 Resolve the references of the converted object. More...
 
virtual StatusCode updateRep (IOpaqueAddress *pAddress, DataObject *pObject)=0
 Update the converted representation of a transient object. More...
 
virtual StatusCode updateRepRefs (IOpaqueAddress *pAddress, DataObject *pObject)=0
 Update the references of an already converted object. More...
 
- Public Member Functions inherited from IInterface
virtual void * i_cast (const InterfaceID &) const =0
 main cast function More...
 
virtual std::vector< std::stringgetInterfaceNames () const =0
 Returns a vector of strings containing the names of all the implemented interfaces. More...
 
virtual unsigned long addRef ()=0
 Increment the reference count of Interface instance. More...
 
virtual unsigned long release ()=0
 Release Interface instance. More...
 
virtual unsigned long refCount () const =0
 Current reference count. More...
 
virtual StatusCode queryInterface (const InterfaceID &ti, void **pp)=0
 Set the void** to the pointer to the requested interface of the instance. More...
 
virtual ~IInterface ()=default
 Virtual destructor. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from IInterface
static const InterfaceIDinterfaceID ()
 Return an instance of InterfaceID identifying the interface. More...
 

Detailed Description

The conversion service interface allows to:

  • Add, get and remove data converters from the service.
  • Create objects using converters: e.g. create the transient representation of a persistent object.
  • convert objects - the opposite of create: e.g. convert transient objects into the persistent representation of these objects. The objects to be converted are defined by a data selector object.
  • update objects which already exist: e.g. update the existing persistent representation of objects which were read from the persistent store and should be modified. The objects to be converted are defined by a data selector object.
  • Class specific aspects of the creation/update/conversion mechanism must be handled by the converters, the common aspects will be handled by the service.
Author
Markus Frank
Version
1.2
  • Version 1.2 Remove createReps, updateReps - replaced by interface IConverter

Definition at line 47 of file IConversionSvc.h.

Member Enumeration Documentation

◆ Status

Status code definitions.

Enumerator
INVALID_ADDRESS 

Invalid address information.

INVALID_OBJECT 

Object to be converted is invalid.

NO_MEMORY 

No more memory available.

BAD_STORAGE_TYPE 

Invalid storage type.

NO_SOURCE_OBJECT 

Error retrieving source data from source store.

NO_CONVERTER 

No proper converter is available to the service.

Definition at line 102 of file IConversionSvc.h.

104  INVALID_ADDRESS = static_cast<StatusCode::code_t>( IInterface::Status::LAST_ERROR ) + 1,
106  INVALID_OBJECT,
108  NO_MEMORY,
110  BAD_STORAGE_TYPE,
112  NO_SOURCE_OBJECT,
114  NO_CONVERTER
115  };

Member Function Documentation

◆ addConverter() [1/2]

virtual StatusCode IConversionSvc::addConverter ( const CLID clid)
pure virtual

Add converter object to conversion service.

Parameters
clidClass ID of the converter needed
Returns
Status code indicating success or failure.

◆ addConverter() [2/2]

virtual StatusCode IConversionSvc::addConverter ( IConverter pConverter)
pure virtual

Add converter object to conversion service.

Parameters
pConverterPointer to converter object
Returns
Status code indicating success or failure.

◆ commitOutput()

virtual StatusCode IConversionSvc::commitOutput ( const std::string outputFile,
bool  do_commit 
)
pure virtual

Commit pending output.

Parameters
outputFileString containing output file
do_commitif true commit the output and flush eventually pending items to the database if false, discard pending buffers. Note: The possibility to commit or roll-back depends on the database technology used!
Returns
Status code indicating success or failure.

◆ connectOutput() [1/2]

virtual StatusCode IConversionSvc::connectOutput ( const std::string outputFile)
pure virtual

Connect the output file to the service.

Parameters
outputFileString containing output file
Returns
Status code indicating success or failure.

◆ connectOutput() [2/2]

virtual StatusCode IConversionSvc::connectOutput ( const std::string outputFile,
const std::string openMode 
)
pure virtual

Connect the output file to the service with open mode.

Parameters
outputFileString containing output file
openModeString containing opening mode of the output file
Returns
Status code indicating success or failure.

◆ converter()

virtual IConverter* IConversionSvc::converter ( const CLID clid)
pure virtual

Retrieve converter from list.

Parameters
clidthe clid of the converter
Returns
the converter corresponding to clid or 0 if none was found

◆ DeclareInterfaceID()

IConversionSvc::DeclareInterfaceID ( IConversionSvc  ,
,
 
)

◆ removeConverter()

virtual StatusCode IConversionSvc::removeConverter ( const CLID clid)
pure virtual

Remove converter object from conversion service (if present).

The converter is defined by the class type of the objects created.

Parameters
clidClass ID of the converter
Returns
Status code indicating success or failure.

The documentation for this class was generated from the following file:
StatusCode::code_t
unsigned long code_t
type of StatusCode value
Definition: StatusCode.h:67
IInterface::Status::LAST_ERROR
@ LAST_ERROR
Last error.