The Gaudi Framework  v33r0 (d5ea422b)
IConverter.h
Go to the documentation of this file.
1 /***********************************************************************************\
2 * (c) Copyright 1998-2019 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 
105  virtual SmartIF<IDataProviderSvc>& dataProvider() const = 0;
106 
111  virtual StatusCode setConversionSvc( IConversionSvc* pService ) = 0;
112 
116  virtual SmartIF<IConversionSvc>& conversionSvc() const = 0;
117 
122  virtual StatusCode setAddressCreator( IAddressCreator* creator ) = 0;
123 
127  virtual SmartIF<IAddressCreator>& addressCreator() const = 0;
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
Small smart pointer class with automatic reference counting for IInterface.
Definition: IConverter.h:25
The data converters are responsible to translate data from one representation into another.
Definition: IConverter.h:68
IAddressCreator interface definition.
Data provider interface definition.
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:61
Definition of the basic interface.
Definition: IInterface.h:254
unsigned int CLID
Class ID definition.
Definition: ClassID.h:18
#define DeclareInterfaceID(iface, major, minor)
Macro to declare the interface ID when using the new mechanism of extending and implementing interfac...
Definition: IInterface.h:23
Opaque address interface definition.
#define GAUDI_API
Definition: Kernel.h:81
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:40