00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef TOOL_MICROSECONDS_HH_
00023 # define TOOL_MICROSECONDS_HH_
00024
00025 extern "C"
00026 {
00027 # include <stdint.h>
00028 # include <sys/time.h>
00029 }
00030 # include <gmpxx.h>
00031
00032 namespace wpl
00033 {
00034
00035 namespace tool
00036 {
00037
00039 struct microseconds: public mpz_class
00040 {
00041 typedef mpz_class mpz_type;
00042
00044 microseconds(const uint64_t);
00045
00047 microseconds(const struct timeval& tv);
00048
00049
00051
00052
00054 microseconds(const mpz_type&);
00055
00057 template <class T1, class T2>
00058 microseconds(const __gmp_expr<T1, T2>& e);
00059
00061
00063 uint32_t get_prism_mactime() const;
00064
00066 uint32_t get_prism_hosttime() const;
00067
00069 uint64_t get_uint64() const;
00070
00077 unsigned get_div_by(unsigned d) const;
00078
00080 struct timeval get_timeval() const;
00081 };
00082
00083 }
00084
00085 }
00086
00087 # include "microseconds.hxx"
00088
00089 #endif // TOOL_MICROSECONDS_HH_