32 class Packet { |
32 class Packet { |
33 public: |
33 public: |
34 typedef Callback<void,uint8_t *,uint32_t> PacketReadWriteCallback; |
34 typedef Callback<void,uint8_t *,uint32_t> PacketReadWriteCallback; |
35 Packet (); |
35 Packet (); |
36 Packet (uint32_t size); |
36 Packet (uint32_t size); |
37 Packet create_fragment (uint32_t start, uint32_t length) const; |
37 Packet createFragment (uint32_t start, uint32_t length) const; |
38 uint32_t get_size (void) const; |
38 uint32_t getSize (void) const; |
39 void add (Chunk *chunk); |
39 void add (Chunk *chunk); |
40 void peek (Chunk *chunk) const; |
40 void peek (Chunk *chunk) const; |
41 void remove (Chunk *chunk); |
41 void remove (Chunk *chunk); |
42 template <typename T> |
42 template <typename T> |
43 void add_tag (T const *tag); |
43 void addTag (T const *tag); |
44 template <typename T> |
44 template <typename T> |
45 bool remove_tag (T *tag); |
45 bool removeTag (T *tag); |
46 template <typename T> |
46 template <typename T> |
47 bool peek_tag (T *tag) const; |
47 bool peekTag (T *tag) const; |
48 template <typename T> |
48 template <typename T> |
49 bool update_tag (T const*tag); |
49 bool updateTag (T const*tag); |
50 void remove_all_tags (void); |
50 void removeAllTags (void); |
51 void write (PacketReadWriteCallback callback) const; |
51 void write (PacketReadWriteCallback callback) const; |
52 void add_at_end (Packet packet); |
52 void addAtEnd (Packet packet); |
53 void add_at_end (Packet packet, uint32_t offset, uint32_t size); |
53 void addAtEnd (Packet packet, uint32_t offset, uint32_t size); |
54 void remove_at_end (uint32_t size); |
54 void removeAtEnd (uint32_t size); |
55 void remove_at_start (uint32_t size); |
55 void removeAtStart (uint32_t size); |
56 |
56 |
57 private: |
57 private: |
58 Packet (Buffer buffer, Tags tags); |
58 Packet (Buffer buffer, Tags tags); |
59 Buffer m_buffer; |
59 Buffer m_buffer; |
60 Tags m_tags; |
60 Tags m_tags; |
63 }; // namespace ns3 |
63 }; // namespace ns3 |
64 |
64 |
65 namespace ns3 { |
65 namespace ns3 { |
66 |
66 |
67 template <typename T> |
67 template <typename T> |
68 void Packet::add_tag (T const*tag) |
68 void Packet::addTag (T const*tag) |
69 { |
69 { |
70 m_tags.add (tag); |
70 m_tags.add (tag); |
71 } |
71 } |
72 template <typename T> |
72 template <typename T> |
73 bool Packet::remove_tag (T *tag) |
73 bool Packet::removeTag (T *tag) |
74 { |
74 { |
75 return m_tags.remove (tag); |
75 return m_tags.remove (tag); |
76 } |
76 } |
77 template <typename T> |
77 template <typename T> |
78 bool Packet::peek_tag (T *tag) const |
78 bool Packet::peekTag (T *tag) const |
79 { |
79 { |
80 return m_tags.peek (tag); |
80 return m_tags.peek (tag); |
81 } |
81 } |
82 template <typename T> |
82 template <typename T> |
83 bool Packet::update_tag (T const*tag) |
83 bool Packet::updateTag (T const*tag) |
84 { |
84 { |
85 return m_tags.update (tag); |
85 return m_tags.update (tag); |
86 } |
86 } |
87 |
87 |
88 }; // namespace ns3 |
88 }; // namespace ns3 |