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