00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef PCAP_FRAME_DESCRIPTOR_HH_
00023 # define PCAP_FRAME_DESCRIPTOR_HH_
00024
00025 # include <ostream>
00026 # include <boost/shared_ptr.hpp>
00027
00028 # include <trace-tools/pcap/pkthdr.hh>
00029
00030 namespace pcapxx
00031 {
00032
00048 struct frame_descriptor
00049 {
00051 typedef boost::shared_ptr<const pkthdr> pkthdr_ptr;
00052
00054 typedef boost::shared_ptr<const uint8_t> bytes_ptr;
00055
00065 frame_descriptor(const pkthdr* header, const void* bytes);
00066
00068 const pkthdr_ptr& pcap_header() const;
00069
00071 const bytes_ptr& bytes() const;
00072
00074 std::ostream& print(std::ostream&) const;
00075
00077
00078 bool operator == (const frame_descriptor&) const;
00079 bool operator != (const frame_descriptor&) const;
00081
00082 private:
00083 static void delete_uint8_t_array(uint8_t*);
00084
00085 pkthdr_ptr pcap_header_;
00086 bytes_ptr bytes_;
00087 };
00088
00090 std::ostream&
00091 operator << (std::ostream&, const frame_descriptor&);
00092
00093 }
00094
00095 # include "frame_descriptor.hxx"
00096
00097 #endif // ! PCAP_FRAME_DESCRITPOR_HH_