00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef WIFI_FRAME_SEQCTL_TIMESTAMP_ID_HXX_
00023 # define WIFI_FRAME_SEQCTL_TIMESTAMP_ID_HXX_
00024
00025 # include "seqctl_timestamp.hh"
00026
00027 # include <wipal/wifi/frame/unique_id/helper_hooks.hh>
00028
00029 namespace wifi
00030 {
00031
00032 namespace frame
00033 {
00034
00035 template <>
00036 inline
00037 boost::optional<seq_tmp_id>
00038 make_unique_id<seq_tmp_id,
00039 prism::header>(const pcapxx::frame_descriptor& desc,
00040 addr_mapping&)
00041 {
00042 wp_make_unique_id_prism_dissect(desc, d, internals::id_helper_hooks, h);
00043
00044 const timestamp* t = h.timestamp_ptr();
00045 const uint16_t* s = h.seq_ctl_ptr();
00046
00047 assert(not t or s);
00048 if (t)
00049 return seq_tmp_id (desc.pcap_header()->id, *s, *t);
00050 else
00051 return boost::none_t ();
00052 }
00053
00054 }
00055
00056 }
00057
00058 #endif // ! WIFI_FRAME_SEQCTL_TIMESTAMP_ID_HXX_
00059