00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef WIFI_MACTIME_TRACKER_HH_
00023 # define WIFI_MACTIME_TRACKER_HH_
00024
00025 extern "C"
00026 {
00027 # include <inttypes.h>
00028 }
00029
00030 # include <wipal/tool/static_base.hh>
00031 # include <wipal/tool/microseconds.hh>
00032 # include <wipal/phy/prism_header.hh>
00033
00034 namespace wifi
00035 {
00036
00049 template <class Bottom = tool::bottom>
00050 struct mactime_tracker: wp_inherit(public tool::static_base,
00051 mactime_tracker<Bottom>)
00052 {
00054 typedef uint32_t mactime_type;
00055
00057 mactime_tracker();
00058
00060 mactime_tracker(const mactime_type& mactime_start);
00061
00063 void tick(const mactime_type&);
00064
00066 void tick(const prism::header* header,
00067 size_t caplen,
00068 bool swapped);
00069
00071 tool::microseconds microseconds() const;
00072
00074 const mactime_type& mactime() const;
00075
00076 private:
00077 mactime_type mactime_;
00078 unsigned wrap_count_;
00079 };
00080
00081 }
00082
00083 # include "mactime_tracker.hxx"
00084
00085 #endif // ! WIFI_MACTIME_TRACKER_HH_