Mtag -> Tag

This commit is contained in:
Mathieu Lacage
2008-04-24 16:03:13 -07:00
parent 96c43a7e26
commit 18ee064a79
12 changed files with 134 additions and 134 deletions

View File

@@ -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 ();

View File

@@ -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);

View File

@@ -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;

View File

@@ -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;

View File

@@ -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);

View File

@@ -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;

View File

@@ -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

View File

@@ -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);

View File

@@ -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;

View File

@@ -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)

View File

@@ -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);
}

View File

@@ -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)