ATLAS Offline Software
IAthenaRootCnvSvc.h
Go to the documentation of this file.
1 
3 /*
4  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 #ifndef ATHENAROOTKERNEL_IATHENAROOTCNVSVC_H
8 #define ATHENAROOTKERNEL_IATHENAROOTCNVSVC_H 1
9 
15 // fwk includes
16 #include "GaudiKernel/IConversionSvc.h"
17 #include "GaudiKernel/IAddressCreator.h"
18 #include "DataModelRoot/RootType.h"
19 
20 // stl includes
21 #include <typeinfo>
22 
23 // fwd declares
24 class Token;
25 class ITPCnvBase;
26 
30 class IAthenaRootCnvSvc : virtual public ::IConversionSvc, virtual public ::IAddressCreator {
31 public:
32  virtual ~IAthenaRootCnvSvc();
33 
35  static const InterfaceID& interfaceID() {
36  static const InterfaceID s_iid("IAthenaRootCnvSvc", 1, 0);
37  return s_iid;
38  }
39 
42  virtual RootType getType(const CLID& clid) const = 0;
43  virtual RootType getType(const std::type_info& type) const = 0;
44 
46  virtual const Token* writeObject(const std::string& key,
47  const RootType& typeDesc,
48  const void* pObj,
49  ITPCnvBase* tpConverter = 0) = 0;
51 
53  virtual ITPCnvBase* getTPConverter(const CLID& clid) const = 0;
54 };
55 
56 #endif /* !ATHENAROOTKERNEL_IATHENAROOTCNVSVC_H */
IAthenaRootCnvSvc
This class provides the interface between Athena and RootSvc.
Definition: IAthenaRootCnvSvc.h:30
IAthenaRootCnvSvc::getType
virtual RootType getType(const std::type_info &type) const =0
IAthenaRootCnvSvc::interfaceID
static const InterfaceID & interfaceID()
Retrieve interface ID.
Definition: IAthenaRootCnvSvc.h:35
IAthenaRootCnvSvc::writeObject
virtual const Token * writeObject(const std::string &key, const RootType &typeDesc, const void *pObj, ITPCnvBase *tpConverter=0)=0
Write object of a given class to Root, using optional T/P converter.
Token
This class provides a token that identifies in a unique way objects on the persistent storage.
Definition: Token.h:21
IAthenaRootCnvSvc::getTPConverter
virtual ITPCnvBase * getTPConverter(const CLID &clid) const =0
Get T/P converter for a transient class.
CLID
uint32_t CLID
The Class ID type.
Definition: Event/xAOD/xAODCore/xAODCore/ClassID_traits.h:47
ITPCnvBase
Definition: ITPCnvBase.h:24
IAthenaRootCnvSvc::~IAthenaRootCnvSvc
virtual ~IAthenaRootCnvSvc()
Definition: IAthenaRootCnvSvc.cxx:17
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
RootType.h
IAthenaRootCnvSvc::getType
virtual RootType getType(const CLID &clid) const =0
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37
TScopeAdapter
Definition: RootType.h:119