00001 #ifndef RawDataObjectCnv_H
00002 #define RawDataObjectCnv_H
00003
00004 #include <string>
00005 #include "GaudiKernel/ClassID.h"
00006 #include "GaudiKernel/Converter.h"
00007 #include "GaudiKernel/ISvcLocator.h"
00008 #include "GaudiKernel/DataObject.h"
00009 #include "GaudiKernel/MsgStream.h"
00010
00011 using namespace std;
00012
00013
00014 extern const long int RAWDATA_StorageType;
00015
00016 class RawDataObjectCnv : public Converter
00017 {
00018
00019 public:
00020 RawDataObjectCnv(ISvcLocator*&);
00021 RawDataObjectCnv(unsigned char storageType, const CLID& clid, ISvcLocator* svc);
00022
00023 virtual ~RawDataObjectCnv() {}
00024
00025
00026 virtual long repSvcType() const {
00027 return RAWDATA_StorageType;
00028 }
00029 static const long storageType() {
00030 return RAWDATA_StorageType;
00031 }
00032
00033 static const CLID& classID() {
00034 return DataObject::classID();
00035 }
00036
00037
00038 virtual StatusCode initialize();
00039 virtual StatusCode finalize();
00040
00041 void declareObject(const string& fullPath, const CLID& clid, const string& bank, long par = 0);
00042
00043 virtual StatusCode createRep(DataObject* pObject, IOpaqueAddress*& refpAddr);
00044 virtual StatusCode updateObj(IOpaqueAddress*, DataObject*);
00045 virtual StatusCode createObj(IOpaqueAddress*, DataObject*&);
00046
00047 virtual StatusCode fillRepRefs(IOpaqueAddress* , DataObject* ) {
00048 return StatusCode::SUCCESS;
00049 }
00050 virtual StatusCode updateRep(IOpaqueAddress* , DataObject* ) {
00051 return StatusCode::SUCCESS;
00052 }
00053 virtual StatusCode updateRepRefs(IOpaqueAddress* , DataObject* ) {
00054 return StatusCode::SUCCESS;
00055 }
00056
00057 private:
00058 mutable MsgStream m_log;
00059 };
00060
00061 #endif