ATLAS Offline Software
IAthenaPoolCnvSvc.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef ATHENAPOOLCNVSVC_IATHENAPOOLCNVSVC_H
6 #define ATHENAPOOLCNVSVC_IATHENAPOOLCNVSVC_H
7 
14 #include "GaudiKernel/IConversionSvc.h"
16 #include "DataModelRoot/RootType.h"
17 
18 #include <string>
19 
20 // Forward declarations
21 class IOpaqueAddress;
22 class IPoolSvc;
23 class Placement;
24 class Token;
25 
26 namespace pool {
27  class DbType;
28 }
29 
30 
34 class IAthenaPoolCnvSvc : virtual public extend_interfaces<IConversionSvc, IDataShare, IAthenaPoolCleanUpSvc> {
35 public:
38 
39  virtual ~IAthenaPoolCnvSvc() {}
40 
42  virtual StatusCode disconnectOutput(const std::string& outputConnectionSpec) = 0;
43 
45  virtual IPoolSvc* getPoolSvc() = 0;
46 
51  virtual Token* registerForWrite(Placement* placement, const void* obj, const RootType& classDesc) = 0;
52 
55  virtual void setObjPtr(void*& obj, const Token* token) = 0;
56 
58  virtual bool useDetailChronoStat() const = 0;
59 
66  virtual StatusCode createAddress(long svcType,
67  const CLID& clid,
68  const std::string* par,
69  const unsigned long* ip,
70  IOpaqueAddress*& refpAddress) = 0;
71 
77  virtual StatusCode createAddress(long svcType,
78  const CLID& clid,
79  const std::string& refAddress,
80  IOpaqueAddress*& refpAddress) = 0;
81 
85  virtual StatusCode convertAddress(const IOpaqueAddress* pAddress, std::string& refAddress) = 0;
86 
89  virtual StatusCode decodeOutputSpec(std::string& connectionSpec, int& outputTech) const = 0;
90 
93 
95  virtual StatusCode cleanUp(const std::string& connection) = 0;
96 
99  virtual StatusCode setInputAttributes(const std::string& fileName) = 0;
100 };
101 
102 #endif
IAthenaPoolCnvSvc::disconnectOutput
virtual StatusCode disconnectOutput(const std::string &outputConnectionSpec)=0
Disconnect to the output connection.
Placement
This class holds all the necessary information to guide the writing of an object in a physical place.
Definition: Placement.h:19
IPoolSvc
This class provides the interface to the LCG POOL persistency software.
Definition: IPoolSvc.h:35
IDataShare.h
IAthenaPoolCnvSvc::convertAddress
virtual StatusCode convertAddress(const IOpaqueAddress *pAddress, std::string &refAddress)=0
Convert address to string form.
pool
pool namespace
Definition: libname.h:15
IAthenaPoolCleanUp
This class provides the interface for the AthenaPoolCleanUp which is used to clean up AthenaPoolConve...
Definition: IAthenaPoolCleanUp.h:19
IAthenaPoolCleanUpSvc.h
This file contains the class definition for the IAthenaPoolCleanUpSvc class.
Token
This class provides a token that identifies in a unique way objects on the persistent storage.
Definition: Token.h:21
FortranAlgorithmOptions.fileName
fileName
Definition: FortranAlgorithmOptions.py:13
IAthenaPoolCnvSvc::useDetailChronoStat
virtual bool useDetailChronoStat() const =0
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
IAthenaPoolCnvSvc::createAddress
virtual StatusCode createAddress(long svcType, const CLID &clid, const std::string *par, const unsigned long *ip, IOpaqueAddress *&refpAddress)=0
Create a Generic address using explicit arguments to identify a single object.
IAthenaPoolCnvSvc::~IAthenaPoolCnvSvc
virtual ~IAthenaPoolCnvSvc()
Definition: IAthenaPoolCnvSvc.h:39
IAthenaPoolCnvSvc::decodeOutputSpec
virtual StatusCode decodeOutputSpec(std::string &connectionSpec, int &outputTech) const =0
Extract/deduce the DB technology from the connection string/file specification.
IAthenaPoolCnvSvc::DeclareInterfaceID
DeclareInterfaceID(IAthenaPoolCnvSvc, 1, 0)
Declare interface ID.
find_tgc_unfilled_channelids.ip
ip
Definition: find_tgc_unfilled_channelids.py:3
CLID
uint32_t CLID
The Class ID type.
Definition: Event/xAOD/xAODCore/xAODCore/ClassID_traits.h:47
IAthenaPoolCnvSvc::registerCleanUp
virtual StatusCode registerCleanUp(IAthenaPoolCleanUp *cnv)=0
Implement registerCleanUp to register a IAthenaPoolCleanUp to be called during cleanUp.
createCoolChannelIdFile.par
par
Definition: createCoolChannelIdFile.py:29
IAthenaPoolCnvSvc::createAddress
virtual StatusCode createAddress(long svcType, const CLID &clid, const std::string &refAddress, IOpaqueAddress *&refpAddress)=0
Create address from string form.
IAthenaPoolCnvSvc::registerForWrite
virtual Token * registerForWrite(Placement *placement, const void *obj, const RootType &classDesc)=0
IAthenaPoolCnvSvc::getPoolSvc
virtual IPoolSvc * getPoolSvc()=0
IAthenaPoolCnvSvc::setObjPtr
virtual void setObjPtr(void *&obj, const Token *token)=0
RootType.h
IAthenaPoolCnvSvc::cleanUp
virtual StatusCode cleanUp(const std::string &connection)=0
Implement cleanUp to call all registered IAthenaPoolCleanUp cleanUp() function.
python.PyAthena.obj
obj
Definition: PyAthena.py:132
IAthenaPoolCnvSvc::setInputAttributes
virtual StatusCode setInputAttributes(const std::string &fileName)=0
Set the input file attributes, if any are requested from jobOpts.
TScopeAdapter
Definition: RootType.h:119
IAthenaPoolCnvSvc
This class provides the interface between Athena and PoolSvc.
Definition: IAthenaPoolCnvSvc.h:34