00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef WSCOUT_GUI_PCAP_HEADER_HXX_
00024 # define WSCOUT_GUI_PCAP_HEADER_HXX_
00025
00026 # include "wscout_gui_pcap_header.hh"
00027
00028 namespace wscout
00029 {
00030
00031 namespace gui
00032 {
00033
00034 inline
00035 PcapHeader::PcapHeader(QWidget* parent):
00036 HeaderBase<PcapHeader, protocol::PCAP> (parent)
00037 {
00038 {
00039 QFont bold;
00040
00041 bold.setBold(true);
00042 id_.setFont(bold);
00043 }
00044 {
00045 QBoxLayout* const l = layout();
00046
00047 l->addWidget(&id_);
00048 l->addWidget(&date_);
00049 l->addStretch();
00050 l->addWidget(&len_);
00051 }
00052 }
00053
00054 inline
00055 PcapHeader::next_header
00056 PcapHeader::nextHeader(const Trace& trace,
00057 const pcapxx::frame_descriptor& desc)
00058 {
00059 const pcapxx::descriptor<>* d = trace.trace();
00060 protocol::id i;
00061
00062 assert(d);
00063
00064 switch (d->linktype())
00065 {
00066 case pcapxx::descriptor<>::IEEE802_11:
00067 i = protocol::IEEE802_11;
00068 break;
00069 case pcapxx::descriptor<>::IEEE802_11_RADIO_AVS:
00070 i = protocol::AVS_HEADER;
00071 break;
00072 case pcapxx::descriptor<>::PRISM_HEADER:
00073 i = protocol::PRISM_HEADER;
00074 break;
00075 default:
00076 i = protocol::UNKNOWN;
00077 break;
00078 }
00079 return next_header (i, desc.bytes().get());
00080 }
00081
00082 }
00083
00084 }
00085
00086 #endif // ! WSCOUT_GUI_PCAP_HEADER_HXX_