00001 #ifndef HEADEROBJECTCNV_H
00002 #define HEADEROBJECTCNV_H
00003
00004 #include "RootIOSvc/RootIOTypedCnv.h"
00005 #include "PerBaseEvent/PerHeaderObject.h"
00006 #include "Event/HeaderObject.h"
00007
00008 class IRootIOSvc;
00009
00010 class HeaderObjectCnv : public RootIOTypedCnv<PerHeaderObject,
00011 DayaBay::HeaderObject>
00012 {
00013 public:
00014 static const CLID& classID() {
00015 return DayaBay::CLID_HeaderObject;
00016 }
00017
00018 HeaderObjectCnv(ISvcLocator* svc);
00019 virtual ~HeaderObjectCnv();
00020
00021 void clear();
00022
00026 static StatusCode toTran(const PerHeaderObject& tobj,
00027 DayaBay::HeaderObject& dobj);
00028 static StatusCode toPer(const DayaBay::HeaderObject& dobj,
00029 PerHeaderObject& tobj);
00030
00034 static StatusCode fillTran(IRootIOSvc* rioSvc,
00035 const PerHeaderObject& tobj,
00036 DayaBay::HeaderObject& dobj);
00037 static StatusCode fillPer(IRootIOSvc* rioSvc,
00038 const DayaBay::HeaderObject& ho,
00039 PerHeaderObject& tho);
00040
00043 StatusCode PerToTran(const PerHeaderObject& tobj,
00044 DayaBay::HeaderObject& dobj);
00045
00048 StatusCode TranToPer(const DayaBay::HeaderObject& dobj,
00049 PerHeaderObject& tobj);
00050
00051 StatusCode fillRepRefs(IOpaqueAddress* addr, DataObject* dobj);
00052 StatusCode fillObjRefs(IOpaqueAddress* addr, DataObject* dobj);
00053
00054 };
00055
00056 #endif // HEADEROBJECTCNV_H