00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 #ifndef SST_CORE_CORE_HEARTBEAT_H
00013 #define SST_CORE_CORE_HEARTBEAT_H
00014 
00015 #include <sst/core/sst_types.h>
00016 #include <sst/core/serialization.h>
00017 #include <sst/core/output.h>
00018 #include <sst/core/config.h>
00019 #include <sst/core/cputimer.h>
00020 
00021 #include <set>
00022 #include <sst/core/action.h>
00023 
00024 namespace SST {
00025 
00026 class Simulation;
00027 class TimeConverter;
00028 
00029 
00030 
00031 
00032 
00033 class SimulatorHeartbeat : public Action {
00034 public:
00035 
00036 
00037 
00038     SimulatorHeartbeat( Config* cfg, int this_rank, Simulation* sim, TimeConverter* period);
00039     ~SimulatorHeartbeat();
00040 
00041 private:
00042     SimulatorHeartbeat() { };
00043     SimulatorHeartbeat(const SimulatorHeartbeat&);
00044     void operator=(SimulatorHeartbeat const&);
00045     void execute(void);
00046     int rank;
00047     TimeConverter*  m_period;
00048     double lastTime;
00049     
00050     friend class boost::serialization::access;
00051     template<class Archive>
00052     void serialize(Archive & ar, const unsigned int version);
00053 };
00054 
00055 } 
00056 
00057 BOOST_CLASS_EXPORT_KEY(SST::SimulatorHeartbeat)
00058 
00059 #endif // SST_CORE_HEARTBEAT_H