BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
RawDataCnvSvc.h
Go to the documentation of this file.
1#pragma once
2
3#include "GaudiKernel/ConversionSvc.h"
4
5#include "RawDataCnvSvc/IRawDataCnvSvc.h"
6#include "RawDataCnvSvc/IRawDataOutputSvc.h"
7
8class RawDataCnvSvc : public extends<ConversionSvc, IRawDataCnvSvc> {
9 /// Map with leaf entries containing TDS paths
10 typedef std::map<std::string, Leaf*> LeafMap;
11
12public:
13 RawDataCnvSvc( const std::string& name, ISvcLocator* svc );
14
15 StatusCode initialize();
16
17 StatusCode finalize();
18
19 /// Associates a path on TDS with a particular converter
20 StatusCode declareObject( const IRawDataCnvSvc::Leaf& leaf );
21
22 /// Override inherited queryInterface due to enhanced interface
23 // StatusCode queryInterface( const InterfaceID& riid, void** ppvInterface );
24
25 // Address creation.
26 StatusCode createAddress( long svc_type, const CLID& clid, const std::string* par,
27 const unsigned long* ip, IOpaqueAddress*& refpAddress );
28
29 StatusCode createAddress( long storageType, const CLID& clid, const std::string&,
30 IOpaqueAddress*& refpAddress );
31
32 StatusCode addConverters();
33
34 // Connect output source
35 StatusCode connectOutput( const std::string& t );
36
37 // avoid warning
38 StatusCode connectOutput( const std::string& t, const std::string& /* mode */ ) {
39 return connectOutput( t );
40 }
41
42 // Output data
43 StatusCode commitOutput( const std::string& t, bool b );
44
45 // Get Raw Event
46 WriteRawEvent*& getRawEvent() { return m_rawEvent; }
47
48 IConverter* createConverter( long typ, const CLID& clid, const ICnvFactory* fac );
49
50 StatusCode updateServiceState( IOpaqueAddress* pAddress );
51
52private:
53 LeafMap m_leaves;
54
55 std::string m_ioSvcName;
56 IRawDataOutputSvc* m_ioSvc;
57 WriteRawEvent* m_rawEvent;
58
59 uint32_t m_status; // fucd
60
61 unsigned int ef_info[4];
62};
eformat::write::FullEventFragment WriteRawEvent
StatusCode updateServiceState(IOpaqueAddress *pAddress)
RawDataCnvSvc(const std::string &name, ISvcLocator *svc)
StatusCode createAddress(long svc_type, const CLID &clid, const std::string *par, const unsigned long *ip, IOpaqueAddress *&refpAddress)
Override inherited queryInterface due to enhanced interface.
StatusCode initialize()
StatusCode finalize()
StatusCode addConverters()
Add converters to the service.
IConverter * createConverter(long typ, const CLID &clid, const ICnvFactory *fac)
StatusCode connectOutput(const std::string &t)
StatusCode connectOutput(const std::string &t, const std::string &)
StatusCode declareObject(const IRawDataCnvSvc::Leaf &leaf)
Associates a path on TDS with a particular converter.
WriteRawEvent *& getRawEvent()
StatusCode commitOutput(const std::string &t, bool b)
int t()
Definition t.c:1