00001 00008 #ifndef _STAGE_H_ 00009 #define _STAGE_H_ 1 00010 00011 // Include files 00012 #include "GaudiAlg/GaudiTool.h" 00013 #include "GaudiAlg/GaudiSequencer.h" 00014 #include "GaudiKernel/Algorithm.h" 00015 #include "Stage/IStage.h" 00016 #include "Stage/IStageData.h" 00017 00018 using namespace std; 00019 00020 class Stage : public GaudiTool, 00021 virtual public IStage { 00022 public: 00023 00025 Stage(const std::string& type, 00026 const std::string& name, 00027 const IInterface* parent); 00028 00030 virtual FFTimeStamp currentTime() const; 00031 00032 virtual StatusCode nextElement(IStageData*& pIStgData, 00033 bool erase=true); 00034 00035 virtual StatusCode pushElement(IStageData* pIStgData); 00036 00038 virtual StatusCode initialize(); 00039 virtual StatusCode finalize(); 00040 00041 protected: 00043 virtual ~Stage(); 00044 00045 private: 00048 FFTimeStamp m_CurrentTime; 00049 00051 std::string m_SeqName; 00052 Algorithm* m_sequencer; 00053 00055 IStageDataList m_DataList; 00056 00059 // If it is read but not required to be erased then it false. 00060 bool m_read_erase; 00061 }; 00062 00063 #endif // _STAGE_H_