ATLAS Offline Software
Loading...
Searching...
No Matches
IAthenaRootCnvSvc.h
Go to the documentation of this file.
1
2
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
14
15// fwk includes
16#include "GaudiKernel/IConversionSvc.h"
17#include "GaudiKernel/IAddressCreator.h"
19
20// stl includes
21#include <typeinfo>
22
23// fwd declares
24class Token;
25class ITPCnvBase;
26
30class IAthenaRootCnvSvc : virtual public extend_interfaces<IConversionSvc, IAddressCreator> {
31public:
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 */
uint32_t CLID
The Class ID type.
TTypeAdapter RootType
Definition RootType.h:211
This class provides the interface between Athena and RootSvc.
DeclareInterfaceID(IAthenaRootCnvSvc, 1, 0)
Declare interface ID.
virtual RootType getType(const std::type_info &type) const =0
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.
virtual ITPCnvBase * getTPConverter(const CLID &clid) const =0
Get T/P converter for a transient class.
virtual RootType getType(const CLID &clid) const =0
This class provides a token that identifies in a unique way objects on the persistent storage.
Definition Token.h:21