ATLAS Offline Software
NtupleCnvSvc.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 // NtupleCnvSvc.h
8 // Header file for class NtupleCnvSvc
9 // Author: S.Binet<binet@cern.ch>
11 #ifndef ATHENAROOTCOMPS_NTUPLECNVSVC_H
12 #define ATHENAROOTCOMPS_NTUPLECNVSVC_H 1
13 
14 // STL includes
15 #include <string>
16 
17 // FrameWork includes
19 
20 // GaudiKernel
21 #include "GaudiKernel/IConversionSvc.h"
22 
23 // Forward declaration
24 class ISvcLocator;
25 template <class TYPE> class SvcFactory;
26 
27 namespace Athena {
28 
30  : virtual public ::IConversionSvc,
31  public ::AthCnvSvc
32 {
33  friend class SvcFactory<Athena::NtupleCnvSvc>;
34 
36  // Public methods:
38  public:
39 
40  // Copy constructor:
41 
43  NtupleCnvSvc( const std::string& name, ISvcLocator* pSvcLocator );
44 
46  virtual ~NtupleCnvSvc();
47 
48  // Assignment operator:
49  //NtupleCnvSvc &operator=(const NtupleCnvSvc &alg);
50 
52 
53  virtual StatusCode initialize();
54  virtual StatusCode finalize();
55  virtual StatusCode queryInterface( const InterfaceID& riid,
56  void** ppvInterface );
58 
60 
61 
64  virtual
65  StatusCode updateServiceState(IOpaqueAddress* pAddress);
66 
71  virtual
72  StatusCode createObj(IOpaqueAddress* pAddress, DataObject*& refpObject);
73 
79  virtual
80  StatusCode createRep(DataObject* pObject, IOpaqueAddress*& refpAddress);
81 
87  virtual
88  StatusCode fillRepRefs(IOpaqueAddress* pAddress, DataObject* pObject);
89 
94  virtual
95  StatusCode connectOutput(const std::string& outputConnectionSpec,
96  const std::string& openMode);
97 
101  virtual
102  StatusCode connectOutput(const std::string& outputConnectionSpec);
103 
105  virtual
106  StatusCode commitOutput(const std::string& outputConnectionSpec,
107  bool doCommit);
108 
110 
112 
113 
121  virtual
122  StatusCode createAddress(long svcType,
123  const CLID& clid,
124  const std::string* par,
125  const unsigned long* ip,
126  IOpaqueAddress*& refpAddress);
127 
131  virtual
132  StatusCode convertAddress(const IOpaqueAddress* pAddress,
133  std::string& refAddress);
134 
140  virtual
141  StatusCode createAddress(long svcType,
142  const CLID& clid,
143  const std::string& refAddress,
144  IOpaqueAddress*& refpAddress);
146 
148  // Const methods:
150 
152  // Non-const methods:
154 
155  static const InterfaceID& interfaceID();
156 
157 protected:
158 
160  virtual
161  IConverter* createConverter(long typ,
162  const CLID& clid,
163  const ICnvFactory* fac);
164 
166  // Private data:
168  private:
169 
172 
174 
175 
176 };
177 
178 // I/O operators
180 
182 // Inline methods:
184 
185 inline const InterfaceID& NtupleCnvSvc::interfaceID()
186 {
187  return IConversionSvc::interfaceID();
188 }
189 
190 } //> end namespace Athena
191 
192 #endif //> !ATHENAROOTCOMPS_NTUPLECNVSVC_H
Athena::NtupleCnvSvc::fillRepRefs
virtual StatusCode fillRepRefs(IOpaqueAddress *pAddress, DataObject *pObject)
Implementation of IConverter: Resolve the references of the converted object.
Definition: NtupleCnvSvc.cxx:146
Athena::NtupleCnvSvc::connectOutput
virtual StatusCode connectOutput(const std::string &outputConnectionSpec, const std::string &openMode)
Connect the output connection specification to the service with open mode.
Definition: NtupleCnvSvc.cxx:162
Athena::NtupleCnvSvc
Definition: NtupleCnvSvc.h:32
SvcFactory
Definition: AthCnvSvc.h:28
AthCnvSvc.h
Athena::NtupleCnvSvc::commitOutput
virtual StatusCode commitOutput(const std::string &outputConnectionSpec, bool doCommit)
Commit pending output.
Definition: NtupleCnvSvc.cxx:196
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:562
Athena::NtupleCnvSvc::updateServiceState
virtual StatusCode updateServiceState(IOpaqueAddress *pAddress)
IConversionSvc and IConverter interfaces
Definition: NtupleCnvSvc.cxx:91
Athena::NtupleCnvSvc::createAddress
virtual StatusCode createAddress(long svcType, const CLID &clid, const std::string *par, const unsigned long *ip, IOpaqueAddress *&refpAddress)
IAddressCreator interfaces
Definition: NtupleCnvSvc.cxx:217
Athena
Some weak symbol referencing magic...
Definition: AthLegacySequence.h:21
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Athena::NtupleCnvSvc::queryInterface
virtual StatusCode queryInterface(const InterfaceID &riid, void **ppvInterface)
Definition: NtupleCnvSvc.cxx:76
Athena::NtupleCnvSvc::interfaceID
static const InterfaceID & interfaceID()
Definition: NtupleCnvSvc.h:185
Athena::NtupleCnvSvc::convertAddress
virtual StatusCode convertAddress(const IOpaqueAddress *pAddress, std::string &refAddress)
Convert address to string form.
Definition: NtupleCnvSvc.cxx:233
Athena::NtupleCnvSvc::initialize
virtual StatusCode initialize()
Gaudi Service Implementation.
Definition: NtupleCnvSvc.cxx:55
Athena::NtupleCnvSvc::createConverter
virtual IConverter * createConverter(long typ, const CLID &clid, const ICnvFactory *fac)
Create new Converter using factory (override AthCnvSvc::createConverter)
Definition: NtupleCnvSvc.cxx:285
Athena::NtupleCnvSvc::createObj
virtual StatusCode createObj(IOpaqueAddress *pAddress, DataObject *&refpObject)
Implementation of IConverter: Create the transient representation of an object from persistent state.
Definition: NtupleCnvSvc.cxx:107
Athena::NtupleCnvSvc::finalize
virtual StatusCode finalize()
Definition: NtupleCnvSvc.cxx:63
Athena::NtupleCnvSvc::createRep
virtual StatusCode createRep(DataObject *pObject, IOpaqueAddress *&refpAddress)
Implementation of IConverter: Convert the transient object to the requested representation.
Definition: NtupleCnvSvc.cxx:129
AthCnvSvc
Definition: AthCnvSvc.h:67