ATLAS Offline Software
Loading...
Searching...
No Matches
AthExElephantinoCnv.cxx
Go to the documentation of this file.
1
2
3/*
4 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
5*/
6
7// ElephantinoCnv.cxx
8// Implementation file for class ElephantinoCnv
9// Author: S.Binet<binet@cern.ch>
11
12// STL includes
13
14// Framework includes
15#include "GaudiKernel/MsgStream.h"
16#include "GaudiKernel/IToolSvc.h"
17#include "GaudiKernel/IAlgTool.h"
19
20// AthExThinning includes
22#include "AthExElephantinoCnv.h"
23
27
31
33// Protected methods:
35
38 AthExElephantino_PERS>(svcLocator)
39{
40 if ( 0 == svcLocator ) {
41 throw std::runtime_error("NULL pointer to ISvcLocator !!");
42 }
43
44}
45
46
49{
50 MsgStream msg( msgSvc(), "AthExElephantinoCnv" );
51
53 AthExElephantino_PERS *persObj = cnv.createPersistent(transCont, msg);
54
55 msg << MSG::DEBUG << "::createPersistent [Success]" << endmsg;
56 return persObj;
57}
58
60{
61 MsgStream msg( msgSvc(), "AthExElephantinoConverter" );
62
63 AthExElephantino *transObj = 0;
64
65 static const pool::Guid p1_guid("F90BE215-64AD-45E3-B5E4-6AD7DE35BDF9");
66
67 if ( compareClassGuid(p1_guid) ) {
68
69 // using unique_ptr ensures deletion of the persistent object
70 std::unique_ptr<AthExElephantino_p1> persObj( poolReadObject<AthExElephantino_p1>() );
72 transObj = cnv.createTransient( persObj.get(), msg );
73
74 } else {
75 throw std::runtime_error("Unsupported persistent version of Elephantino");
76 }
77
78 return transObj;
79}
#define endmsg
AthExElephantino_p1 AthExElephantino_PERS
AthExElephantinoCnv(ISvcLocator *svcloc)
Create the converter from the service locator.
virtual AthExElephantino * createTransient()
Build the transient representation from a persistent one.
virtual AthExElephantino_PERS * createPersistent(AthExElephantino *transCont)
Build the persistent representation from the transient one.
object with 4 legs, so it is best modeled with a vector of ElementLink.
virtual PERS * createPersistent(const TRANS *transObj, MsgStream &log)
Create persistent representation of a transient object.
virtual TRANS * createTransient(const PERS *persObj, MsgStream &log)
Create transient representation of a persistent object.
Compatibility for old converter classes that don't get passed the key.