Mtag -> Tag
This commit is contained in:
@@ -25,14 +25,14 @@
|
||||
using namespace ns3;
|
||||
|
||||
// define this class in a public header
|
||||
class MyTag : public Mtag
|
||||
class MyTag : public Tag
|
||||
{
|
||||
public:
|
||||
static TypeId GetTypeId (void);
|
||||
virtual TypeId GetInstanceTypeId (void) const;
|
||||
virtual uint32_t GetSerializedSize (void) const;
|
||||
virtual void Serialize (MtagBuffer i) const;
|
||||
virtual void Deserialize (MtagBuffer i);
|
||||
virtual void Serialize (TagBuffer i) const;
|
||||
virtual void Deserialize (TagBuffer i);
|
||||
|
||||
// these are our accessors to our tag structure
|
||||
void SetSimpleValue (uint8_t value);
|
||||
@@ -45,7 +45,7 @@ TypeId
|
||||
MyTag::GetTypeId (void)
|
||||
{
|
||||
static TypeId tid = TypeId ("ns3::MyTag")
|
||||
.SetParent<Mtag> ()
|
||||
.SetParent<Tag> ()
|
||||
.AddConstructor<MyTag> ()
|
||||
.AddAttribute ("SimpleValue",
|
||||
"A simple value",
|
||||
@@ -66,12 +66,12 @@ MyTag::GetSerializedSize (void) const
|
||||
return 1;
|
||||
}
|
||||
void
|
||||
MyTag::Serialize (MtagBuffer i) const
|
||||
MyTag::Serialize (TagBuffer i) const
|
||||
{
|
||||
i.WriteU8 (m_simpleValue);
|
||||
}
|
||||
void
|
||||
MyTag::Deserialize (MtagBuffer i)
|
||||
MyTag::Deserialize (TagBuffer i)
|
||||
{
|
||||
m_simpleValue = i.ReadU8 ();
|
||||
}
|
||||
@@ -95,7 +95,7 @@ int main (int argc, char *argv[])
|
||||
|
||||
// store the tag in a packet.
|
||||
Ptr<Packet> p = Create<Packet> ();
|
||||
p->AddMtag (tag);
|
||||
p->AddTag (tag);
|
||||
|
||||
// create a copy of the packet
|
||||
Ptr<Packet> aCopy = p->Copy ();
|
||||
|
||||
@@ -4,20 +4,20 @@
|
||||
namespace ns3 {
|
||||
|
||||
void
|
||||
MtagBuffer::WriteU8 (uint8_t v)
|
||||
TagBuffer::WriteU8 (uint8_t v)
|
||||
{
|
||||
NS_ASSERT (m_current + 1 <= m_end);
|
||||
*m_current = v;
|
||||
m_current++;
|
||||
}
|
||||
void
|
||||
MtagBuffer::WriteU16 (uint16_t data)
|
||||
TagBuffer::WriteU16 (uint16_t data)
|
||||
{
|
||||
WriteU8 ((data >> 0) & 0xff);
|
||||
WriteU8 ((data >> 8) & 0xff);
|
||||
}
|
||||
void
|
||||
MtagBuffer::WriteU32 (uint32_t data)
|
||||
TagBuffer::WriteU32 (uint32_t data)
|
||||
{
|
||||
WriteU8 ((data >> 0) & 0xff);
|
||||
WriteU8 ((data >> 8) & 0xff);
|
||||
@@ -25,7 +25,7 @@ MtagBuffer::WriteU32 (uint32_t data)
|
||||
WriteU8 ((data >> 24) & 0xff);
|
||||
}
|
||||
void
|
||||
MtagBuffer::WriteU64 (uint64_t data)
|
||||
TagBuffer::WriteU64 (uint64_t data)
|
||||
{
|
||||
WriteU8 ((data >> 0) & 0xff);
|
||||
WriteU8 ((data >> 8) & 0xff);
|
||||
@@ -37,7 +37,7 @@ MtagBuffer::WriteU64 (uint64_t data)
|
||||
WriteU8 ((data >> 54) & 0xff);
|
||||
}
|
||||
void
|
||||
MtagBuffer::WriteDouble (double v)
|
||||
TagBuffer::WriteDouble (double v)
|
||||
{
|
||||
uint8_t *buf = (uint8_t *)&v;
|
||||
for (uint32_t i = 0; i < sizeof (double); ++i, ++buf)
|
||||
@@ -46,7 +46,7 @@ MtagBuffer::WriteDouble (double v)
|
||||
}
|
||||
}
|
||||
void
|
||||
MtagBuffer::Write (const uint8_t *buffer, uint32_t size)
|
||||
TagBuffer::Write (const uint8_t *buffer, uint32_t size)
|
||||
{
|
||||
for (uint32_t i = 0; i < size; ++i, ++buffer)
|
||||
{
|
||||
@@ -54,7 +54,7 @@ MtagBuffer::Write (const uint8_t *buffer, uint32_t size)
|
||||
}
|
||||
}
|
||||
uint8_t
|
||||
MtagBuffer::ReadU8 (void)
|
||||
TagBuffer::ReadU8 (void)
|
||||
{
|
||||
NS_ASSERT (m_current + 1 <= m_end);
|
||||
uint8_t v;
|
||||
@@ -63,7 +63,7 @@ MtagBuffer::ReadU8 (void)
|
||||
return v;
|
||||
}
|
||||
uint16_t
|
||||
MtagBuffer::ReadU16 (void)
|
||||
TagBuffer::ReadU16 (void)
|
||||
{
|
||||
uint8_t byte0 = ReadU8 ();
|
||||
uint8_t byte1 = ReadU8 ();
|
||||
@@ -73,7 +73,7 @@ MtagBuffer::ReadU16 (void)
|
||||
return data;
|
||||
}
|
||||
uint32_t
|
||||
MtagBuffer::ReadU32 (void)
|
||||
TagBuffer::ReadU32 (void)
|
||||
{
|
||||
uint8_t byte0 = ReadU8 ();
|
||||
uint8_t byte1 = ReadU8 ();
|
||||
@@ -89,7 +89,7 @@ MtagBuffer::ReadU32 (void)
|
||||
return data;
|
||||
}
|
||||
uint64_t
|
||||
MtagBuffer::ReadU64 (void)
|
||||
TagBuffer::ReadU64 (void)
|
||||
{
|
||||
uint8_t byte0 = ReadU8 ();
|
||||
uint8_t byte1 = ReadU8 ();
|
||||
@@ -118,7 +118,7 @@ MtagBuffer::ReadU64 (void)
|
||||
return data;
|
||||
}
|
||||
double
|
||||
MtagBuffer::ReadDouble (void)
|
||||
TagBuffer::ReadDouble (void)
|
||||
{
|
||||
double v;
|
||||
uint8_t *buf = (uint8_t *)&v;
|
||||
@@ -129,27 +129,27 @@ MtagBuffer::ReadDouble (void)
|
||||
return v;
|
||||
}
|
||||
void
|
||||
MtagBuffer::Read (uint8_t *buffer, uint32_t size)
|
||||
TagBuffer::Read (uint8_t *buffer, uint32_t size)
|
||||
{
|
||||
for (uint32_t i = 0; i < size; ++i, ++buffer)
|
||||
{
|
||||
*buffer = ReadU8 ();
|
||||
}
|
||||
}
|
||||
MtagBuffer::MtagBuffer (uint8_t *start, uint8_t *end)
|
||||
TagBuffer::TagBuffer (uint8_t *start, uint8_t *end)
|
||||
: m_current (start),
|
||||
m_end (end)
|
||||
{}
|
||||
|
||||
void
|
||||
MtagBuffer::TrimAtEnd (uint32_t trim)
|
||||
TagBuffer::TrimAtEnd (uint32_t trim)
|
||||
{
|
||||
NS_ASSERT (m_current <= (m_end - trim));
|
||||
m_end -= trim;
|
||||
}
|
||||
|
||||
void
|
||||
MtagBuffer::CopyFrom (MtagBuffer o)
|
||||
TagBuffer::CopyFrom (TagBuffer o)
|
||||
{
|
||||
uint32_t size = o.m_end - o.m_current;
|
||||
NS_ASSERT (size <= m_end - m_current);
|
||||
|
||||
@@ -5,10 +5,10 @@
|
||||
|
||||
namespace ns3 {
|
||||
|
||||
class MtagBuffer
|
||||
class TagBuffer
|
||||
{
|
||||
public:
|
||||
MtagBuffer (uint8_t *start, uint8_t *end);
|
||||
TagBuffer (uint8_t *start, uint8_t *end);
|
||||
void TrimAtEnd (uint32_t trim);
|
||||
|
||||
void WriteU8 (uint8_t v);
|
||||
@@ -24,7 +24,7 @@ public:
|
||||
double ReadDouble (void);
|
||||
void Read (uint8_t *buffer, uint32_t size);
|
||||
|
||||
void CopyFrom (MtagBuffer o);
|
||||
void CopyFrom (TagBuffer o);
|
||||
private:
|
||||
|
||||
uint8_t *m_current;
|
||||
|
||||
@@ -2,20 +2,20 @@
|
||||
|
||||
namespace ns3 {
|
||||
|
||||
MtagList::Iterator::Item::Item (MtagBuffer buf_)
|
||||
TagList::Iterator::Item::Item (TagBuffer buf_)
|
||||
: buf (buf_)
|
||||
{}
|
||||
|
||||
bool
|
||||
MtagList::Iterator::HasNext (void) const
|
||||
TagList::Iterator::HasNext (void) const
|
||||
{
|
||||
return m_current < m_end;
|
||||
}
|
||||
struct MtagList::Iterator::Item
|
||||
MtagList::Iterator::Next (void)
|
||||
struct TagList::Iterator::Item
|
||||
TagList::Iterator::Next (void)
|
||||
{
|
||||
NS_ASSERT (HasNext ());
|
||||
struct Item item = Item (MtagBuffer (m_current, m_end));
|
||||
struct Item item = Item (TagBuffer (m_current, m_end));
|
||||
item.tid.SetUid (item.buf.ReadU32 ());
|
||||
item.size = item.buf.ReadU32 ();
|
||||
item.start = item.buf.ReadU32 ();
|
||||
@@ -28,11 +28,11 @@ MtagList::Iterator::Next (void)
|
||||
return item;
|
||||
}
|
||||
void
|
||||
MtagList::Iterator::PrepareForNext (void)
|
||||
TagList::Iterator::PrepareForNext (void)
|
||||
{
|
||||
while (m_current < m_end)
|
||||
{
|
||||
struct Item item = Item (MtagBuffer (m_current, m_end));
|
||||
struct Item item = Item (TagBuffer (m_current, m_end));
|
||||
item.tid.SetUid (item.buf.ReadU32 ());
|
||||
item.size = item.buf.ReadU32 ();
|
||||
item.start = item.buf.ReadU32 ();
|
||||
@@ -47,7 +47,7 @@ MtagList::Iterator::PrepareForNext (void)
|
||||
}
|
||||
}
|
||||
}
|
||||
MtagList::Iterator::Iterator (uint8_t *start, uint8_t *end, uint32_t offsetStart, uint32_t offsetEnd)
|
||||
TagList::Iterator::Iterator (uint8_t *start, uint8_t *end, uint32_t offsetStart, uint32_t offsetEnd)
|
||||
: m_current (start),
|
||||
m_end (end),
|
||||
m_offsetStart (offsetStart),
|
||||
@@ -57,24 +57,24 @@ MtagList::Iterator::Iterator (uint8_t *start, uint8_t *end, uint32_t offsetStart
|
||||
}
|
||||
|
||||
uint32_t
|
||||
MtagList::Iterator::GetOffsetStart (void) const
|
||||
TagList::Iterator::GetOffsetStart (void) const
|
||||
{
|
||||
return m_offsetStart;
|
||||
}
|
||||
|
||||
|
||||
MtagList::MtagList ()
|
||||
TagList::TagList ()
|
||||
: m_buffer (0),
|
||||
m_size (0)
|
||||
{}
|
||||
MtagList::MtagList (const MtagList &o)
|
||||
TagList::TagList (const TagList &o)
|
||||
: m_size (o.m_size)
|
||||
{
|
||||
m_buffer = new uint8_t [o.m_size] ();
|
||||
memcpy (m_buffer, o.m_buffer, o.m_size);
|
||||
}
|
||||
MtagList &
|
||||
MtagList::operator = (const MtagList &o)
|
||||
TagList &
|
||||
TagList::operator = (const TagList &o)
|
||||
{
|
||||
delete [] m_buffer;
|
||||
m_buffer = new uint8_t [o.m_size] ();
|
||||
@@ -82,20 +82,20 @@ MtagList::operator = (const MtagList &o)
|
||||
m_size = o.m_size;
|
||||
return *this;
|
||||
}
|
||||
MtagList::~MtagList ()
|
||||
TagList::~TagList ()
|
||||
{
|
||||
delete [] m_buffer;
|
||||
m_buffer = 0;
|
||||
m_size = 0;
|
||||
}
|
||||
|
||||
MtagBuffer
|
||||
MtagList::Add (TypeId tid, uint32_t bufferSize, uint32_t start, uint32_t end)
|
||||
TagBuffer
|
||||
TagList::Add (TypeId tid, uint32_t bufferSize, uint32_t start, uint32_t end)
|
||||
{
|
||||
uint32_t newSize = m_size + bufferSize + 4 + 4 + 4 + 4;
|
||||
uint8_t *newBuffer = new uint8_t [newSize] ();
|
||||
memcpy (newBuffer, m_buffer, m_size);
|
||||
MtagBuffer tag = MtagBuffer (newBuffer + m_size, newBuffer + newSize);
|
||||
TagBuffer tag = TagBuffer (newBuffer + m_size, newBuffer + newSize);
|
||||
tag.WriteU32 (tid.GetUid ());
|
||||
tag.WriteU32 (bufferSize);
|
||||
tag.WriteU32 (start);
|
||||
@@ -107,44 +107,44 @@ MtagList::Add (TypeId tid, uint32_t bufferSize, uint32_t start, uint32_t end)
|
||||
}
|
||||
|
||||
void
|
||||
MtagList::Add (const MtagList &o)
|
||||
TagList::Add (const TagList &o)
|
||||
{
|
||||
MtagList::Iterator i = o.Begin (0, 0xffffffff);
|
||||
TagList::Iterator i = o.Begin (0, 0xffffffff);
|
||||
while (i.HasNext ())
|
||||
{
|
||||
MtagList::Iterator::Item item = i.Next ();
|
||||
MtagBuffer buf = Add (item.tid, item.size, item.start, item.end);
|
||||
TagList::Iterator::Item item = i.Next ();
|
||||
TagBuffer buf = Add (item.tid, item.size, item.start, item.end);
|
||||
buf.CopyFrom (item.buf);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
MtagList::Remove (const Iterator &i)
|
||||
TagList::Remove (const Iterator &i)
|
||||
{
|
||||
// XXX: more complex to implement.
|
||||
}
|
||||
|
||||
void
|
||||
MtagList::RemoveAll (void)
|
||||
TagList::RemoveAll (void)
|
||||
{
|
||||
delete [] m_buffer;
|
||||
m_buffer = 0;
|
||||
m_size = 0;
|
||||
}
|
||||
|
||||
MtagList::Iterator
|
||||
MtagList::Begin (uint32_t offsetStart, uint32_t offsetEnd) const
|
||||
TagList::Iterator
|
||||
TagList::Begin (uint32_t offsetStart, uint32_t offsetEnd) const
|
||||
{
|
||||
return Iterator (m_buffer, m_buffer + m_size, offsetStart, offsetEnd);
|
||||
}
|
||||
|
||||
bool
|
||||
MtagList::IsDirtyAtEnd (uint32_t appendOffset)
|
||||
TagList::IsDirtyAtEnd (uint32_t appendOffset)
|
||||
{
|
||||
MtagList::Iterator i = Begin (0, 0xffffffff);
|
||||
TagList::Iterator i = Begin (0, 0xffffffff);
|
||||
while (i.HasNext ())
|
||||
{
|
||||
MtagList::Iterator::Item item = i.Next ();
|
||||
TagList::Iterator::Item item = i.Next ();
|
||||
if (item.end > appendOffset)
|
||||
{
|
||||
return true;
|
||||
@@ -154,12 +154,12 @@ MtagList::IsDirtyAtEnd (uint32_t appendOffset)
|
||||
}
|
||||
|
||||
bool
|
||||
MtagList::IsDirtyAtStart (uint32_t prependOffset)
|
||||
TagList::IsDirtyAtStart (uint32_t prependOffset)
|
||||
{
|
||||
MtagList::Iterator i = Begin (0, 0xffffffff);
|
||||
TagList::Iterator i = Begin (0, 0xffffffff);
|
||||
while (i.HasNext ())
|
||||
{
|
||||
MtagList::Iterator::Item item = i.Next ();
|
||||
TagList::Iterator::Item item = i.Next ();
|
||||
if (item.start < prependOffset)
|
||||
{
|
||||
return true;
|
||||
@@ -169,17 +169,17 @@ MtagList::IsDirtyAtStart (uint32_t prependOffset)
|
||||
}
|
||||
|
||||
void
|
||||
MtagList::AddAtEnd (int32_t adjustment, uint32_t appendOffset)
|
||||
TagList::AddAtEnd (int32_t adjustment, uint32_t appendOffset)
|
||||
{
|
||||
if (adjustment == 0 && !IsDirtyAtEnd (appendOffset))
|
||||
{
|
||||
return;
|
||||
}
|
||||
MtagList list;
|
||||
MtagList::Iterator i = Begin (0, 0xffffffff);
|
||||
TagList list;
|
||||
TagList::Iterator i = Begin (0, 0xffffffff);
|
||||
while (i.HasNext ())
|
||||
{
|
||||
MtagList::Iterator::Item item = i.Next ();
|
||||
TagList::Iterator::Item item = i.Next ();
|
||||
item.start += adjustment;
|
||||
item.end += adjustment;
|
||||
|
||||
@@ -195,24 +195,24 @@ MtagList::AddAtEnd (int32_t adjustment, uint32_t appendOffset)
|
||||
{
|
||||
// nothing to do.
|
||||
}
|
||||
MtagBuffer buf = list.Add (item.tid, item.size, item.start, item.end);
|
||||
TagBuffer buf = list.Add (item.tid, item.size, item.start, item.end);
|
||||
buf.CopyFrom (item.buf);
|
||||
}
|
||||
*this = list;
|
||||
}
|
||||
|
||||
void
|
||||
MtagList::AddAtStart (int32_t adjustment, uint32_t prependOffset)
|
||||
TagList::AddAtStart (int32_t adjustment, uint32_t prependOffset)
|
||||
{
|
||||
if (adjustment == 0 && !IsDirtyAtStart (prependOffset))
|
||||
{
|
||||
return;
|
||||
}
|
||||
MtagList list;
|
||||
MtagList::Iterator i = Begin (0, 0xffffffff);
|
||||
TagList list;
|
||||
TagList::Iterator i = Begin (0, 0xffffffff);
|
||||
while (i.HasNext ())
|
||||
{
|
||||
MtagList::Iterator::Item item = i.Next ();
|
||||
TagList::Iterator::Item item = i.Next ();
|
||||
item.start += adjustment;
|
||||
item.end += adjustment;
|
||||
|
||||
@@ -228,7 +228,7 @@ MtagList::AddAtStart (int32_t adjustment, uint32_t prependOffset)
|
||||
{
|
||||
// nothing to do.
|
||||
}
|
||||
MtagBuffer buf = list.Add (item.tid, item.size, item.start, item.end);
|
||||
TagBuffer buf = list.Add (item.tid, item.size, item.start, item.end);
|
||||
buf.CopyFrom (item.buf);
|
||||
}
|
||||
*this = list;
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
namespace ns3 {
|
||||
|
||||
class MtagList
|
||||
class TagList
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -20,16 +20,16 @@ public:
|
||||
uint32_t size;
|
||||
uint32_t start;
|
||||
uint32_t end;
|
||||
MtagBuffer buf;
|
||||
TagBuffer buf;
|
||||
private:
|
||||
friend class MtagList;
|
||||
Item (MtagBuffer buf);
|
||||
friend class TagList;
|
||||
Item (TagBuffer buf);
|
||||
};
|
||||
bool HasNext (void) const;
|
||||
struct MtagList::Iterator::Item Next (void);
|
||||
struct TagList::Iterator::Item Next (void);
|
||||
uint32_t GetOffsetStart (void) const;
|
||||
private:
|
||||
friend class MtagList;
|
||||
friend class TagList;
|
||||
Iterator (uint8_t *start, uint8_t *end, uint32_t offsetStart, uint32_t offsetEnd);
|
||||
void PrepareForNext (void);
|
||||
uint8_t *m_current;
|
||||
@@ -38,19 +38,19 @@ public:
|
||||
uint32_t m_offsetEnd;
|
||||
};
|
||||
|
||||
MtagList ();
|
||||
MtagList (const MtagList &o);
|
||||
MtagList &operator = (const MtagList &o);
|
||||
~MtagList ();
|
||||
TagList ();
|
||||
TagList (const TagList &o);
|
||||
TagList &operator = (const TagList &o);
|
||||
~TagList ();
|
||||
|
||||
MtagBuffer Add (TypeId tid, uint32_t bufferSize, uint32_t start, uint32_t end);
|
||||
TagBuffer Add (TypeId tid, uint32_t bufferSize, uint32_t start, uint32_t end);
|
||||
|
||||
void Add (const MtagList &o);
|
||||
void Add (const TagList &o);
|
||||
|
||||
void Remove (const Iterator &i);
|
||||
void RemoveAll (void);
|
||||
|
||||
MtagList::Iterator Begin (uint32_t offsetStart, uint32_t offsetEnd) const;
|
||||
TagList::Iterator Begin (uint32_t offsetStart, uint32_t offsetEnd) const;
|
||||
|
||||
void AddAtEnd (int32_t adjustment, uint32_t appendOffset);
|
||||
void AddAtStart (int32_t adjustment, uint32_t prependOffset);
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
namespace ns3 {
|
||||
|
||||
TypeId
|
||||
Mtag::GetTypeId (void)
|
||||
Tag::GetTypeId (void)
|
||||
{
|
||||
static TypeId tid = TypeId ("ns3::Mtag")
|
||||
static TypeId tid = TypeId ("ns3::Tag")
|
||||
.SetParent<ObjectBase> ()
|
||||
;
|
||||
return tid;
|
||||
|
||||
@@ -7,14 +7,14 @@
|
||||
|
||||
namespace ns3 {
|
||||
|
||||
class Mtag : public ObjectBase
|
||||
class Tag : public ObjectBase
|
||||
{
|
||||
public:
|
||||
static TypeId GetTypeId (void);
|
||||
|
||||
virtual uint32_t GetSerializedSize (void) const = 0;
|
||||
virtual void Serialize (MtagBuffer i) const = 0;
|
||||
virtual void Deserialize (MtagBuffer i) = 0;
|
||||
virtual void Serialize (TagBuffer i) const = 0;
|
||||
virtual void Deserialize (TagBuffer i) = 0;
|
||||
};
|
||||
|
||||
} // namespace ns3
|
||||
|
||||
@@ -40,7 +40,7 @@ TagIterator::Item::GetEnd (void) const
|
||||
return m_end;
|
||||
}
|
||||
void
|
||||
TagIterator::Item::GetTag (Mtag &tag) const
|
||||
TagIterator::Item::GetTag (Tag &tag) const
|
||||
{
|
||||
if (tag.GetInstanceTypeId () != GetTypeId ())
|
||||
{
|
||||
@@ -48,7 +48,7 @@ TagIterator::Item::GetTag (Mtag &tag) const
|
||||
}
|
||||
tag.Deserialize (m_buffer);
|
||||
}
|
||||
TagIterator::Item::Item (TypeId tid, uint32_t start, uint32_t end, MtagBuffer buffer)
|
||||
TagIterator::Item::Item (TypeId tid, uint32_t start, uint32_t end, TagBuffer buffer)
|
||||
: m_tid (tid),
|
||||
m_start (start),
|
||||
m_end (end),
|
||||
@@ -62,7 +62,7 @@ TagIterator::HasNext (void) const
|
||||
TagIterator::Item
|
||||
TagIterator::Next (void)
|
||||
{
|
||||
MtagList::Iterator::Item i = m_current.Next ();
|
||||
TagList::Iterator::Item i = m_current.Next ();
|
||||
|
||||
TagIterator::Item item = TagIterator::Item (i.tid,
|
||||
i.start-m_current.GetOffsetStart (),
|
||||
@@ -72,7 +72,7 @@ TagIterator::Next (void)
|
||||
|
||||
return item;
|
||||
}
|
||||
TagIterator::TagIterator (MtagList::Iterator i)
|
||||
TagIterator::TagIterator (TagList::Iterator i)
|
||||
: m_current (i)
|
||||
{}
|
||||
|
||||
@@ -150,7 +150,7 @@ Packet::Packet (uint8_t const*buffer, uint32_t size)
|
||||
i.Write (buffer, size);
|
||||
}
|
||||
|
||||
Packet::Packet (const Buffer &buffer, const MtagList &tagList, const PacketMetadata &metadata)
|
||||
Packet::Packet (const Buffer &buffer, const TagList &tagList, const PacketMetadata &metadata)
|
||||
: m_buffer (buffer),
|
||||
m_tagList (tagList),
|
||||
m_metadata (metadata),
|
||||
@@ -230,7 +230,7 @@ Packet::AddAtEnd (Ptr<const Packet> packet)
|
||||
uint32_t appendPrependOffset = m_buffer.GetCurrentEndOffset () - packet->m_buffer.GetSize ();
|
||||
m_tagList.AddAtEnd (m_buffer.GetCurrentStartOffset () - aStart,
|
||||
appendPrependOffset);
|
||||
MtagList copy = packet->m_tagList;
|
||||
TagList copy = packet->m_tagList;
|
||||
copy.AddAtStart (m_buffer.GetCurrentEndOffset () - bEnd,
|
||||
appendPrependOffset);
|
||||
m_tagList.Add (copy);
|
||||
@@ -468,10 +468,10 @@ Packet::Deserialize (Buffer buffer)
|
||||
}
|
||||
|
||||
void
|
||||
Packet::AddMtag (const Mtag &tag) const
|
||||
Packet::AddTag (const Tag &tag) const
|
||||
{
|
||||
MtagList *list = const_cast<MtagList *> (&m_tagList);
|
||||
MtagBuffer buffer = list->Add (tag.GetInstanceTypeId (), tag.GetSerializedSize (),
|
||||
TagList *list = const_cast<TagList *> (&m_tagList);
|
||||
TagBuffer buffer = list->Add (tag.GetInstanceTypeId (), tag.GetSerializedSize (),
|
||||
m_buffer.GetCurrentStartOffset (),
|
||||
m_buffer.GetCurrentEndOffset ());
|
||||
tag.Serialize (buffer);
|
||||
@@ -483,7 +483,7 @@ Packet::GetTagIterator (void) const
|
||||
}
|
||||
|
||||
bool
|
||||
Packet::FindFirstMatchingTag (Mtag &tag) const
|
||||
Packet::FindFirstMatchingTag (Tag &tag) const
|
||||
{
|
||||
TypeId tid = tag.GetInstanceTypeId ();
|
||||
TagIterator i = GetTagIterator ();
|
||||
@@ -520,7 +520,7 @@ using namespace ns3;
|
||||
|
||||
namespace {
|
||||
|
||||
class ATestTagBase : public Mtag
|
||||
class ATestTagBase : public Tag
|
||||
{
|
||||
public:
|
||||
ATestTagBase () : m_error (false) {}
|
||||
@@ -535,7 +535,7 @@ public:
|
||||
std::ostringstream oss;
|
||||
oss << "anon::ATestTag<" << N << ">";
|
||||
static TypeId tid = TypeId (oss.str ().c_str ())
|
||||
.SetParent<Mtag> ()
|
||||
.SetParent<Tag> ()
|
||||
.AddConstructor<ATestTag<N> > ()
|
||||
.HideFromDocumentation ()
|
||||
;
|
||||
@@ -547,13 +547,13 @@ public:
|
||||
virtual uint32_t GetSerializedSize (void) const {
|
||||
return N;
|
||||
}
|
||||
virtual void Serialize (MtagBuffer buf) const {
|
||||
virtual void Serialize (TagBuffer buf) const {
|
||||
for (uint32_t i = 0; i < N; ++i)
|
||||
{
|
||||
buf.WriteU8 (N);
|
||||
}
|
||||
}
|
||||
virtual void Deserialize (MtagBuffer buf) {
|
||||
virtual void Deserialize (TagBuffer buf) {
|
||||
for (uint32_t i = 0; i < N; ++i)
|
||||
{
|
||||
uint8_t v = buf.ReadU8 ();
|
||||
@@ -660,23 +660,23 @@ PacketTest::RunTests (void)
|
||||
|
||||
Ptr<const Packet> p = Create<Packet> (1000);
|
||||
|
||||
p->AddMtag (ATestTag<1> ());
|
||||
p->AddTag (ATestTag<1> ());
|
||||
CHECK (p, 1, E (1, 0, 1000));
|
||||
Ptr<const Packet> copy = p->Copy ();
|
||||
CHECK (copy, 1, E (1, 0, 1000));
|
||||
|
||||
p->AddMtag (ATestTag<2> ());
|
||||
p->AddTag (ATestTag<2> ());
|
||||
CHECK (p, 2, E (1, 0, 1000), E(2, 0, 1000));
|
||||
CHECK (copy, 1, E (1, 0, 1000));
|
||||
|
||||
Ptr<Packet> frag0 = p->CreateFragment (0, 10);
|
||||
Ptr<Packet> frag1 = p->CreateFragment (10, 90);
|
||||
Ptr<const Packet> frag2 = p->CreateFragment (100, 900);
|
||||
frag0->AddMtag (ATestTag<3> ());
|
||||
frag0->AddTag (ATestTag<3> ());
|
||||
CHECK (frag0, 3, E (1, 0, 10), E(2, 0, 10), E (3, 0, 10));
|
||||
frag1->AddMtag (ATestTag<4> ());
|
||||
frag1->AddTag (ATestTag<4> ());
|
||||
CHECK (frag1, 3, E (1, 0, 90), E(2, 0, 90), E (4, 0, 90));
|
||||
frag2->AddMtag (ATestTag<5> ());
|
||||
frag2->AddTag (ATestTag<5> ());
|
||||
CHECK (frag2, 3, E (1, 0, 900), E(2, 0, 900), E (5, 0, 900));
|
||||
|
||||
frag1->AddAtEnd (frag2);
|
||||
|
||||
@@ -72,14 +72,14 @@ public:
|
||||
* tag provided by the user does not match the type of
|
||||
* the underlying tag.
|
||||
*/
|
||||
void GetTag (Mtag &tag) const;
|
||||
void GetTag (Tag &tag) const;
|
||||
private:
|
||||
friend class TagIterator;
|
||||
Item (TypeId tid, uint32_t start, uint32_t end, MtagBuffer buffer);
|
||||
Item (TypeId tid, uint32_t start, uint32_t end, TagBuffer buffer);
|
||||
TypeId m_tid;
|
||||
uint32_t m_start;
|
||||
uint32_t m_end;
|
||||
MtagBuffer m_buffer;
|
||||
TagBuffer m_buffer;
|
||||
};
|
||||
/**
|
||||
* \returns true if calling Next is safe, false otherwise.
|
||||
@@ -91,8 +91,8 @@ public:
|
||||
Item Next (void);
|
||||
private:
|
||||
friend class Packet;
|
||||
TagIterator (MtagList::Iterator i);
|
||||
MtagList::Iterator m_current;
|
||||
TagIterator (TagList::Iterator i);
|
||||
TagList::Iterator m_current;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -353,7 +353,7 @@ public:
|
||||
* totally evil to allow a trace sink to modify the content of a
|
||||
* packet).
|
||||
*/
|
||||
void AddMtag (const Mtag &tag) const;
|
||||
void AddTag (const Tag &tag) const;
|
||||
/**
|
||||
* \returns an iterator over the set of tags included in this packet.
|
||||
*/
|
||||
@@ -365,7 +365,7 @@ public:
|
||||
* If the requested tag type is found, it is copied in the user's
|
||||
* provided tag instance.
|
||||
*/
|
||||
bool FindFirstMatchingTag (Mtag &tag) const;
|
||||
bool FindFirstMatchingTag (Tag &tag) const;
|
||||
|
||||
/**
|
||||
* Remove all the tags stored in this packet.
|
||||
@@ -373,11 +373,11 @@ public:
|
||||
void RemoveAllTags (void);
|
||||
|
||||
private:
|
||||
Packet (const Buffer &buffer, const MtagList &tagList, const PacketMetadata &metadata);
|
||||
Packet (const Buffer &buffer, const TagList &tagList, const PacketMetadata &metadata);
|
||||
Packet (const Packet &o);
|
||||
Packet &operator = (const Packet &o);
|
||||
Buffer m_buffer;
|
||||
MtagList m_tagList;
|
||||
TagList m_tagList;
|
||||
PacketMetadata m_metadata;
|
||||
mutable uint32_t m_refCount;
|
||||
static uint32_t m_globalUid;
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
namespace {
|
||||
|
||||
class TimestampTag : public ns3::Mtag
|
||||
class TimestampTag : public ns3::Tag
|
||||
{
|
||||
public:
|
||||
TimestampTag ();
|
||||
@@ -14,8 +14,8 @@ public:
|
||||
virtual ns3::TypeId GetInstanceTypeId (void) const;
|
||||
|
||||
virtual uint32_t GetSerializedSize (void) const;
|
||||
virtual void Serialize (ns3::MtagBuffer i) const;
|
||||
virtual void Deserialize (ns3::MtagBuffer i);
|
||||
virtual void Serialize (ns3::TagBuffer i) const;
|
||||
virtual void Deserialize (ns3::TagBuffer i);
|
||||
|
||||
|
||||
ns3::Time GetTxTime (void) const;
|
||||
@@ -31,7 +31,7 @@ ns3::TypeId
|
||||
TimestampTag::GetTypeId (void)
|
||||
{
|
||||
static ns3::TypeId tid = ns3::TypeId ("anon::TimestampTag")
|
||||
.SetParent<Mtag> ()
|
||||
.SetParent<Tag> ()
|
||||
.AddConstructor<TimestampTag> ()
|
||||
.AddAttribute ("CreationTime",
|
||||
"The time at which the timestamp was created",
|
||||
@@ -53,12 +53,12 @@ TimestampTag::GetSerializedSize (void) const
|
||||
return 8;
|
||||
}
|
||||
void
|
||||
TimestampTag::Serialize (ns3::MtagBuffer i) const
|
||||
TimestampTag::Serialize (ns3::TagBuffer i) const
|
||||
{
|
||||
i.WriteU64 (m_creationTime);
|
||||
}
|
||||
void
|
||||
TimestampTag::Deserialize (ns3::MtagBuffer i)
|
||||
TimestampTag::Deserialize (ns3::TagBuffer i)
|
||||
{
|
||||
m_creationTime = i.ReadU64 ();
|
||||
}
|
||||
@@ -82,7 +82,7 @@ void
|
||||
DelayJitterEstimation::PrepareTx (Ptr<const Packet> packet)
|
||||
{
|
||||
TimestampTag tag;
|
||||
packet->AddMtag (tag);
|
||||
packet->AddTag (tag);
|
||||
}
|
||||
void
|
||||
DelayJitterEstimation::RecordRx (Ptr<const Packet> packet)
|
||||
|
||||
@@ -37,7 +37,7 @@ NS_LOG_COMPONENT_DEFINE ("MacLow");
|
||||
|
||||
namespace ns3 {
|
||||
|
||||
class SnrTag : public Mtag
|
||||
class SnrTag : public Tag
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -45,8 +45,8 @@ public:
|
||||
virtual TypeId GetInstanceTypeId (void) const;
|
||||
|
||||
virtual uint32_t GetSerializedSize (void) const;
|
||||
virtual void Serialize (MtagBuffer i) const;
|
||||
virtual void Deserialize (MtagBuffer i);
|
||||
virtual void Serialize (TagBuffer i) const;
|
||||
virtual void Deserialize (TagBuffer i);
|
||||
|
||||
void Set (double snr);
|
||||
double Get (void) const;
|
||||
@@ -58,7 +58,7 @@ TypeId
|
||||
SnrTag::GetTypeId (void)
|
||||
{
|
||||
static TypeId tid = TypeId ("ns3::SnrTag")
|
||||
.SetParent<Mtag> ()
|
||||
.SetParent<Tag> ()
|
||||
.AddConstructor<SnrTag> ()
|
||||
.AddAttribute ("Snr", "The snr of the last packet received",
|
||||
DoubleValue (0.0),
|
||||
@@ -79,12 +79,12 @@ SnrTag::GetSerializedSize (void) const
|
||||
return sizeof (double);
|
||||
}
|
||||
void
|
||||
SnrTag::Serialize (MtagBuffer i) const
|
||||
SnrTag::Serialize (TagBuffer i) const
|
||||
{
|
||||
i.WriteDouble (m_snr);
|
||||
}
|
||||
void
|
||||
SnrTag::Deserialize (MtagBuffer i)
|
||||
SnrTag::Deserialize (TagBuffer i)
|
||||
{
|
||||
m_snr = i.ReadDouble ();
|
||||
}
|
||||
@@ -1036,7 +1036,7 @@ MacLow::SendCtsAfterRts (Mac48Address source, Time duration, WifiMode rtsTxMode,
|
||||
|
||||
struct SnrTag tag;
|
||||
tag.Set (rtsSnr);
|
||||
packet->AddMtag (tag);
|
||||
packet->AddTag (tag);
|
||||
|
||||
ForwardDown (packet, &cts, ctsTxMode);
|
||||
}
|
||||
@@ -1114,7 +1114,7 @@ MacLow::SendAckAfterData (Mac48Address source, Time duration, WifiMode dataTxMod
|
||||
|
||||
struct SnrTag tag;
|
||||
tag.Set (dataSnr);
|
||||
packet->AddMtag (tag);
|
||||
packet->AddTag (tag);
|
||||
|
||||
ForwardDown (packet, &ack, ackTxMode);
|
||||
}
|
||||
|
||||
@@ -306,7 +306,7 @@ WifiRemoteStationManager::IsLowLatency (void) const
|
||||
|
||||
namespace ns3 {
|
||||
|
||||
class TxModeTag : public Mtag
|
||||
class TxModeTag : public Tag
|
||||
{
|
||||
public:
|
||||
TxModeTag ();
|
||||
@@ -317,8 +317,8 @@ public:
|
||||
static TypeId GetTypeId (void);
|
||||
virtual TypeId GetInstanceTypeId (void) const;
|
||||
virtual uint32_t GetSerializedSize (void) const;
|
||||
virtual void Serialize (MtagBuffer i) const;
|
||||
virtual void Deserialize (MtagBuffer i);
|
||||
virtual void Serialize (TagBuffer i) const;
|
||||
virtual void Deserialize (TagBuffer i);
|
||||
private:
|
||||
WifiMode m_rtsMode;
|
||||
WifiMode m_dataMode;
|
||||
@@ -344,7 +344,7 @@ TypeId
|
||||
TxModeTag::GetTypeId (void)
|
||||
{
|
||||
static TypeId tid = TypeId ("ns3::TxModeTag")
|
||||
.SetParent<Mtag> ()
|
||||
.SetParent<Tag> ()
|
||||
.AddConstructor<TxModeTag> ()
|
||||
.AddAttribute ("RtsTxMode",
|
||||
"Tx mode of rts to use later",
|
||||
@@ -370,13 +370,13 @@ TxModeTag::GetSerializedSize (void) const
|
||||
return sizeof (WifiMode) * 2;
|
||||
}
|
||||
void
|
||||
TxModeTag::Serialize (MtagBuffer i) const
|
||||
TxModeTag::Serialize (TagBuffer i) const
|
||||
{
|
||||
i.Write ((uint8_t *)&m_rtsMode, sizeof (WifiMode));
|
||||
i.Write ((uint8_t *)&m_dataMode, sizeof (WifiMode));
|
||||
}
|
||||
void
|
||||
TxModeTag::Deserialize (MtagBuffer i)
|
||||
TxModeTag::Deserialize (TagBuffer i)
|
||||
{
|
||||
i.Read ((uint8_t *)&m_rtsMode, sizeof (WifiMode));
|
||||
i.Read ((uint8_t *)&m_dataMode, sizeof (WifiMode));
|
||||
@@ -551,7 +551,7 @@ WifiRemoteStation::PrepareForQueue (Ptr<const Packet> packet, uint32_t fullPacke
|
||||
return;
|
||||
}
|
||||
TxModeTag tag = TxModeTag (DoGetRtsMode (), DoGetDataMode (fullPacketSize));
|
||||
packet->AddMtag (tag);
|
||||
packet->AddTag (tag);
|
||||
}
|
||||
WifiMode
|
||||
WifiRemoteStation::GetDataMode (Ptr<const Packet> packet, uint32_t fullPacketSize)
|
||||
|
||||
Reference in New Issue
Block a user