00001 #ifndef RAWDATACONSVC_H
00002 #define RAWDATACONSVC_H
00003
00004 #include <map>
00005 #include "GaudiKernel/MsgStream.h"
00006 #include "GaudiKernel/ConversionSvc.h"
00007 #include "GaudiKernel/IOpaqueAddress.h"
00008 #include "GaudiKernel/SvcFactory.h"
00009 #include "GaudiKernel/ClassID.h"
00010 #include "RawDataIO/IRawDataConSvc.h"
00011
00012
00013 class RawDataConSvc : public ConversionSvc,
00014 virtual public IRawDataConSvc
00015 {
00016 public:
00017 RawDataConSvc(const string& name, ISvcLocator* svc);
00018 virtual ~RawDataConSvc() {}
00019
00020 virtual StatusCode initialize();
00021 virtual StatusCode finalize();
00022 virtual StatusCode queryInterface(const InterfaceID& riid, void** ppv);
00023 virtual StatusCode declareObject(const IRawDataConSvc::Leaf& leaf);
00024
00025
00026 virtual StatusCode createAddress(long svc_type,
00027 const CLID& clid,
00028 const string* par,
00029 const unsigned long* ip,
00030 IOpaqueAddress*& refpAddr);
00031 virtual StatusCode createAddress(long svc_type,
00032 const CLID& clid,
00033 const string& par,
00034 IOpaqueAddress*& refpAddr);
00035
00036 virtual StatusCode addConverters();
00037
00038 virtual StatusCode updateServiceState(IOpaqueAddress* pAddress);
00039
00040 private:
00041 mutable MsgStream m_log;
00042
00043 std::map<std::string, Leaf*> m_leaves;
00044 };
00045
00046 #endif