The data converters are responsible to translate data from one representation into another.
More...
|
| DeclareInterfaceID (IConverter, 3, 0) |
| InterfaceID. More...
|
|
virtual StatusCode | initialize ()=0 |
| Initialize the converter. More...
|
|
virtual StatusCode | finalize ()=0 |
| Terminate the converter. More...
|
|
virtual const CLID & | objType () 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...
|
|
virtual void * | i_cast (const InterfaceID &) const =0 |
| main cast function More...
|
|
virtual std::vector< std::string > | getInterfaceNames () 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...
|
|
The data converters are responsible to translate data from one representation into another.
Concrete examples are e.g. converters creating transient objects representing parts of an event from the persistent (and disk based) representations. Converters will have to deal with the technology both representations are based on: in the upper example they have to know about the database internals as well as the structure of the transient representations. The converters know about the mechanism to retrieve persistent objects (ZEBRA, Objectivity, ) and only pass abstract instances of the converted objects, hence shielding the calling service from internals.
Data converters are meant to be light. This means there should not be all-in-one converters, which are able to convert the "world", but rather many converters. Each converter is then able to create a representation of a given type.
In order to function a converter must be able to
-
Answer (when asked) which kind of representation the converter is able to create.
-
Retrieve the source object from the source store.
-
Create the requested representation using the information contained in the source object.
-
Inform the registry entry of the created object that the object is now loaded.
-
This registry entry is located in the data store which is supposed to manage the requested object.
-
Register all leafs of the created object with the data store which is supposed to manage the requested object. Registering does not mean to create these representations, but rather to inform about the existence.
The interface should cover the entry points of concrete converter instances in order to serve conversion requests.
- Author
- Markus Frank
- Version
- 1.0
Definition at line 58 of file IConverter.h.