fix Time::ApproximateTo* return type
authorMathieu Lacage <mathieu.lacage@sophia.inria.fr>
Sat, 28 Oct 2006 21:21:48 +0200
changeset 144 f07f6fb0f660
parent 143 552ff26b4224
child 145 947b77174b72
fix Time::ApproximateTo* return type
src/simulator/nstime.h
src/simulator/simulator.cc
src/simulator/time.cc
--- 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;