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_IP_HEADER_HH_
00024 # define WSCOUT_GUI_IP_HEADER_HH_
00025
00026 extern "C"
00027 {
00028 #include <netinet/ip.h>
00029 }
00030
00031 # include <QtGui/QLabel>
00032
00033 # include "wscout_gui_header_base.hh"
00034
00035 namespace wscout
00036 {
00037
00038 namespace gui
00039 {
00040
00046 template <class ExactIPHeader, int Protocol>
00047 struct IPHeader: public HeaderBase<ExactIPHeader, Protocol>
00048 {
00049 IPHeader(QWidget* parent = 0);
00050
00051 protected:
00052 QLabel srcDst_;
00053 };
00054
00060 struct IPv4Header: public IPHeader<IPv4Header, protocol::IPv4>
00061 {
00063 IPv4Header(QWidget* parent = 0);
00064
00066 virtual next_header setup(const void* header,
00067 size_t caplen,
00068 const Trace& trace,
00069 const packet& desc);
00070
00071 private:
00072 QLabel ttl_;
00073 QLabel fragInfo_;
00074 };
00075
00081 struct IPv6Header: public IPHeader<IPv6Header, protocol::IPv6>
00082 {
00084 IPv6Header(QWidget* parent = 0);
00085
00087 virtual next_header setup(const void* header,
00088 size_t caplen,
00089 const Trace& trace,
00090 const packet& desc);
00091
00092 private:
00093 QLabel hopLimit_;
00094 };
00095
00096 }
00097
00098 }
00099
00100 # include "wscout_gui_ip_header.hxx"
00101
00102 #endif // ! WSCOUT_GUI_IP_HEADER_HH_