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