From 55f2084e86bb03f34eef5a2f623e8b8bd6d4185a Mon Sep 17 00:00:00 2001 From: Mathieu Lacage Date: Tue, 12 Jun 2007 13:21:06 +0200 Subject: [PATCH 1/2] avoid duplicating the packet uid --- src/common/packet-metadata.cc | 6 ++++++ src/common/packet-metadata.h | 2 ++ src/common/packet.cc | 18 +++++++----------- src/common/packet.h | 3 +-- 4 files changed, 16 insertions(+), 13 deletions(-) diff --git a/src/common/packet-metadata.cc b/src/common/packet-metadata.cc index a076633bd..06209b732 100644 --- a/src/common/packet-metadata.cc +++ b/src/common/packet-metadata.cc @@ -1001,6 +1001,12 @@ PacketMetadata::GetTotalSize (void) const return totalSize; } +uint32_t +PacketMetadata::GetUid (void) const +{ + return m_packetUid; +} + void PacketMetadata::Print (std::ostream &os, Buffer data, const PacketPrinter &printer) const { diff --git a/src/common/packet-metadata.h b/src/common/packet-metadata.h index 098775934..cb96ddd10 100644 --- a/src/common/packet-metadata.h +++ b/src/common/packet-metadata.h @@ -58,6 +58,8 @@ public: void RemoveAtStart (uint32_t start); void RemoveAtEnd (uint32_t end); + uint32_t GetUid (void) const; + void PrintDefault (std::ostream &os, Buffer buffer) const; void Print (std::ostream &os, Buffer buffer, PacketPrinter const &printer) const; diff --git a/src/common/packet.cc b/src/common/packet.cc index 18c5f6c6d..c24ac6415 100644 --- a/src/common/packet.cc +++ b/src/common/packet.cc @@ -28,23 +28,20 @@ uint32_t Packet::m_globalUid = 0; Packet::Packet () : m_buffer (), - m_history (m_globalUid, 0), - m_uid (m_globalUid) + m_history (m_globalUid, 0) { m_globalUid++; } Packet::Packet (uint32_t size) : m_buffer (size), - m_history (m_globalUid, size), - m_uid (m_globalUid) + m_history (m_globalUid, size) { m_globalUid++; } Packet::Packet (uint8_t const*buffer, uint32_t size) : m_buffer (), - m_history (m_globalUid, size), - m_uid (m_globalUid) + m_history (m_globalUid, size) { m_globalUid++; m_buffer.AddAtStart (size); @@ -52,11 +49,10 @@ Packet::Packet (uint8_t const*buffer, uint32_t size) i.Write (buffer, size); } -Packet::Packet (Buffer buffer, Tags tags, PacketMetadata history, uint32_t uid) +Packet::Packet (Buffer buffer, Tags tags, PacketMetadata history) : m_buffer (buffer), m_tags (tags), - m_history (history), - m_uid (uid) + m_history (history) {} Packet @@ -66,7 +62,7 @@ Packet::CreateFragment (uint32_t start, uint32_t length) const NS_ASSERT (m_buffer.GetSize () >= start + length); uint32_t end = m_buffer.GetSize () - (start + length); PacketMetadata history = m_history.CreateFragment (start, end); - return Packet (buffer, m_tags, history, m_uid); + return Packet (buffer, m_tags, history); } uint32_t @@ -126,7 +122,7 @@ Packet::PeekData (void) const uint32_t Packet::GetUid (void) const { - return m_uid; + return m_history.GetUid (); } void diff --git a/src/common/packet.h b/src/common/packet.h index fbc9f9b98..07a2ae383 100644 --- a/src/common/packet.h +++ b/src/common/packet.h @@ -295,11 +295,10 @@ public: */ static void EnableMetadata (void); private: - Packet (Buffer buffer, Tags tags, PacketMetadata history, uint32_t uid); + Packet (Buffer buffer, Tags tags, PacketMetadata history); Buffer m_buffer; Tags m_tags; PacketMetadata m_history; - uint32_t m_uid; static uint32_t m_globalUid; }; From 0d7b0e26eedcc8ab3f9bd275841823c381a3ca06 Mon Sep 17 00:00:00 2001 From: Mathieu Lacage Date: Tue, 12 Jun 2007 22:52:56 +0200 Subject: [PATCH 2/2] history -> metadata --- src/common/packet.cc | 28 ++++++++++++++-------------- src/common/packet.h | 12 ++++++------ 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/common/packet.cc b/src/common/packet.cc index c24ac6415..8c03c453a 100644 --- a/src/common/packet.cc +++ b/src/common/packet.cc @@ -28,20 +28,20 @@ uint32_t Packet::m_globalUid = 0; Packet::Packet () : m_buffer (), - m_history (m_globalUid, 0) + m_metadata (m_globalUid, 0) { m_globalUid++; } Packet::Packet (uint32_t size) : m_buffer (size), - m_history (m_globalUid, size) + m_metadata (m_globalUid, size) { m_globalUid++; } Packet::Packet (uint8_t const*buffer, uint32_t size) : m_buffer (), - m_history (m_globalUid, size) + m_metadata (m_globalUid, size) { m_globalUid++; m_buffer.AddAtStart (size); @@ -49,10 +49,10 @@ Packet::Packet (uint8_t const*buffer, uint32_t size) i.Write (buffer, size); } -Packet::Packet (Buffer buffer, Tags tags, PacketMetadata history) +Packet::Packet (Buffer buffer, Tags tags, PacketMetadata metadata) : m_buffer (buffer), m_tags (tags), - m_history (history) + m_metadata (metadata) {} Packet @@ -61,8 +61,8 @@ Packet::CreateFragment (uint32_t start, uint32_t length) const Buffer buffer = m_buffer.CreateFragment (start, length); NS_ASSERT (m_buffer.GetSize () >= start + length); uint32_t end = m_buffer.GetSize () - (start + length); - PacketMetadata history = m_history.CreateFragment (start, end); - return Packet (buffer, m_tags, history); + PacketMetadata metadata = m_metadata.CreateFragment (start, end); + return Packet (buffer, m_tags, metadata); } uint32_t @@ -86,25 +86,25 @@ Packet::AddAtEnd (Packet packet) * XXX: we might need to merge the tag list of the * other packet into the current packet. */ - m_history.AddAtEnd (packet.m_history); + m_metadata.AddAtEnd (packet.m_metadata); } void Packet::AddPaddingAtEnd (uint32_t size) { m_buffer.AddAtEnd (size); - m_history.AddPaddingAtEnd (size); + m_metadata.AddPaddingAtEnd (size); } void Packet::RemoveAtEnd (uint32_t size) { m_buffer.RemoveAtEnd (size); - m_history.RemoveAtEnd (size); + m_metadata.RemoveAtEnd (size); } void Packet::RemoveAtStart (uint32_t size) { m_buffer.RemoveAtStart (size); - m_history.RemoveAtStart (size); + m_metadata.RemoveAtStart (size); } void @@ -122,19 +122,19 @@ Packet::PeekData (void) const uint32_t Packet::GetUid (void) const { - return m_history.GetUid (); + return m_metadata.GetUid (); } void Packet::Print (std::ostream &os) const { - m_history.PrintDefault (os, m_buffer); + m_metadata.PrintDefault (os, m_buffer); } void Packet::Print (std::ostream &os, const PacketPrinter &printer) const { - m_history.Print (os, m_buffer, printer); + m_metadata.Print (os, m_buffer, printer); } void diff --git a/src/common/packet.h b/src/common/packet.h index 07a2ae383..69ebdc392 100644 --- a/src/common/packet.h +++ b/src/common/packet.h @@ -295,10 +295,10 @@ public: */ static void EnableMetadata (void); private: - Packet (Buffer buffer, Tags tags, PacketMetadata history); + Packet (Buffer buffer, Tags tags, PacketMetadata metadata); Buffer m_buffer; Tags m_tags; - PacketMetadata m_history; + PacketMetadata m_metadata; static uint32_t m_globalUid; }; @@ -321,7 +321,7 @@ Packet::AddHeader (T const &header) uint32_t size = header.GetSize (); m_buffer.AddAtStart (size); header.Serialize (m_buffer.Begin ()); - m_history.AddHeader (header, size); + m_metadata.AddHeader (header, size); } template uint32_t @@ -331,7 +331,7 @@ Packet::RemoveHeader (T &header) "Must pass Header subclass to Packet::RemoveHeader"); uint32_t deserialized = header.Deserialize (m_buffer.Begin ()); m_buffer.RemoveAtStart (deserialized); - m_history.RemoveHeader (header, deserialized); + m_metadata.RemoveHeader (header, deserialized); return deserialized; } template @@ -344,7 +344,7 @@ Packet::AddTrailer (T const &trailer) m_buffer.AddAtEnd (size); Buffer::Iterator start = m_buffer.End (); trailer.Serialize (start); - m_history.AddTrailer (trailer, size); + m_metadata.AddTrailer (trailer, size); } template uint32_t @@ -354,7 +354,7 @@ Packet::RemoveTrailer (T &trailer) "Must pass Trailer subclass to Packet::RemoveTrailer"); uint32_t deserialized = trailer.Deserialize (m_buffer.End ()); m_buffer.RemoveAtEnd (deserialized); - m_history.RemoveTrailer (trailer, deserialized); + m_metadata.RemoveTrailer (trailer, deserialized); return deserialized; }