ATLAS Offline Software
Loading...
Searching...
No Matches
AthExFatObjectCnv.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// FatObjectCnv.cxx
8// Implementation file for class FatObjectCnv
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 "AthExFatObjectCnv.h"
23
27
31
33// Protected methods:
35
36AthExFatObjectCnv::AthExFatObjectCnv(ISvcLocator* svcLocator) :
38 AthExFatObject_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(), "AthExFatObjectCnv" );
51
53 AthExFatObject_PERS *persObj = cnv.createPersistent(transCont, msg);
54
55 msg << MSG::DEBUG << "::createPersistent [Success]" << endmsg;
56 return persObj;
57}
58
60{
61 MsgStream msg( msgSvc(), "AthExFatObjectConverter" );
62
63 AthExFatObject *transObj = 0;
64
65 static const pool::Guid p1_guid("C757B4CB-7C1F-4E79-895E-C77D76FB960B");
66
67 if ( compareClassGuid(p1_guid) ) {
68
69 // using unique_ptr ensures deletion of the persistent object
70 std::unique_ptr<AthExFatObject_p1> persObj( poolReadObject<AthExFatObject_p1>() );
72 transObj = cnv.createTransient( persObj.get(), msg );
73
74 } else {
75 throw std::runtime_error("Unsupported persistent version of FatObject");
76 }
77
78 return transObj;
79}
#define endmsg
AthExFatObject_p1 AthExFatObject_PERS
AthExFatObjectCnv(ISvcLocator *svcloc)
Create the converter from the service locator.
virtual AthExFatObject * createTransient()
Build the transient representation from a persistent one.
virtual AthExFatObject_PERS * createPersistent(AthExFatObject *transCont)
Build the persistent representation from the transient one.
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.
virtual bool compareClassGuid(const Guid &clid) const
Compatibility for old converter classes that don't get passed the key.