From 75d34c14fcdf514a09e94547a1d32b1b10f7e793 Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Wed, 2 Feb 2011 18:05:03 -0800 Subject: [PATCH] Time: Add serialization functions to the Time class. --- src/base/time.cc | 20 ++++++++++++++++++++ src/base/time.hh | 7 +++++++ 2 files changed, 27 insertions(+) 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; @@ -113,6 +114,25 @@ Time::time() const return str.str(); } +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) { 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 #include #include +#include #include #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); -- 2.30.2