--- a/src/simulator/nstime.h Sat Oct 28 21:21:34 2006 +0200
+++ b/src/simulator/nstime.h Sat Oct 28 21:21:48 2006 +0200
@@ -46,12 +46,10 @@
Time operator -= (Time const &o);
double ApproximateToSeconds (void) const;
- uint64_t ApproximateToMilliSeconds (void) const;
- uint64_t ApproximateToMicroSeconds (void) const;
- uint64_t ApproximateToNanoSeconds (void) const;
+ int64_t ApproximateToMilliSeconds (void) const;
+ int64_t ApproximateToMicroSeconds (void) const;
+ int64_t ApproximateToNanoSeconds (void) const;
- /* semi-public method. */
- uint64_t Get (void) const;
protected:
Time (int64_t ns);
private:
--- a/src/simulator/simulator.cc Sat Oct 28 21:21:34 2006 +0200
+++ b/src/simulator/simulator.cc Sat Oct 28 21:21:48 2006 +0200
@@ -174,13 +174,16 @@
void
SimulatorPrivate::StopAt (Time const &at)
{
+ assert (at.IsPositive ());
m_stopAt = at.ApproximateToNanoSeconds ();
}
EventId
SimulatorPrivate::Schedule (Time const &time, EventImpl *event)
{
- assert (time.ApproximateToNanoSeconds () >= m_currentNs);
- Scheduler::EventKey key = {time.ApproximateToNanoSeconds (), m_uid};
+ assert (time.IsPositive ());
+ assert (time >= NanoSeconds (m_currentNs));
+ uint64_t ns = (uint64_t) time.ApproximateToNanoSeconds ();
+ Scheduler::EventKey key = {ns, m_uid};
if (m_logEnable)
{
m_log << "i "<<m_currentUid<<" "<<m_currentNs<<" "
--- a/src/simulator/time.cc Sat Oct 28 21:21:34 2006 +0200
+++ b/src/simulator/time.cc Sat Oct 28 21:21:48 2006 +0200
@@ -89,21 +89,21 @@
s /= 1000000000;
return s;
}
-uint64_t
+int64_t
Time::ApproximateToMilliSeconds (void) const
{
- uint64_t ms = m_ns;
+ int64_t ms = m_ns;
ms /= 1000000;
return ms;
}
-uint64_t
+int64_t
Time::ApproximateToMicroSeconds (void) const
{
- uint64_t us = m_ns;
+ int64_t us = m_ns;
us /= 1000;
return us;
}
-uint64_t
+int64_t
Time::ApproximateToNanoSeconds (void) const
{
return m_ns;