]> git.mxchange.org Git - simgear.git/blobdiff - simgear/timing/timestamp.hxx
hla: Use raw pointers for HLAFederate::_insert methods.
[simgear.git] / simgear / timing / timestamp.hxx
index e6aeb0a23657a2ec824e8869d222502e66ca2047..ac9ca1423fe81b56041b4a49ce2e146b5d6cb662 100644 (file)
@@ -184,6 +184,8 @@ public:
     { SGTimeStamp ts; ts.setTime(sec); return ts; }
     static SGTimeStamp fromSec(const double& sec)
     { SGTimeStamp ts; ts.setTime(sec); return ts; }
+    static SGTimeStamp fromMSec(nsec_type msec)
+    { return SGTimeStamp(0, 1000*1000*msec); }
     static SGTimeStamp fromUSec(nsec_type usec)
     { return SGTimeStamp(0, 1000*usec); }
     static SGTimeStamp fromNSec(nsec_type nsec)
@@ -195,6 +197,26 @@ public:
     static SGTimeStamp now()
     { SGTimeStamp ts; ts.stamp(); return ts; }
 
+    /**
+     *  Sleep until the time of abstime is passed.
+     */
+    static bool sleepUntil(const SGTimeStamp& abstime);
+
+    /**
+     *  Sleep for reltime.
+     */
+    static bool sleepFor(const SGTimeStamp& reltime);
+
+    /**
+     *  Alias for the most common use case with milliseconds.
+     */
+    static bool sleepForMSec(unsigned msec)
+    { return sleepFor(fromMSec(msec)); }
+
+    /**
+     * elapsed time since the stamp was taken, in msec
+     */
+    int elapsedMSec() const;
 private:
     SGTimeStamp(sec_type sec, nsec_type nsec)
     { setTime(sec, nsec); }