00001 #ifndef __PXXICompositePayload__H__ 00002 #define __PXXICompositePayload__H__ 00003 00017 00018 00019 #include "payloads-unpacker/base/PXXTypes.h" 00020 #include "payloads-unpacker/base/PXXPointerCasts.h" 00021 #include "payloads-unpacker/payloads/PXXIHitPayload.h" 00022 #include "payloads-unpacker/payloads/PXXIPayload.h" 00023 00024 #include <vector> 00025 using namespace std; 00026 00027 class PXXICompositePayload 00028 { 00029 00030 public: 00031 00037 virtual ~PXXICompositePayload(){} 00038 //------------------------------------------------------------------------------ 00039 00043 virtual const PXXIUTCTime &GetFirstTimeUTC() = 0; 00044 //------------------------------------------------------------------------------ 00045 00049 virtual const PXXIUTCTime &GetLastTimeUTC() = 0; 00050 //------------------------------------------------------------------------------ 00051 00056 virtual const PXXIUTCTime &GetPayloadTimeUTC() { return GetFirstTimeUTC(); } 00057 //------------------------------------------------------------------------------ 00058 00059 00063 virtual const vector<PXXIPayloadPtr> &GetPayloadPtrs() const = 0; 00064 //------------------------------------------------------------------------------ 00065 00070 virtual const vector<PXXIHitPayloadPtr> &GetHitPtrs() const = 0; 00071 //------------------------------------------------------------------------------ 00072 00073 protected: 00074 00079 PXXICompositePayload(); 00080 //------------------------------------------------------------------------------ 00081 00082 private: 00083 00084 00085 ClassDef(PXXICompositePayload, 0) // interface of composite payloads 00086 00087 }; 00088 00089 #ifdef __USEROOT__ // compile with ROOT 00090 typedef PXXIPayload* PXXIPayloadPtr; 00091 #else // compile with IceTray 00092 #include "dataclasses/StoragePolicy.h" 00093 typedef shared_ptr<PXXIPayload> PXXIPayloadPtr; 00094 #endif 00095 00096 #endif // __PXXICompositePayload__H__