src/common/packet.cc
changeset 789 1e19322e9012
parent 463 c2082308e01a
child 790 de06cb662828
--- a/src/common/packet.cc	Fri May 25 19:14:05 2007 +0100
+++ b/src/common/packet.cc	Tue May 29 16:09:20 2007 +0200
@@ -27,6 +27,7 @@
 
 Packet::Packet ()
   : m_buffer (),
+    m_history (m_globalUid, 0),
     m_uid (m_globalUid)
 {
   m_globalUid++;
@@ -34,12 +35,14 @@
 
 Packet::Packet (uint32_t size)
   : m_buffer (size),
+    m_history (m_globalUid, size),
     m_uid (m_globalUid)
 {
   m_globalUid++;
 }
 Packet::Packet (uint8_t const*buffer, uint32_t size)
   : m_buffer (),
+    m_history (m_globalUid, size),
     m_uid (m_globalUid)
 {
   m_globalUid++;
@@ -48,9 +51,10 @@
   i.Write (buffer, size);
 }
 
-Packet::Packet (Buffer buffer, Tags tags, uint32_t uid)
+Packet::Packet (Buffer buffer, Tags tags, PacketHistory history, uint32_t uid)
   : m_buffer (buffer),
     m_tags (tags),
+    m_history (history),
     m_uid (uid)
 {}
 
@@ -58,7 +62,8 @@
 Packet::CreateFragment (uint32_t start, uint32_t length) const
 {
   Buffer buffer = m_buffer.CreateFragment (start, length);
-  return Packet (buffer, m_tags, m_uid);
+  PacketHistory history = m_history.CreateFragment (start, length);
+  return Packet (buffer, m_tags, history, m_uid);
 }
 
 uint32_t 
@@ -79,21 +84,25 @@
    * XXX: we might need to merge the tag list of the
    * other packet into the current packet.
    */
+  m_history.AddAtEnd (packet.m_history);
 }
 void
 Packet::AddPaddingAtEnd (uint32_t size)
 {
   m_buffer.AddAtEnd (size);
+  m_history.AddPaddingAtEnd (size);
 }
 void 
 Packet::RemoveAtEnd (uint32_t size)
 {
   m_buffer.RemoveAtEnd (size);
+  m_history.RemoveAtEnd (size);
 }
 void 
 Packet::RemoveAtStart (uint32_t size)
 {
   m_buffer.RemoveAtStart (size);
+  m_history.RemoveAtStart (size);
 }
 
 void 
@@ -116,6 +125,8 @@
 
 void 
 Packet::Print (std::ostream &os) const
-{}
+{
+  m_history.PrintDefault (os, m_buffer);
+}
 
 }; // namespace ns3