00001 #ifndef HEADERDATA_H 00002 #define HEADERDATA_H 00003 00004 #include "Stage/IStageData.h" 00005 #include "Stage/FFTimeStamp.h" 00006 00007 00008 template<class HeaderType> 00009 class HeaderStageData : public IStageData { 00010 HeaderType& m_header; 00011 00012 public: 00013 00014 typedef std::multimap<FFTimeStamp,HeaderStageData<HeaderType>*,std::less<FFTimeStamp> > DataList; 00015 00016 00017 HeaderStageData(HeaderType& headerObj) : m_header(headerObj) { 00018 m_header.addRef(); 00019 } 00020 virtual ~HeaderStageData() { 00021 m_header.release(); 00022 } 00023 00024 00025 virtual FFTimeStamp time() const { return m_header.earliest(); } 00026 00027 virtual HeaderType& header() const { return m_header; } 00028 00029 }; 00030 00031 #endif // HEADERDATA_H