diff options
-rw-r--r-- | src/base/time.cc | 20 | ||||
-rw-r--r-- | src/base/time.hh | 7 |
2 files changed, 27 insertions, 0 deletions
diff --git a/src/base/time.cc b/src/base/time.cc index 0fab938a4..8ce2e2137 100644 --- a/src/base/time.cc +++ b/src/base/time.cc @@ -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 @@ Time::time() const } 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; diff --git a/src/base/time.hh b/src/base/time.hh index 4fc3dd3ef..20b1c6d35 100644 --- a/src/base/time.hh +++ b/src/base/time.hh @@ -40,10 +40,13 @@ #include <cstring> #include <ctime> #include <iosfwd> +#include <iostream> #include <string> #include "base/types.hh" +class Checkpoint; + class Time { protected: @@ -195,6 +198,10 @@ class Time 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); |