ATLAS Offline Software
IAthenaPoolCnvSvc.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2019 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 
31 static const InterfaceID IID_IAthenaPoolCnvSvc ("IAthenaPoolCnvSvc", 1 , 0);
32 
36 class IAthenaPoolCnvSvc : virtual public IConversionSvc, public IDataShare, public IAthenaPoolCleanUpSvc {
37 public:
39  static const InterfaceID& interfaceID() { return(IID_IAthenaPoolCnvSvc); }
40 
41  virtual ~IAthenaPoolCnvSvc() {}
42 
44  virtual StatusCode disconnectOutput(const std::string& outputConnectionSpec) = 0;
45 
47  virtual IPoolSvc* getPoolSvc() = 0;
48 
53  virtual Token* registerForWrite(Placement* placement, const void* obj, const RootType& classDesc) = 0;
54 
57  virtual void setObjPtr(void*& obj, const Token* token) = 0;
58 
60  virtual bool useDetailChronoStat() const = 0;
61 
68  virtual StatusCode createAddress(long svcType,
69  const CLID& clid,
70  const std::string* par,
71  const unsigned long* ip,
72  IOpaqueAddress*& refpAddress) = 0;
73 
79  virtual StatusCode createAddress(long svcType,
80  const CLID& clid,
81  const std::string& refAddress,
82  IOpaqueAddress*& refpAddress) = 0;
83 
87  virtual StatusCode convertAddress(const IOpaqueAddress* pAddress, std::string& refAddress) = 0;
88 
91  virtual StatusCode decodeOutputSpec(std::string& connectionSpec, int& outputTech) const = 0;
92 
95 
97  virtual StatusCode cleanUp(const std::string& connection) = 0;
98 
101  virtual StatusCode setInputAttributes(const std::string& fileName) = 0;
102 };
103 
104 #endif
IAthenaPoolCleanUpSvc
This class provides the interface for the IAthenaPoolCleanUpSvc which is used to clean up AthenaPoolC...
Definition: IAthenaPoolCleanUpSvc.h:22
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:36
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
IDataShare
Abstract interface for sharing data.
Definition: IDataShare.h:28
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:41
IAthenaPoolCnvSvc::decodeOutputSpec
virtual StatusCode decodeOutputSpec(std::string &connectionSpec, int &outputTech) const =0
Extract/deduce the DB technology from the connection string/file specification.
find_tgc_unfilled_channelids.ip
ip
Definition: find_tgc_unfilled_channelids.py:3
IAthenaPoolCnvSvc::interfaceID
static const InterfaceID & interfaceID()
Retrieve interface ID.
Definition: IAthenaPoolCnvSvc.h:39
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:135
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:36