00001 // $Header: /nfs/slac/g/glast/ground/cvs/GlastSvc/src/EventSelector/ItemCnv.h,v 1.2 2001/04/19 01:32:29 igable Exp $ 00002 #ifndef ITEMCNV_H 00003 #define ITEMCNV_H 1 00004 00005 00006 // Include files 00007 #include "BaseCnv.h" 00008 00009 00010 // Externals 00011 extern unsigned const char SICB_StorageType; 00012 00013 00014 //------------------------------------------------------------------------------ 00015 // 00016 // ClassName : ItemCnv<TYPE> 00017 // 00018 // Description : Converter of a single item 00019 // 00020 // Modified SicbItemCnv 00021 // 00022 //------------------------------------------------------------------------------ 00023 00024 00025 template <class TYPE> 00026 class ItemCnv : public BaseCnv { //public Converter { 00027 00028 public: 00029 00031 virtual StatusCode createObj(IOpaqueAddress* pAddress, DataObject*& refpObject) { 00032 TYPE* new_object = new TYPE(); 00033 //StatusCode status = updateObj(pAddress, new_object); 00034 //if ( StatusCode::SUCCESS == status ) { 00035 refpObject = new_object; 00036 return StatusCode::SUCCESS; 00037 }; 00038 00040 //virtual StatusCode fillObjRefs(IOpaqueAddress* pAddress, DataObject* pObject); 00041 00043 virtual StatusCode updateObj(IOpaqueAddress* pAddress, DataObject* refpObject) { 00044 return StatusCode::SUCCESS; 00045 } 00046 00048 //virtual StatusCode updateObjRefs(IOpaqueAddress* pAddress, DataObject* pObject); 00049 00051 //virtual StatusCode createRep(DataObject* pObject, IOpaqueAddress*& refpAddress); 00052 00054 //virtual StatusCode fillRepRefs(IOpaqueAddress* pAddress,DataObject* pObject); 00055 00057 //virtual StatusCode updateRep(IOpaqueAddress* pAddress, DataObject* pObject); 00058 00060 //virtual StatusCode updateRepRefs(IOpaqueAddress* pAddress, DataObject* pObject); 00061 00063 static const CLID& classID() { return TYPE::classID(); } 00064 00065 protected: 00066 00068 ItemCnv(ISvcLocator* svc) 00069 : BaseCnv(TYPE::classID(), svc) {}; 00070 00072 virtual ~ItemCnv() { } 00073 00074 virtual StatusCode updateObj(int* data, TYPE* pObject) { 00075 return StatusCode::SUCCESS; 00076 } 00077 00079 //StatusCode addDataLeaf (RegistryEntry* base, RegistryEntry* ent, IOpaqueAddress* addr); 00080 00081 // virtual StatusCode updateObj(int* data, TYPE* pObject) = 0; 00082 00083 //virtual StatusCode updateObjRefs(int* data, TYPE* pObject) = 0; 00084 00085 }; 00086 00087 00088 #endif // ITEMCNV_H
1.2.3 written by Dimitri van Heesch,
© 1997-2000