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
00048 namespace RTT
00049 {
00053 typedef double Seconds;
00057 typedef long secs;
00061 typedef long msecs;
00065 typedef long usecs;
00069 typedef long long nsecs;
00073 typedef long long psecs;
00074
00075 const long MSECS_IN_SECS = 1000;
00076 const long USECS_IN_SECS = 1000 * MSECS_IN_SECS;
00077 const long NSECS_IN_SECS = 1000 * USECS_IN_SECS;
00078 const long long PSECS_IN_SECS = 1000LL * NSECS_IN_SECS;
00079
00080 const long USECS_IN_MSECS = 1000;
00081 const long NSECS_IN_MSECS = 1000 * USECS_IN_MSECS;
00082 const long PSECS_IN_MSECS = 1000 * NSECS_IN_MSECS;
00083
00084 const long NSECS_IN_USECS = 1000;
00085 const long PSECS_IN_USECS = 1000 * NSECS_IN_USECS;
00086
00087 const long PSECS_IN_NSECS = 1000;
00088
00089 inline msecs secs_to_msecs(const secs s) { return s * MSECS_IN_SECS; }
00090 inline usecs secs_to_usecs(const secs s) { return s * USECS_IN_SECS; }
00091 inline nsecs secs_to_nsecs(const secs s) { return s * NSECS_IN_SECS; }
00092 inline psecs secs_to_psecs(const secs s) { return s * PSECS_IN_SECS; }
00093
00094 inline usecs msecs_to_usecs(const msecs ms) { return ms * USECS_IN_MSECS; }
00095 inline nsecs msecs_to_nsecs(const msecs ms) { return ms * NSECS_IN_MSECS; }
00096 inline psecs msecs_to_psecs(const msecs ms) { return ms * PSECS_IN_MSECS; }
00097
00098 inline nsecs usecs_to_nsecs(const usecs us) { return us * NSECS_IN_USECS; }
00099 inline psecs usecs_to_psecs(const usecs us) { return us * PSECS_IN_USECS; }
00100
00101 inline psecs nsecs_to_psecs(const nsecs ns) { return ns * PSECS_IN_NSECS; }
00102
00103 inline nsecs Seconds_to_nsecs(const Seconds s) { return nsecs( rint( s * secs_to_nsecs(1) ) ); }
00104 inline Seconds nsecs_to_Seconds(const nsecs ns) { return Seconds( ns ) / Seconds(NSECS_IN_SECS); }
00105 inline psecs Seconds_to_psecs(const Seconds s) { return psecs( rint( s * secs_to_psecs(1) ) ); }
00106 inline Seconds psecs_to_Seconds(const psecs ps) { return Seconds( ps ) / Seconds(PSECS_IN_SECS); }
00107
00108 }
00109
00110 #endif