The Gaudi Framework  master (d98a2936)
IConverter.h
Go to the documentation of this file.
1 /***********************************************************************************\
2 * (c) Copyright 1998-2025 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 #pragma once
12 
13 #include <GaudiKernel/ClassID.h>
14 #include <GaudiKernel/IInterface.h>
15 
16 class IDataProviderSvc;
17 class IAddressCreator;
18 class IConversionSvc;
19 class IOpaqueAddress;
20 class DataObject;
21 template <class T>
22 class SmartIF;
23 
65 class GAUDI_API IConverter : virtual public IInterface {
66 public:
69 
74  virtual StatusCode initialize() = 0;
75 
80  virtual StatusCode finalize() = 0;
81 
85  virtual const CLID& objType() const = 0;
86 
91  virtual long repSvcType() const = 0;
92 
97  virtual StatusCode setDataProvider( IDataProviderSvc* pService ) = 0;
98 
103 
108  virtual StatusCode setConversionSvc( IConversionSvc* pService ) = 0;
109 
114 
120 
125 
137  virtual StatusCode createObj( IOpaqueAddress* pAddress, DataObject*& refpObject ) = 0;
138 
148  virtual StatusCode fillObjRefs( IOpaqueAddress* pAddress, DataObject* pObject ) = 0;
149 
159  virtual StatusCode updateObj( IOpaqueAddress* pAddress, DataObject* refpObject ) = 0;
160 
171  virtual StatusCode updateObjRefs( IOpaqueAddress* pAddress, DataObject* pObject ) = 0;
172 
180  virtual StatusCode createRep( DataObject* pObject, IOpaqueAddress*& refpAddress ) = 0;
181 
188  virtual StatusCode fillRepRefs( IOpaqueAddress* pAddress, DataObject* pObject ) = 0;
189 
196  virtual StatusCode updateRep( IOpaqueAddress* pAddress, DataObject* pObject ) = 0;
197 
205  virtual StatusCode updateRepRefs( IOpaqueAddress* pAddress, DataObject* pObject ) = 0;
206 };
IConverter::DeclareInterfaceID
DeclareInterfaceID(IConverter, 3, 0)
InterfaceID.
IAddressCreator
Definition: IAddressCreator.h:33
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:28
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:65
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:64
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:22
CLID
unsigned int CLID
Class ID definition.
Definition: ClassID.h:16
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:225
DataObject
Definition: DataObject.h:37
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:48
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:49
IConversionSvc
Definition: IConversionSvc.h:43