Time: Add serialization functions to the Time class.

This commit is contained in:
Gabe Black 2011-02-02 18:05:03 -08:00
parent c4b81d311e
commit 75d34c14fc
2 changed files with 27 additions and 0 deletions

View file

@ -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 &section)
{
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)
{

View file

@ -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 &section);
};
void sleep(const Time &time);