| The Gaudi Framework v30r0 (c919700c)

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- File List
- File Members

ConversionSvc.cpp
Go to the documentation of this file.
1 #define GAUDIKERNEL_CONVERSIONSVC_CPP
2
3 #include "GaudiKernel/ConversionSvc.h"
4 #include "GaudiKernel/Converter.h"
5 #include "GaudiKernel/DataObject.h"
6 #include "GaudiKernel/IConverter.h"
7 #include "GaudiKernel/IDataProviderSvc.h"
8 #include "GaudiKernel/IOpaqueAddress.h"
9 #include "GaudiKernel/MsgStream.h"
10 #include "GaudiKernel/System.h"
11
12 namespace
13 {
14
15 auto CnvTest = []( CLID clid ) { return [clid]( const auto& i ) { return i.clID() == clid; }; };
16
17 enum CnvSvcAction {
18 CREATE_OBJ,
19 FILL_OBJ_REFS,
20 UPDATE_OBJ,
21 UPDATE_OBJ_REFS,
22 CREATE_REP,
23 FILL_REP_REFS,
24 UPDATE_REP,
25 UPDATE_REP_REFS
26 };
27 }
28
29 StatusCode ConversionSvc::makeCall( int typ, bool ignore_add, bool ignore_obj, bool update, IOpaqueAddress*& pAddress,
30 DataObject*& pObject )
31 {
32 if ( !pAddress && !ignore_add ) return INVALID_ADDRESS;
33 if ( !pObject && !ignore_obj ) return INVALID_OBJECT;
34 const CLID& obj_class =
35 ( pObject && !ignore_obj ) ? pObject->clID() : ( pAddress && !ignore_add ) ? pAddress->clID() : CLID_NULL;
36 IConverter* cnv = converter( obj_class );
37 if ( !cnv && pObject ) {
38 // Give it a try to autoload the class (dictionary) for which the converter is needed
39 loadConverter( pObject );
40 cnv = converter( obj_class );
41 }
42
43 StatusCode status( StatusCode::FAILURE, true );
44 if ( cnv ) {
45 switch ( typ ) {
46 case CREATE_OBJ:
47 pObject = nullptr;
48 status = cnv->createObj( pAddress, pObject );
49 break;
50 case FILL_OBJ_REFS:
51 status = cnv->fillObjRefs( pAddress, pObject );
52 break;
53 case UPDATE_OBJ:
54 status = cnv->updateObj( pAddress, pObject );
55 break;
56 case UPDATE_OBJ_REFS:
57 status = cnv->updateObjRefs( pAddress, pObject );
58 break;
59 case CREATE_REP:
60 pAddress = nullptr;
61 status = cnv->createRep( pObject, pAddress );
62 break;
63 case FILL_REP_REFS:
64 status = cnv->fillRepRefs( pAddress, pObject );
65 break;
66 case UPDATE_REP:
67 status = cnv->updateRep( pAddress, pObject );
68 break;
69 case UPDATE_REP_REFS:
70 status = cnv->updateRepRefs( pAddress, pObject );
71 break;
72 default:
73 status = StatusCode::FAILURE;
74 break;
75 }
76 if ( status.isSuccess() && update ) {
77 status = updateServiceState( pAddress );
78 }
79 return status;
80 }
81 status.ignore();
82 info() << "No converter for object ";
83 if ( pObject ) {
84 msgStream() << System::typeinfoName( typeid( *pObject ) );
85 }
86 msgStream() << " CLID= " << obj_class << endmsg;
87 return NO_CONVERTER;
88 }
89
90 void ConversionSvc::loadConverter( DataObject* ) {}
91
92 StatusCode ConversionSvc::updateServiceState( IOpaqueAddress* /*pAddress */ ) { return StatusCode::SUCCESS; }
93
95 StatusCode ConversionSvc::createObj( IOpaqueAddress* pAddress, DataObject*& refpObj )
96 {
97 return makeCall( CREATE_OBJ, false, true, false, pAddress, refpObj );
98 }
99
101 StatusCode ConversionSvc::fillObjRefs( IOpaqueAddress* pAddress, DataObject* pObj )
102 {
103 return makeCall( FILL_OBJ_REFS, false, true, true, pAddress, pObj );
104 }
105
107 StatusCode ConversionSvc::updateObj( IOpaqueAddress* pAddress, DataObject* pObj )
108 {
109 return makeCall( UPDATE_OBJ, false, true, false, pAddress, pObj );
110 }
111
113 StatusCode ConversionSvc::updateObjRefs( IOpaqueAddress* pAddress, DataObject* pObj )
114 {
115 return makeCall( UPDATE_OBJ_REFS, false, true, true, pAddress, pObj );
116 }
117
119 StatusCode ConversionSvc::createRep( DataObject* pObj, IOpaqueAddress*& refpAddress )
120 {
121 return makeCall( CREATE_REP, true, false, false, refpAddress, pObj );
122 }
123
125 StatusCode ConversionSvc::fillRepRefs( IOpaqueAddress* pAddress, DataObject* pObj )
126 {
127 return makeCall( FILL_REP_REFS, true, false, false, pAddress, pObj );
128 }
129
131 StatusCode ConversionSvc::updateRep( IOpaqueAddress* pAddress, DataObject* pObj )
132 {
133 return makeCall( UPDATE_REP, true, false, false, pAddress, pObj );
134 }
135
137 StatusCode ConversionSvc::updateRepRefs( IOpaqueAddress* pAddress, DataObject* pObj )
138 {
139 return makeCall( UPDATE_REP_REFS, true, false, false, pAddress, pObj );
140 }
141
143 IConverter* ConversionSvc::converter( const CLID& clid )
144 {
145 IConverter* cnv = nullptr;
146 auto i = std::find_if( m_workers.begin(), m_workers.end(), CnvTest( clid ) );
147 if ( i != m_workers.end() ) cnv = i->converter();
148 if ( !cnv ) {
149 StatusCode status = addConverter( clid );
150 if ( status.isSuccess() ) {
151 i = std::find_if( m_workers.begin(), m_workers.end(), CnvTest( clid ) );
152 if ( i != m_workers.end() ) cnv = i->converter();
153 }
154 }
155 return cnv;
156 }
157
159 StatusCode ConversionSvc::setDataProvider( IDataProviderSvc* pDataSvc )
160 {
161 if ( !pDataSvc ) return StatusCode::SUCCESS; // Atlas does not use DataSvc
162 m_dataSvc = pDataSvc;
163 for ( auto& i : m_workers ) {
164 IConverter* cnv = i.converter();
165 if ( cnv && cnv->setDataProvider( m_dataSvc ).isFailure() ) {
166 error() << "setting Data Provider" << endmsg;
167 }
168 }
169 return StatusCode::SUCCESS;
170 }
171
173 SmartIF<IDataProviderSvc>& ConversionSvc::dataProvider() const { return m_dataSvc; }
174
176 StatusCode ConversionSvc::setAddressCreator( IAddressCreator* creator )
177 {
178 m_addressCreator = creator;
179 for ( auto& i : m_workers ) {
180 auto* cnv = i.converter();
181 if ( cnv ) {
182 if ( cnv->setAddressCreator( m_addressCreator ).isFailure() ) {
183 error() << "setting Address Creator" << endmsg;
184 }
185 }
186 }
187 return StatusCode::SUCCESS;
188 }
189
191 SmartIF<IAddressCreator>& ConversionSvc::addressCreator() const { return m_addressCreator; }
192
194 StatusCode ConversionSvc::setConversionSvc( IConversionSvc* /* svc */ ) { return StatusCode::FAILURE; }
195
197 SmartIF<IConversionSvc>& ConversionSvc::conversionSvc() const { return m_cnvSvc; }
198
200 StatusCode ConversionSvc::addConverter( const CLID& clid )
201 {
202 // First look for the more specific converter
203 long typ = repSvcType();
204 IConverter* pConverter = createConverter( typ, clid, nullptr );
205 if ( pConverter ) {
206 StatusCode status = configureConverter( typ, clid, pConverter );
207 if ( status.isSuccess() ) {
208 status = initializeConverter( typ, clid, pConverter );
209 if ( status.isSuccess() ) {
210 status = activateConverter( typ, clid, pConverter );
211 if ( status.isSuccess() ) {
212 long conv_typ = pConverter->repSvcType();
213 const CLID& conv_clid = pConverter->objType();
214 typ = ( typ < 0xFF ) ? typ : typ & 0xFFFFFF00;
215 conv_typ = ( conv_typ < 0xFF ) ? conv_typ : conv_typ & 0xFFFFFF00;
216 if ( conv_typ == typ && conv_clid == clid ) {
217 return addConverter( pConverter );
218 }
219 }
220 }
221 }
222 pConverter->release();
223 }
224 return NO_CONVERTER;
225 }
226
228 StatusCode ConversionSvc::addConverter( IConverter* pConverter )
229 {
230 if ( pConverter ) {
231 const CLID& clid = pConverter->objType();
232 removeConverter( clid ).ignore();
233 m_workers.emplace_back( clid, pConverter );
234 return StatusCode::SUCCESS;
235 }
236 return NO_CONVERTER;
237 }
238
240 StatusCode ConversionSvc::removeConverter( const CLID& clid )
241 {
242
243 auto i = std::partition( std::begin( m_workers ), std::end( m_workers ),
244 [f = CnvTest( clid )]( const WorkerEntry& we ) { return !f( we ); } );
245 if ( i == std::end( m_workers ) ) return NO_CONVERTER;
246 std::for_each( i, std::end( m_workers ), []( WorkerEntry& w ) { w.converter()->finalize().ignore(); } );
247 m_workers.erase( i, std::end( m_workers ) );
248 return StatusCode::SUCCESS;
249 }
250
252 StatusCode ConversionSvc::initialize() { return Service::initialize(); }
253
255 StatusCode ConversionSvc::finalize()
256 {
257 // Release all workers.
258 for ( auto& i : m_workers ) {
259 if ( i.converter()->finalize().isFailure() ) {
260 error() << "finalizing worker" << endmsg;
261 }
262 }
263 m_workers.clear();
264 // release interfaces
265 m_addressCreator = nullptr;
266 m_dataSvc = nullptr;
267 m_cnvSvc = nullptr;
268 return Service::finalize();
269 }
270
272 IConverter* ConversionSvc::createConverter( long typ, const CLID& clid, const ICnvFactory* /*fac*/ )
273 {
274 IConverter* pConverter = Converter::Factory::create( ConverterID( typ, clid ), serviceLocator().get() );
275 if ( !pConverter ) {
276 typ = ( typ < 0xFF ) ? typ : typ & 0xFFFFFF00;
277 pConverter = Converter::Factory::create( ConverterID( typ, clid ), serviceLocator().get() );
278 }
279 return pConverter;
280 }
281
283 StatusCode ConversionSvc::configureConverter( long /* typ */, const CLID& /* clid */, IConverter* pConverter )
284 {
285 if ( !pConverter ) return NO_CONVERTER;
286 pConverter->setConversionSvc( this ).ignore();
287 pConverter->setAddressCreator( m_addressCreator ).ignore();
288 pConverter->setDataProvider( m_dataSvc ).ignore();
289 return StatusCode::SUCCESS;
290 }
291
293 StatusCode ConversionSvc::initializeConverter( long /* typ */, const CLID& /* clid */, IConverter* pConverter )
294 {
295 return pConverter ? pConverter->initialize() : NO_CONVERTER;
296 }
297
299 StatusCode ConversionSvc::activateConverter( long /* typ */, const CLID& /* clid */, IConverter* pConverter )
300 {
301 return pConverter ? StatusCode::SUCCESS : StatusCode( NO_CONVERTER );
302 }
303
305 const CLID& ConversionSvc::objType() const { return CLID_NULL; }
306
308 long ConversionSvc::repSvcType() const { return m_type; }
309
311 StatusCode ConversionSvc::connectOutput( const std::string& outputFile, const std::string& /* openMode */ )
312 {
313 return connectOutput( outputFile );
314 }
315
317 StatusCode ConversionSvc::connectOutput( const std::string& /* outputFile */ ) { return StatusCode::SUCCESS; }
318
320 StatusCode ConversionSvc::commitOutput( const std::string&, bool ) { return StatusCode::SUCCESS; }
321
323 StatusCode ConversionSvc::createAddress( long /* svc_type */, const CLID& /* clid */,
324 const std::string* /* par */, const unsigned long* /* ip */,
325 IOpaqueAddress*& refpAddress )
326 {
327 refpAddress = nullptr;
328 return StatusCode::FAILURE;
329 }
330
332 StatusCode ConversionSvc::convertAddress( const IOpaqueAddress* /* pAddress */, std::string& refAddress )
333 {
334 refAddress.clear();
335 return StatusCode::FAILURE;
336 }
337
339 StatusCode ConversionSvc::createAddress( long /* svc_type */, const CLID& /* clid */,
340 const std::string& /* refAddress */, IOpaqueAddress*& refpAddress )
341 {
342 refpAddress = nullptr;
343 return StatusCode::FAILURE;
344 }
345
347 ConversionSvc::ConversionSvc( const std::string& name, ISvcLocator* svc, long type )
348 : base_class( name, svc ), m_cnvSvc( this )
349 {
350 m_type = type;
351 m_dataSvc = nullptr;
352 setAddressCreator( this ).ignore();
353 }
ConversionSvc::WorkerEntry::converter
IConverter * converter()
Definition: ConversionSvc.h:78
System.h
CREATE_OBJ
Definition: PersistencySvc.cpp:46
UPDATE_OBJ_REFS
Definition: PersistencySvc.cpp:49
StatusCode::SUCCESS
Definition: StatusCode.h:29
Service::initialize
StatusCode initialize() override
Definition: Service.cpp:64
ConversionSvc::addressCreator
SmartIF< IAddressCreator > & addressCreator() const override
Retrieve address creator facility.
Definition: ConversionSvc.cpp:191
SmartIF< IDataProviderSvc >
ConversionSvc::configureConverter
virtual StatusCode configureConverter(long typ, const CLID &clid, IConverter *cnv)
Configure the new converter before initialize is called.
Definition: ConversionSvc.cpp:283
ConversionSvc::makeCall
StatusCode makeCall(int typ, bool ignore_add, bool ignore_obj, bool update, IOpaqueAddress *&pAddress, DataObject *&pObject)
Definition: ConversionSvc.cpp:29
ISvcLocator
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
Definition: ISvcLocator.h:25
IConverter
The data converters are responsible to translate data from one representation into another...
Definition: IConverter.h:58
IOpaqueAddress::clID
virtual const CLID & clID() const =0
Retrieve class information from link.
Service::name
const std::string & name() const override
Retrieve name of the service.
Definition: Service.cpp:289
IConverter::createObj
virtual StatusCode createObj(IOpaqueAddress *pAddress, DataObject *&refpObject)=0
Create the transient representation of an object.
Service::finalize
StatusCode finalize() override
Definition: Service.cpp:174
IConversionSvc
Definition: IConversionSvc.h:37
ConversionSvc::updateObjRefs
StatusCode updateObjRefs(IOpaqueAddress *pAddress, DataObject *pObject) override
Implementation of IConverter: Update the references of an updated transient object.
Definition: ConversionSvc.cpp:113
MsgStream.h
CommonMessagingBase::info
MsgStream & info() const
shortcut for the method msgStream(MSG::INFO)
Definition: CommonMessaging.h:112
IConverter::objType
virtual const CLID & objType() const =0
Retrieve the class type of objects the converter produces.
ConversionSvc::updateRep
StatusCode updateRep(IOpaqueAddress *pAddress, DataObject *pObject) override
Implementation of IConverter: Update the converted representation of a transient object.
Definition: ConversionSvc.cpp:131
System::typeinfoName
GAUDI_API const std::string typeinfoName(const std::type_info &)
Get platform independent information about the class type.
Definition: System.cpp:336
ConversionSvc.h
ConversionSvc::ConversionSvc
ConversionSvc(const std::string &name, ISvcLocator *svc, long type)
Standard Constructor.
Definition: ConversionSvc.cpp:347
StatusCode::isSuccess
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:50
ConversionSvc::createRep
StatusCode createRep(DataObject *pObject, IOpaqueAddress *&refpAddress) override
Implementation of IConverter: Convert the transient object to the requested representation.
Definition: ConversionSvc.cpp:119
IAddressCreator
IAddressCreator interface definition.
Definition: IAddressCreator.h:28
IConverter::setDataProvider
virtual StatusCode setDataProvider(IDataProviderSvc *pService)=0
Set Data provider service.
ConversionSvc::WorkerEntry
Definition: ConversionSvc.h:47
ConversionSvc::updateRepRefs
StatusCode updateRepRefs(IOpaqueAddress *pAddress, DataObject *pObject) override
Implementation of IConverter: Update the references of an already converted object.
Definition: ConversionSvc.cpp:137
FILL_OBJ_REFS
Definition: PersistencySvc.cpp:47
std::end
T end(T...args)
ConversionSvc::m_addressCreator
SmartIF< IAddressCreator > m_addressCreator
Pointer to the address creation service interface.
Definition: ConversionSvc.h:211
IConverter::createRep
virtual StatusCode createRep(DataObject *pObject, IOpaqueAddress *&refpAddress)=0
Convert the transient object to the requested representation.
IDataProviderSvc
Data provider interface definition.
Definition: IDataProviderSvc.h:46
IConverter::updateRepRefs
virtual StatusCode updateRepRefs(IOpaqueAddress *pAddress, DataObject *pObject)=0
Update the references of an already converted object.
StatusCode::isFailure
bool isFailure() const
Test for a status code of FAILURE.
Definition: StatusCode.h:61
ConversionSvc::loadConverter
virtual void loadConverter(DataObject *pObject)
Load converter or dictionary needed by the converter.
Definition: ConversionSvc.cpp:90
std::partition
T partition(T...args)
IConverter::updateObj
virtual StatusCode updateObj(IOpaqueAddress *pAddress, DataObject *refpObject)=0
Update the transient object from the other representation.
std::string
STL class.
IConverter::setConversionSvc
virtual StatusCode setConversionSvc(IConversionSvc *pService)=0
Set conversion service the converter is connected to.
CommonMessagingBase::error
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
Definition: CommonMessaging.h:106
ConversionSvc::converter
IConverter * converter(const CLID &wanted) override
Retrieve converter from list.
Definition: ConversionSvc.cpp:143
IDataProviderSvc.h
FILL_REP_REFS
Definition: PersistencySvc.cpp:51
DataObject::clID
virtual const CLID & clID() const
Retrieve reference to class definition structure.
Definition: DataObject.cpp:62
ConversionSvc::removeConverter
StatusCode removeConverter(const CLID &clid) override
Remove converter object from conversion service (if present).
Definition: ConversionSvc.cpp:240
ConversionSvc::setAddressCreator
StatusCode setAddressCreator(IAddressCreator *creator) override
Set address creator facility.
Definition: ConversionSvc.cpp:176
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
MsgStream::clear
void clear(STATE_TYPE _i=std::ios_base::failbit)
Definition: MsgStream.h:187
gaudirun.type
type
Definition: gaudirun.py:133
ConversionSvc::dataProvider
SmartIF< IDataProviderSvc > & dataProvider() const override
Implementation of IConverter: Get Data provider service.
Definition: ConversionSvc.cpp:173
IConverter::updateObjRefs
virtual StatusCode updateObjRefs(IOpaqueAddress *pAddress, DataObject *pObject)=0
Update the references of an updated transient object.
ConversionSvc::fillRepRefs
StatusCode fillRepRefs(IOpaqueAddress *pAddress, DataObject *pObject) override
Implementation of IConverter: Resolve the references of the converted object.
Definition: ConversionSvc.cpp:125
CnvSvcAction
CnvSvcAction
Definition: PersistencySvc.cpp:45
IConverter::updateRep
virtual StatusCode updateRep(IOpaqueAddress *pAddress, DataObject *pObject)=0
Update the converted representation of a transient object.
ConversionSvc::createAddress
StatusCode createAddress(long svc_type, const CLID &clid, const std::string *par, const unsigned long *ip, IOpaqueAddress *&refpAddress) override
Create a Generic address using explicit arguments to identify a single object.
Definition: ConversionSvc.cpp:323
CLID
unsigned int CLID
Class ID definition.
Definition: ClassID.h:8
std::string::clear
T clear(T...args)
IConverter::initialize
virtual StatusCode initialize()=0
Initialize the converter.
ConversionSvc::convertAddress
StatusCode convertAddress(const IOpaqueAddress *pAddress, std::string &refAddress) override
Convert an address to string form.
Definition: ConversionSvc.cpp:332
ConversionSvc::updateServiceState
virtual StatusCode updateServiceState(IOpaqueAddress *pAddress)
Update state of the service.
Definition: ConversionSvc.cpp:92
ConversionSvc::m_dataSvc
SmartIF< IDataProviderSvc > m_dataSvc
Pointer to data provider service.
Definition: ConversionSvc.h:209
IOpaqueAddress.h
ConversionSvc::createObj
StatusCode createObj(IOpaqueAddress *pAddress, DataObject *&refpObject) override
Implementation of IConverter: Create the transient representation of an object.
Definition: ConversionSvc.cpp:95
IConverter::setAddressCreator
virtual StatusCode setAddressCreator(IAddressCreator *creator)=0
Set address creator facility.
ConversionSvc::fillObjRefs
StatusCode fillObjRefs(IOpaqueAddress *pAddress, DataObject *pObject) override
Implementation of IConverter: Resolve the references of the created transient object.
Definition: ConversionSvc.cpp:101
std::find_if
T find_if(T...args)
ConversionSvc::initializeConverter
virtual StatusCode initializeConverter(long typ, const CLID &clid, IConverter *cnv)
Initialize the new converter.
Definition: ConversionSvc.cpp:293
IConverter::fillObjRefs
virtual StatusCode fillObjRefs(IOpaqueAddress *pAddress, DataObject *pObject)=0
Resolve the references of the created transient object.
IInterface::release
virtual unsigned long release()=0
Release Interface instance.
IConverter::repSvcType
virtual long repSvcType() const =0
Retrieve the class type of the data store the converter uses.
std::begin
T begin(T...args)
ConversionSvc::m_cnvSvc
SmartIF< IConversionSvc > m_cnvSvc
Pointer to the IConversionSvc interface of this.
Definition: ConversionSvc.h:213
ConversionSvc::updateObj
StatusCode updateObj(IOpaqueAddress *pAddress, DataObject *refpObject) override
Implementation of IConverter: Update the transient object from the other representation.
Definition: ConversionSvc.cpp:107
ConversionSvc::setDataProvider
StatusCode setDataProvider(IDataProviderSvc *pService) override
Implementation of IConverter: Set Data provider service.
Definition: ConversionSvc.cpp:159
ConversionSvc::m_type
long m_type
Conversion service type.
Definition: ConversionSvc.h:215
CommonMessagingBase::msgStream
MsgStream & msgStream() const
Return an uninitialized MsgStream.
Definition: CommonMessaging.h:78
ConversionSvc::repSvcType
long repSvcType() const override
Retrieve the class type of the data store the converter uses.
Definition: ConversionSvc.cpp:308
ConversionSvc::commitOutput
StatusCode commitOutput(const std::string &output, bool do_commit) override
Commit pending output.
Definition: ConversionSvc.cpp:320
CommonMessaging
Definition: CommonMessaging.h:62
ConversionSvc::createConverter
virtual IConverter * createConverter(long typ, const CLID &clid, const ICnvFactory *fac)
Create new Converter using factory.
Definition: ConversionSvc.cpp:272
CREATE_REP
Definition: PersistencySvc.cpp:50
Converter.h
StatusCode::FAILURE
Definition: StatusCode.h:29
IOpaqueAddress
Opaque address interface definition.
Definition: IOpaqueAddress.h:23
StatusCode::ignore
void ignore() const
Definition: StatusCode.h:84
UPDATE_OBJ
Definition: PersistencySvc.cpp:48
ConversionSvc::addConverter
StatusCode addConverter(const CLID &clid) override
Add converter object to conversion service.
Definition: ConversionSvc.cpp:200
std::for_each
T for_each(T...args)
ConversionSvc::m_workers
std::vector< WorkerEntry > m_workers
List of conversion workers.
Definition: ConversionSvc.h:217
ConversionSvc::setConversionSvc
StatusCode setConversionSvc(IConversionSvc *svc) override
Implementation of IConverter: Set conversion service the converter is connected to.
Definition: ConversionSvc.cpp:194
DataObject
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:30
IConverter.h
ConversionSvc::finalize
StatusCode finalize() override
stop the service.
Definition: ConversionSvc.cpp:255
IConverter::fillRepRefs
virtual StatusCode fillRepRefs(IOpaqueAddress *pAddress, DataObject *pObject)=0
Resolve the references of the converted object.
UPDATE_REP_REFS
Definition: PersistencySvc.cpp:53
Service::serviceLocator
SmartIF< ISvcLocator > & serviceLocator() const override
Retrieve pointer to service locator.
Definition: Service.cpp:292
ConversionSvc::activateConverter
virtual StatusCode activateConverter(long typ, const CLID &clid, IConverter *cnv)
Activate the new converter after initialization.
Definition: ConversionSvc.cpp:299
ConversionSvc::objType
const CLID & objType() const override
Implementation of IConverter: dummy call.
Definition: ConversionSvc.cpp:305
ConversionSvc::initialize
StatusCode initialize() override
Initialize the service.
Definition: ConversionSvc.cpp:252
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209
GaudiPython.Pythonizations.update
update
Definition: Pythonizations.py:123
ConversionSvc::connectOutput
StatusCode connectOutput(const std::string &outputFile, const std::string &openMode) override
Connect the output file to the service with open mode.
Definition: ConversionSvc.cpp:311
ConverterID
Definition: Converter.h:142
IConverter::finalize
virtual StatusCode finalize()=0
Terminate the converter.
DataObject.h
UPDATE_REP
Definition: PersistencySvc.cpp:52
ConversionSvc::conversionSvc
SmartIF< IConversionSvc > & conversionSvc() const override
Implementation of IConverter: Get conversion service the converter is connected to.
Definition: ConversionSvc.cpp:197