The Gaudi Framework  master (37c0b60a)
IConverter.h
Go to the documentation of this file.
1 /***********************************************************************************\
2 * (c) Copyright 1998-2024 CERN for the benefit of the LHCb and ATLAS collaborations *
3 * *
4 * This software is distributed under the terms of the Apache version 2 licence, *
5 * copied verbatim in the file "LICENSE". *
6 * *
7 * In applying this licence, CERN does not waive the privileges and immunities *
8 * granted to it by virtue of its status as an Intergovernmental Organization *
9 * or submit itself to any jurisdiction. *
10 \***********************************************************************************/
11 #ifndef GAUDIKERNEL_ICONVERTER_H
12 #define GAUDIKERNEL_ICONVERTER_H
13 
14 // Include files
15 #include <GaudiKernel/ClassID.h>
16 #include <GaudiKernel/IInterface.h>
17 
18 // Forward declarations
19 class IDataProviderSvc;
20 class IAddressCreator;
21 class IConversionSvc;
22 class IOpaqueAddress;
23 class DataObject;
24 template <class T>
25 class SmartIF;
26 
68 class GAUDI_API IConverter : virtual public IInterface {
69 public:
72 
77  virtual StatusCode initialize() = 0;
78 
83  virtual StatusCode finalize() = 0;
84 
88  virtual const CLID& objType() const = 0;
89 
94  virtual long repSvcType() const = 0;
95 
100  virtual StatusCode setDataProvider( IDataProviderSvc* pService ) = 0;
101 
106 
111  virtual StatusCode setConversionSvc( IConversionSvc* pService ) = 0;
112 
117 
123 
128 
140  virtual StatusCode createObj( IOpaqueAddress* pAddress, DataObject*& refpObject ) = 0;
141 
151  virtual StatusCode fillObjRefs( IOpaqueAddress* pAddress, DataObject* pObject ) = 0;
152 
162  virtual StatusCode updateObj( IOpaqueAddress* pAddress, DataObject* refpObject ) = 0;
163 
174  virtual StatusCode updateObjRefs( IOpaqueAddress* pAddress, DataObject* pObject ) = 0;
175 
183  virtual StatusCode createRep( DataObject* pObject, IOpaqueAddress*& refpAddress ) = 0;
184 
191  virtual StatusCode fillRepRefs( IOpaqueAddress* pAddress, DataObject* pObject ) = 0;
192 
199  virtual StatusCode updateRep( IOpaqueAddress* pAddress, DataObject* pObject ) = 0;
200 
208  virtual StatusCode updateRepRefs( IOpaqueAddress* pAddress, DataObject* pObject ) = 0;
209 };
210 
211 #endif // GAUDIKERNEL_ICONVERTER_H
IConverter::DeclareInterfaceID
DeclareInterfaceID(IConverter, 3, 0)
InterfaceID.
IAddressCreator
Definition: IAddressCreator.h:38
IConverter::fillRepRefs
virtual StatusCode fillRepRefs(IOpaqueAddress *pAddress, DataObject *pObject)=0
Resolve the references of the converted object.
IConverter::dataProvider
virtual SmartIF< IDataProviderSvc > & dataProvider() const =0
Get Data provider service.
IConverter::updateRepRefs
virtual StatusCode updateRepRefs(IOpaqueAddress *pAddress, DataObject *pObject)=0
Update the references of an already converted object.
IOpaqueAddress
Definition: IOpaqueAddress.h:33
ClassID.h
IConverter::finalize
virtual StatusCode finalize()=0
Terminate the converter.
IConverter::setConversionSvc
virtual StatusCode setConversionSvc(IConversionSvc *pService)=0
Set conversion service the converter is connected to.
IConverter
Definition: IConverter.h:68
IConverter::createObj
virtual StatusCode createObj(IOpaqueAddress *pAddress, DataObject *&refpObject)=0
Create the transient representation of an object.
IConverter::setDataProvider
virtual StatusCode setDataProvider(IDataProviderSvc *pService)=0
Set Data provider service.
StatusCode
Definition: StatusCode.h:65
IInterface.h
IConverter::createRep
virtual StatusCode createRep(DataObject *pObject, IOpaqueAddress *&refpAddress)=0
Convert the transient object to the requested representation.
IConverter::conversionSvc
virtual SmartIF< IConversionSvc > & conversionSvc() const =0
Get conversion service the converter is connected to.
IConverter::setAddressCreator
virtual StatusCode setAddressCreator(IAddressCreator *creator)=0
Set address creator facility.
IConverter::updateObj
virtual StatusCode updateObj(IOpaqueAddress *pAddress, DataObject *refpObject)=0
Update the transient object from the other representation.
Write.creator
creator
Definition: Write.py:23
SmartIF
Definition: IConverter.h:25
CLID
unsigned int CLID
Class ID definition.
Definition: ClassID.h:18
IConverter::repSvcType
virtual long repSvcType() const =0
Retrieve the class type of the data store the converter uses.
IConverter::updateObjRefs
virtual StatusCode updateObjRefs(IOpaqueAddress *pAddress, DataObject *pObject)=0
Update the references of an updated transient object.
IConverter::updateRep
virtual StatusCode updateRep(IOpaqueAddress *pAddress, DataObject *pObject)=0
Update the converted representation of a transient object.
IConverter::addressCreator
virtual SmartIF< IAddressCreator > & addressCreator() const =0
Get address creation interface needed to resolve links between objects.
IInterface
Definition: IInterface.h:239
DataObject
Definition: DataObject.h:36
IConverter::initialize
virtual StatusCode initialize()=0
Initialize the converter.
IConverter::fillObjRefs
virtual StatusCode fillObjRefs(IOpaqueAddress *pAddress, DataObject *pObject)=0
Resolve the references of the created transient object.
IDataProviderSvc
Definition: IDataProviderSvc.h:53
IConverter::objType
virtual const CLID & objType() const =0
Retrieve the class type of objects the converter produces.
GAUDI_API
#define GAUDI_API
Definition: Kernel.h:81
IConversionSvc
Definition: IConversionSvc.h:47