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_STAMP_HH_
00023 # define TOOL_MICROSECONDS_STAMP_HH_
00024
00025 # include <wipal/tool/microseconds.hh>
00026 # include <wipal/tool/hash.hh>
00027
00028 namespace tool
00029 {
00030
00043 template <class T>
00044 struct microseconds_stamp: public T
00045 {
00047 microseconds_stamp(const tool::microseconds&, const T& = T ());
00048
00050
00051 const tool::microseconds& microseconds() const;
00052 tool::microseconds& microseconds();
00054
00062 bool operator == (const microseconds_stamp& rhs) const;
00063 bool operator != (const microseconds_stamp& rhs) const;
00065
00066 private:
00067 tool::microseconds microseconds_;
00068 };
00069
00070 }
00071
00072 WP_HASH_NAMESPACE_BEGIN
00073
00074 template <class T>
00075 struct hash< tool::microseconds_stamp<T> >: public hash<T>
00076 {
00077 size_t operator() (const tool::microseconds_stamp<T>& s) const;
00078 };
00079
00080 WP_HASH_NAMESPACE_END
00081
00082 # include "microseconds_stamp.hxx"
00083
00084 #endif // TOOL_MICROSECONDS_STAMP_HH_