An Address Block and its associated Address TLV Blocks. More...
#include <packetbb.h>
Public Types | |
typedef std::list< Address > ::iterator | AddressIterator |
typedef std::list< Address > ::const_iterator | ConstAddressIterator |
typedef std::list< uint8_t > ::const_iterator | ConstPrefixIterator |
typedef PbbAddressTlvBlock::ConstIterator | ConstTlvIterator |
typedef std::list< uint8_t > ::iterator | PrefixIterator |
typedef PbbAddressTlvBlock::Iterator | TlvIterator |
Public Member Functions | |
Address | AddressBack (void) const |
AddressIterator | AddressBegin (void) |
ConstAddressIterator | AddressBegin (void) const |
void | AddressClear (void) |
Removes all addresses from this block. | |
bool | AddressEmpty (void) const |
AddressIterator | AddressEnd (void) |
ConstAddressIterator | AddressEnd (void) const |
AddressIterator | AddressErase (AddressIterator position) |
Removes the address at the specified position. More... | |
AddressIterator | AddressErase (AddressIterator first, AddressIterator last) |
Removes all addresses from [first, last) (includes first, not includes last). More... | |
Address | AddressFront (void) const |
AddressIterator | AddressInsert (AddressIterator position, const Address value) |
Inserts an address at the specified position in this block. More... | |
void | AddressPopBack (void) |
Removes an address from the back of this block. | |
void | AddressPopFront (void) |
Removes an address from the front of this block. | |
void | AddressPushBack (Address address) |
Appends an address to the back of this block. More... | |
void | AddressPushFront (Address address) |
Prepends an address to the front of this block. More... | |
int | AddressSize (void) const |
void | Deserialize (Buffer::Iterator &start) |
Deserializes an address block from the specified buffer. More... | |
uint32_t | GetSerializedSize (void) const |
bool | operator!= (const PbbAddressBlock &other) const |
bool | operator== (const PbbAddressBlock &other) const |
uint8_t | PrefixBack (void) const |
PrefixIterator | PrefixBegin (void) |
ConstPrefixIterator | PrefixBegin (void) const |
void | PrefixClear (void) |
Removes all prefixes from this block. | |
bool | PrefixEmpty (void) const |
PrefixIterator | PrefixEnd (void) |
ConstPrefixIterator | PrefixEnd (void) const |
PrefixIterator | PrefixErase (PrefixIterator position) |
Removes the prefix at the specified position. More... | |
PrefixIterator | PrefixErase (PrefixIterator first, PrefixIterator last) |
Removes all prefixes from [first, last) (includes first, not includes last). More... | |
uint8_t | PrefixFront (void) const |
PrefixIterator | PrefixInsert (PrefixIterator position, const uint8_t value) |
Inserts a prefix at the specified position in this block. More... | |
void | PrefixPopBack (void) |
Removes a prefix from the back of this block. | |
void | PrefixPopFront (void) |
Removes a prefix from the front of this block. | |
void | PrefixPushBack (uint8_t prefix) |
Appends a prefix to the back of this block. More... | |
void | PrefixPushFront (uint8_t prefix) |
Prepends a prefix to the front of this block. More... | |
int | PrefixSize (void) const |
void | Print (std::ostream &os) const |
Pretty-prints the contents of this address block. More... | |
void | Print (std::ostream &os, int level) const |
Pretty-prints the contents of this address block, with specified indentation. More... | |
void | Serialize (Buffer::Iterator &start) const |
Serializes this address block into the specified buffer. More... | |
Ptr< PbbAddressTlv > | TlvBack (void) |
const Ptr< PbbAddressTlv > | TlvBack (void) const |
TlvIterator | TlvBegin (void) |
ConstTlvIterator | TlvBegin (void) const |
void | TlvClear (void) |
Removes all address TLVs from this block. | |
bool | TlvEmpty (void) const |
TlvIterator | TlvEnd (void) |
ConstTlvIterator | TlvEnd (void) const |
TlvIterator | TlvErase (TlvIterator position) |
Removes the address TLV at the specified position. More... | |
TlvIterator | TlvErase (TlvIterator first, TlvIterator last) |
Removes all address TLVs from [first, last) (includes first, not includes last). More... | |
Ptr< PbbAddressTlv > | TlvFront (void) |
const Ptr< PbbAddressTlv > | TlvFront (void) const |
TlvIterator | TlvInsert (TlvIterator position, const Ptr< PbbTlv > value) |
Inserts an address TLV at the specified position in this block. More... | |
void | TlvPopBack (void) |
Removes an address TLV from the back of this message. | |
void | TlvPopFront (void) |
Removes an address TLV from the front of this message. | |
void | TlvPushBack (Ptr< PbbAddressTlv > address) |
Appends an address TLV to the back of this message. More... | |
void | TlvPushFront (Ptr< PbbAddressTlv > address) |
Prepends an address TLV to the front of this message. More... | |
int | TlvSize (void) const |
Public Member Functions inherited from ns3::SimpleRefCount< PbbAddressBlock > | |
SimpleRefCount (const SimpleRefCount &o) | |
uint32_t | GetReferenceCount (void) const |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
void | Ref (void) const |
void | Unref (void) const |
Protected Member Functions | |
virtual Address | DeserializeAddress (uint8_t *buffer) const =0 |
virtual uint8_t | GetAddressLength (void) const =0 |
virtual void | PrintAddress (std::ostream &os, ConstAddressIterator iter) const =0 |
virtual void | SerializeAddress (uint8_t *buffer, ConstAddressIterator iter) const =0 |
Private Attributes | |
std::list< Address > | m_addressList |
PbbAddressTlvBlock | m_addressTlvList |
std::list< uint8_t > | m_prefixList |
Additional Inherited Members | |
Static Public Member Functions inherited from ns3::SimpleRefCount< PbbAddressBlock > | |
static void | Cleanup (void) |
An Address Block and its associated Address TLV Blocks.
This is a pure virtual base class, when creating address blocks, you should instantiate either PbbAddressBlockIpv4 or PbbAddressBlockIpv6.
Definition at line 1089 of file packetbb.h.
Address ns3::PbbAddressBlock::AddressBack | ( | void | ) | const |
Definition at line 1899 of file packetbb.cc.
References NS_LOG_FUNCTION.
PbbAddressBlock::AddressIterator ns3::PbbAddressBlock::AddressBegin | ( | void | ) |
Definition at line 1850 of file packetbb.cc.
References NS_LOG_FUNCTION.
Referenced by Print(), and Serialize().
PbbAddressBlock::ConstAddressIterator ns3::PbbAddressBlock::AddressBegin | ( | void | ) | const |
Definition at line 1857 of file packetbb.cc.
References NS_LOG_FUNCTION.
bool ns3::PbbAddressBlock::AddressEmpty | ( | void | ) | const |
Definition at line 1885 of file packetbb.cc.
References NS_LOG_FUNCTION.
PbbAddressBlock::AddressIterator ns3::PbbAddressBlock::AddressEnd | ( | void | ) |
Definition at line 1864 of file packetbb.cc.
References NS_LOG_FUNCTION.
Referenced by Print(), and Serialize().
PbbAddressBlock::ConstAddressIterator ns3::PbbAddressBlock::AddressEnd | ( | void | ) | const |
Definition at line 1871 of file packetbb.cc.
References NS_LOG_FUNCTION.
PbbAddressBlock::AddressIterator ns3::PbbAddressBlock::AddressErase | ( | PbbAddressBlock::AddressIterator | position | ) |
Removes the address at the specified position.
position | an Iterator pointing to the address to erase. |
Definition at line 1934 of file packetbb.cc.
References NS_LOG_FUNCTION.
PbbAddressBlock::AddressIterator ns3::PbbAddressBlock::AddressErase | ( | PbbAddressBlock::AddressIterator | first, |
PbbAddressBlock::AddressIterator | last | ||
) |
Removes all addresses from [first, last) (includes first, not includes last).
first | an Iterator pointing to the first address to erase (inclusive). |
last | an Iterator pointing to the element past the last address to erase. |
Definition at line 1941 of file packetbb.cc.
References NS_LOG_FUNCTION.
Address ns3::PbbAddressBlock::AddressFront | ( | void | ) | const |
Definition at line 1892 of file packetbb.cc.
References NS_LOG_FUNCTION.
AddressIterator ns3::PbbAddressBlock::AddressInsert | ( | AddressIterator | position, |
const Address | value | ||
) |
Inserts an address at the specified position in this block.
position | an Iterator pointing to the position in this block to insert the address. |
value | the address to insert. |
void ns3::PbbAddressBlock::AddressPushBack | ( | Address | address | ) |
Appends an address to the back of this block.
address | the address to append. |
Definition at line 1920 of file packetbb.cc.
References NS_LOG_FUNCTION.
Referenced by Deserialize().
void ns3::PbbAddressBlock::AddressPushFront | ( | Address | address | ) |
Prepends an address to the front of this block.
address | the address to prepend. |
Definition at line 1906 of file packetbb.cc.
References NS_LOG_FUNCTION.
int ns3::PbbAddressBlock::AddressSize | ( | void | ) | const |
Definition at line 1878 of file packetbb.cc.
References NS_LOG_FUNCTION.
Referenced by GetSerializedSize(), and Serialize().
void ns3::PbbAddressBlock::Deserialize | ( | Buffer::Iterator & | start | ) |
Deserializes an address block from the specified buffer.
start | a reference to the point in a buffer to begin deserializing. |
Users should not need to call this. Blocks will be deserialized by their containing packet.
Definition at line 2323 of file packetbb.cc.
References AddressPushBack(), ns3::PbbAddressTlvBlock::Deserialize(), NS_LOG_FUNCTION, PrefixPushBack(), ns3::Buffer::Iterator::Read(), and ns3::Buffer::Iterator::ReadU8().
uint32_t ns3::PbbAddressBlock::GetSerializedSize | ( | void | ) | const |
Definition at line 2191 of file packetbb.cc.
References AddressSize(), ns3::PbbAddressTlvBlock::GetSerializedSize(), NS_LOG_FUNCTION, and PrefixSize().
uint8_t ns3::PbbAddressBlock::PrefixBack | ( | void | ) | const |
Definition at line 2007 of file packetbb.cc.
References NS_LOG_FUNCTION.
PbbAddressBlock::PrefixIterator ns3::PbbAddressBlock::PrefixBegin | ( | void | ) |
Definition at line 1958 of file packetbb.cc.
References NS_LOG_FUNCTION.
Referenced by Print(), and Serialize().
PbbAddressBlock::ConstPrefixIterator ns3::PbbAddressBlock::PrefixBegin | ( | void | ) | const |
Definition at line 1965 of file packetbb.cc.
References NS_LOG_FUNCTION.
bool ns3::PbbAddressBlock::PrefixEmpty | ( | void | ) | const |
Definition at line 1993 of file packetbb.cc.
References NS_LOG_FUNCTION.
PbbAddressBlock::PrefixIterator ns3::PbbAddressBlock::PrefixEnd | ( | void | ) |
Definition at line 1972 of file packetbb.cc.
References NS_LOG_FUNCTION.
Referenced by Print(), and Serialize().
PbbAddressBlock::ConstPrefixIterator ns3::PbbAddressBlock::PrefixEnd | ( | void | ) | const |
Definition at line 1979 of file packetbb.cc.
References NS_LOG_FUNCTION.
PbbAddressBlock::PrefixIterator ns3::PbbAddressBlock::PrefixErase | ( | PbbAddressBlock::PrefixIterator | position | ) |
Removes the prefix at the specified position.
position | an Iterator pointing to the prefix to erase. |
Definition at line 2049 of file packetbb.cc.
References NS_LOG_FUNCTION.
PbbAddressBlock::PrefixIterator ns3::PbbAddressBlock::PrefixErase | ( | PbbAddressBlock::PrefixIterator | first, |
PbbAddressBlock::PrefixIterator | last | ||
) |
Removes all prefixes from [first, last) (includes first, not includes last).
first | an Iterator pointing to the first prefix to erase (inclusive). |
last | an Iterator pointing to the element past the last prefix to erase. |
Definition at line 2056 of file packetbb.cc.
References NS_LOG_FUNCTION.
uint8_t ns3::PbbAddressBlock::PrefixFront | ( | void | ) | const |
Definition at line 2000 of file packetbb.cc.
References NS_LOG_FUNCTION.
Referenced by Serialize().
PbbAddressBlock::PrefixIterator ns3::PbbAddressBlock::PrefixInsert | ( | PbbAddressBlock::PrefixIterator | position, |
const uint8_t | value | ||
) |
Inserts a prefix at the specified position in this block.
position | an Iterator pointing to the position in this block to insert the prefix. |
value | the prefix to insert. |
Definition at line 2042 of file packetbb.cc.
References NS_LOG_FUNCTION.
void ns3::PbbAddressBlock::PrefixPushBack | ( | uint8_t | prefix | ) |
Appends a prefix to the back of this block.
prefix | the prefix to append. |
Definition at line 2028 of file packetbb.cc.
References NS_LOG_FUNCTION.
Referenced by Deserialize().
void ns3::PbbAddressBlock::PrefixPushFront | ( | uint8_t | prefix | ) |
Prepends a prefix to the front of this block.
prefix | the prefix to prepend. |
Definition at line 2014 of file packetbb.cc.
References NS_LOG_FUNCTION.
int ns3::PbbAddressBlock::PrefixSize | ( | void | ) | const |
Definition at line 1986 of file packetbb.cc.
References NS_LOG_FUNCTION.
Referenced by GetSerializedSize(), and Serialize().
void ns3::PbbAddressBlock::Print | ( | std::ostream & | os | ) | const |
Pretty-prints the contents of this address block.
os | a stream object to print to. |
Definition at line 2377 of file packetbb.cc.
References NS_LOG_FUNCTION.
void ns3::PbbAddressBlock::Print | ( | std::ostream & | os, |
int | level | ||
) | const |
Pretty-prints the contents of this address block, with specified indentation.
os | a stream object to print to. |
level | level of indentation. |
This probably never needs to be called by users. This is used when recursively printing sub-objects.
Definition at line 2384 of file packetbb.cc.
References AddressBegin(), AddressEnd(), NS_LOG_FUNCTION, PrefixBegin(), PrefixEnd(), and ns3::PbbAddressTlvBlock::Print().
void ns3::PbbAddressBlock::Serialize | ( | Buffer::Iterator & | start | ) | const |
Serializes this address block into the specified buffer.
start | a reference to the point in a buffer to begin serializing. |
Users should not need to call this. Blocks will be deserialized by their containing packet.
Definition at line 2239 of file packetbb.cc.
References AddressBegin(), AddressEnd(), AddressSize(), ns3::Buffer::Iterator::Next(), NS_LOG_FUNCTION, PrefixBegin(), PrefixEnd(), PrefixFront(), PrefixSize(), ns3::PbbAddressTlvBlock::Serialize(), ns3::Buffer::Iterator::Write(), and ns3::Buffer::Iterator::WriteU8().
Ptr< PbbAddressTlv > ns3::PbbAddressBlock::TlvBack | ( | void | ) |
Definition at line 2128 of file packetbb.cc.
References ns3::PbbAddressTlvBlock::Back(), and NS_LOG_FUNCTION.
const Ptr< PbbAddressTlv > ns3::PbbAddressBlock::TlvBack | ( | void | ) | const |
Definition at line 2135 of file packetbb.cc.
References ns3::PbbAddressTlvBlock::Back(), and NS_LOG_FUNCTION.
PbbAddressBlock::TlvIterator ns3::PbbAddressBlock::TlvBegin | ( | void | ) |
Definition at line 2072 of file packetbb.cc.
References ns3::PbbAddressTlvBlock::Begin(), and NS_LOG_FUNCTION.
PbbAddressBlock::ConstTlvIterator ns3::PbbAddressBlock::TlvBegin | ( | void | ) | const |
Definition at line 2079 of file packetbb.cc.
References ns3::PbbAddressTlvBlock::Begin(), and NS_LOG_FUNCTION.
bool ns3::PbbAddressBlock::TlvEmpty | ( | void | ) | const |
Definition at line 2107 of file packetbb.cc.
References ns3::PbbAddressTlvBlock::Empty(), and NS_LOG_FUNCTION.
PbbAddressBlock::TlvIterator ns3::PbbAddressBlock::TlvEnd | ( | void | ) |
Definition at line 2086 of file packetbb.cc.
References ns3::PbbAddressTlvBlock::End(), and NS_LOG_FUNCTION.
PbbAddressBlock::ConstTlvIterator ns3::PbbAddressBlock::TlvEnd | ( | void | ) | const |
Definition at line 2093 of file packetbb.cc.
References ns3::PbbAddressTlvBlock::End(), and NS_LOG_FUNCTION.
PbbAddressBlock::TlvIterator ns3::PbbAddressBlock::TlvErase | ( | PbbAddressBlock::TlvIterator | position | ) |
Removes the address TLV at the specified position.
position | an Iterator pointing to the address TLV to erase. |
Definition at line 2170 of file packetbb.cc.
References ns3::PbbAddressTlvBlock::Erase(), and NS_LOG_FUNCTION.
PbbAddressBlock::TlvIterator ns3::PbbAddressBlock::TlvErase | ( | PbbAddressBlock::TlvIterator | first, |
PbbAddressBlock::TlvIterator | last | ||
) |
Removes all address TLVs from [first, last) (includes first, not includes last).
first | an Iterator pointing to the first address TLV to erase (inclusive). |
last | an Iterator pointing to the element past the last address TLV to erase. |
Definition at line 2177 of file packetbb.cc.
References ns3::PbbAddressTlvBlock::Erase(), and NS_LOG_FUNCTION.
Ptr< PbbAddressTlv > ns3::PbbAddressBlock::TlvFront | ( | void | ) |
Definition at line 2114 of file packetbb.cc.
References ns3::PbbAddressTlvBlock::Front(), and NS_LOG_FUNCTION.
const Ptr< PbbAddressTlv > ns3::PbbAddressBlock::TlvFront | ( | void | ) | const |
Definition at line 2121 of file packetbb.cc.
References ns3::PbbAddressTlvBlock::Front(), and NS_LOG_FUNCTION.
Inserts an address TLV at the specified position in this block.
position | an Iterator pointing to the position in this block to insert the address TLV. |
value | the prefix to insert. |
void ns3::PbbAddressBlock::TlvPushBack | ( | Ptr< PbbAddressTlv > | address | ) |
Appends an address TLV to the back of this message.
address | a smart pointer to the address TLV to append. |
Definition at line 2156 of file packetbb.cc.
References NS_LOG_FUNCTION, and ns3::PbbAddressTlvBlock::PushBack().
void ns3::PbbAddressBlock::TlvPushFront | ( | Ptr< PbbAddressTlv > | address | ) |
Prepends an address TLV to the front of this message.
address | a smart pointer to the address TLV to prepend. |
Definition at line 2142 of file packetbb.cc.
References NS_LOG_FUNCTION, and ns3::PbbAddressTlvBlock::PushFront().
int ns3::PbbAddressBlock::TlvSize | ( | void | ) | const |
Definition at line 2100 of file packetbb.cc.
References NS_LOG_FUNCTION, and ns3::PbbAddressTlvBlock::Size().