move Packet::AddAtEnd implementation to the Buffer code.
authorMathieu Lacage <mathieu.lacage@sophia.inria.fr>
Tue, 22 Apr 2008 14:18:33 -0700
changeset 2992 ba52f937610c
parent 2991 9a3ed582d153
child 2993 a975a534915c
move Packet::AddAtEnd implementation to the Buffer code.
src/common/buffer.cc
src/common/buffer.h
src/common/packet.cc
--- a/src/common/buffer.cc	Tue Apr 22 13:54:05 2008 -0700
+++ b/src/common/buffer.cc	Tue Apr 22 14:18:33 2008 -0700
@@ -462,6 +462,19 @@
 }
 
 void 
+Buffer::AddAtEnd (const Buffer &o)
+{
+  Buffer dst = CreateFullCopy ();
+  Buffer src = o.CreateFullCopy ();
+
+  dst.AddAtEnd (src.GetSize ());
+  Buffer::Iterator destStart = dst.End ();
+  destStart.Prev (src.GetSize ());
+  destStart.Write (src.Begin (), src.End ());
+  *this = dst;
+}
+
+void 
 Buffer::RemoveAtStart (uint32_t start)
 {
   NS_ASSERT (CheckInternalState ());
--- a/src/common/buffer.h	Tue Apr 22 13:54:05 2008 -0700
+++ b/src/common/buffer.h	Tue Apr 22 14:18:33 2008 -0700
@@ -410,6 +410,8 @@
    * pointing to this Buffer.
    */
   void AddAtEnd (uint32_t end);
+
+  void AddAtEnd (const Buffer &o);
   /**
    * \param start size to remove
    *
--- a/src/common/packet.cc	Tue Apr 22 13:54:05 2008 -0700
+++ b/src/common/packet.cc	Tue Apr 22 14:18:33 2008 -0700
@@ -159,14 +159,7 @@
 void 
 Packet::AddAtEnd (Ptr<const Packet> packet)
 {
-  Buffer src = packet->m_buffer.CreateFullCopy ();
-  Buffer dst = m_buffer.CreateFullCopy ();
-
-  dst.AddAtEnd (src.GetSize ());
-  Buffer::Iterator destStart = dst.End ();
-  destStart.Prev (src.GetSize ());
-  destStart.Write (src.Begin (), src.End ());
-  m_buffer = dst;
+  m_buffer.AddAtEnd (packet->m_buffer);
   /**
    * XXX: we might need to merge the tag list of the
    * other packet into the current packet.