diff -r 94da30663468 -r 3fe158f47f58 src/base/time.hh --- a/src/base/time.hh Sun Jan 30 21:55:09 2011 -0800 +++ b/src/base/time.hh Sun Jan 30 22:08:48 2011 -0800 @@ -40,10 +40,13 @@ #include #include #include +#include #include #include "base/types.hh" +class Checkpoint; + class Time { protected: @@ -195,6 +198,10 @@ std::string date(const std::string &format = "") const; std::string time() const; + + void serialize(const std::string &base, std::ostream &os); + void unserialize(const std::string &base, Checkpoint *cp, + const std::string §ion); }; void sleep(const Time &time); diff -r 94da30663468 -r 3fe158f47f58 src/base/time.cc --- a/src/base/time.cc Sun Jan 30 21:55:09 2011 -0800 +++ b/src/base/time.cc Sun Jan 30 22:08:48 2011 -0800 @@ -34,6 +34,7 @@ #include "base/time.hh" #include "config/use_posix_clock.hh" #include "sim/core.hh" +#include "sim/serialize.hh" using namespace std; @@ -114,6 +115,25 @@ } void +Time::serialize(const std::string &base, ostream &os) +{ + paramOut(os, base + ".sec", sec()); + paramOut(os, base + ".nsec", nsec()); +} + +void +Time::unserialize(const std::string &base, Checkpoint *cp, + const string §ion) +{ + time_t secs; + time_t nsecs; + paramIn(cp, section, base + ".sec", secs); + paramIn(cp, section, base + ".nsec", nsecs); + sec(secs); + nsec(nsecs); +} + +void sleep(const Time &time) { timespec ts = time;