Time.hpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038 #ifndef ORO_CORELIB_TIME_HPP
00039 #define ORO_CORELIB_TIME_HPP
00040
00041 #include <cmath>
00042
00043
00044
00045
00046 #include "os/rint.h"
00047
00053 namespace RTT
00054 {
00058 typedef double Seconds;
00062 typedef long secs;
00066 typedef long msecs;
00070 typedef long usecs;
00074 typedef long long nsecs;
00078 typedef long long psecs;
00079
00080 const long MSECS_IN_SECS = 1000;
00081 const long USECS_IN_SECS = 1000 * MSECS_IN_SECS;
00082 const long NSECS_IN_SECS = 1000 * USECS_IN_SECS;
00083 const long long PSECS_IN_SECS = 1000LL * NSECS_IN_SECS;
00084
00085 const long USECS_IN_MSECS = 1000;
00086 const long NSECS_IN_MSECS = 1000 * USECS_IN_MSECS;
00087 const long PSECS_IN_MSECS = 1000 * NSECS_IN_MSECS;
00088
00089 const long NSECS_IN_USECS = 1000;
00090 const long PSECS_IN_USECS = 1000 * NSECS_IN_USECS;
00091
00092 const long PSECS_IN_NSECS = 1000;
00093
00094 inline msecs secs_to_msecs(const secs s) { return s * MSECS_IN_SECS; }
00095 inline usecs secs_to_usecs(const secs s) { return s * USECS_IN_SECS; }
00096 inline nsecs secs_to_nsecs(const secs s) { return s * NSECS_IN_SECS; }
00097 inline psecs secs_to_psecs(const secs s) { return s * PSECS_IN_SECS; }
00098
00099 inline usecs msecs_to_usecs(const msecs ms) { return ms * USECS_IN_MSECS; }
00100 inline nsecs msecs_to_nsecs(const msecs ms) { return ms * NSECS_IN_MSECS; }
00101 inline psecs msecs_to_psecs(const msecs ms) { return ms * PSECS_IN_MSECS; }
00102
00103 inline nsecs usecs_to_nsecs(const usecs us) { return us * NSECS_IN_USECS; }
00104 inline psecs usecs_to_psecs(const usecs us) { return us * PSECS_IN_USECS; }
00105
00106 inline psecs nsecs_to_psecs(const nsecs ns) { return ns * PSECS_IN_NSECS; }
00107
00108 inline nsecs Seconds_to_nsecs(const Seconds s) { return nsecs( rint( s * secs_to_nsecs(1) ) ); }
00109 inline Seconds nsecs_to_Seconds(const nsecs ns) { return Seconds( ns ) / Seconds(NSECS_IN_SECS); }
00110 inline psecs Seconds_to_psecs(const Seconds s) { return psecs( rint( s * secs_to_psecs(1) ) ); }
00111 inline Seconds psecs_to_Seconds(const psecs ps) { return Seconds( ps ) / Seconds(PSECS_IN_SECS); }
00112
00113 }
00114
00115 #endif