src/common/packet.h
changeset 53 ae406f4957d5
parent 16 99e833adbb46
child 54 f860e6f94787
equal deleted inserted replaced
52:72a52d59ee9f 53:ae406f4957d5
    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