ATLAS Offline Software
IAthenaRootCnvSvc.h
Go to the documentation of this file.
1 
3 /*
4  Copyright (C) 2002-2024 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 extend_interfaces<IConversionSvc, IAddressCreator> {
31 public:
32  virtual ~IAthenaRootCnvSvc();
33 
36 
39  virtual RootType getType(const CLID& clid) const = 0;
40  virtual RootType getType(const std::type_info& type) const = 0;
41 
43  virtual const Token* writeObject(const std::string& key,
44  const RootType& typeDesc,
45  const void* pObj,
46  ITPCnvBase* tpConverter = 0) = 0;
48 
50  virtual ITPCnvBase* getTPConverter(const CLID& clid) const = 0;
51 };
52 
53 #endif /* !ATHENAROOTKERNEL_IATHENAROOTCNVSVC_H */
IAthenaRootCnvSvc::DeclareInterfaceID
DeclareInterfaceID(IAthenaRootCnvSvc, 1, 0)
Declare interface ID.
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::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