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 > ::iterator | PrefixIterator |
typedef std::list< uint8_t > ::const_iterator | ConstPrefixIterator |
typedef PbbAddressTlvBlock::Iterator | TlvIterator |
typedef PbbAddressTlvBlock::ConstIterator | ConstTlvIterator |
Public Member Functions | |
AddressIterator | AddressBegin (void) |
ConstAddressIterator | AddressBegin (void) const |
AddressIterator | AddressEnd (void) |
ConstAddressIterator | AddressEnd (void) const |
int | AddressSize (void) const |
bool | AddressEmpty (void) const |
Address | AddressFront (void) const |
Address | AddressBack (void) const |
void | AddressPushFront (Address address) |
Prepends an address to the front 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. | |
void | AddressPopBack (void) |
Removes an address from the back of this block. | |
AddressIterator | AddressInsert (AddressIterator position, const Address value) |
Inserts an address at the specified position in this block. | |
AddressIterator | AddressErase (AddressIterator position) |
Removes the address at the specified position. | |
AddressIterator | AddressErase (AddressIterator first, AddressIterator last) |
Removes all addresses from [first, last) (includes first, not includes last). | |
void | AddressClear (void) |
Removes all addresses from this block. | |
PrefixIterator | PrefixBegin (void) |
ConstPrefixIterator | PrefixBegin (void) const |
PrefixIterator | PrefixEnd (void) |
ConstPrefixIterator | PrefixEnd (void) const |
int | PrefixSize (void) const |
bool | PrefixEmpty (void) const |
uint8_t | PrefixFront (void) const |
uint8_t | PrefixBack (void) const |
void | PrefixPushFront (uint8_t prefix) |
Prepends a prefix to the front 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. | |
void | PrefixPopBack (void) |
Removes a prefix from the back of this block. | |
PrefixIterator | PrefixInsert (PrefixIterator position, const uint8_t value) |
Inserts a prefix at the specified position in this block. | |
PrefixIterator | PrefixErase (PrefixIterator position) |
Removes the prefix at the specified position. | |
PrefixIterator | PrefixErase (PrefixIterator first, PrefixIterator last) |
Removes all prefixes from [first, last) (includes first, not includes last). | |
void | PrefixClear (void) |
Removes all prefixes from this block. | |
TlvIterator | TlvBegin (void) |
ConstTlvIterator | TlvBegin (void) const |
TlvIterator | TlvEnd (void) |
ConstTlvIterator | TlvEnd (void) const |
int | TlvSize (void) const |
bool | TlvEmpty (void) const |
Ptr< PbbAddressTlv > | TlvFront (void) |
const Ptr< PbbAddressTlv > | TlvFront (void) const |
Ptr< PbbAddressTlv > | TlvBack (void) |
const Ptr< PbbAddressTlv > | TlvBack (void) const |
void | TlvPushFront (Ptr< PbbAddressTlv > address) |
Prepends an address TLV to the front 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. | |
void | TlvPopBack (void) |
Removes an address TLV from the back of this message. | |
TlvIterator | TlvInsert (TlvIterator position, const Ptr< PbbTlv > value) |
Inserts an address TLV at the specified position in this block. | |
TlvIterator | TlvErase (TlvIterator position) |
Removes the address TLV at the specified position. | |
TlvIterator | TlvErase (TlvIterator first, TlvIterator last) |
Removes all address TLVs from [first, last) (includes first, not includes last). | |
void | TlvClear (void) |
Removes all address TLVs from this block. | |
uint32_t | GetSerializedSize (void) const |
void | Serialize (Buffer::Iterator &start) const |
Serializes this address block into the specified buffer. | |
void | Deserialize (Buffer::Iterator &start) |
Deserializes an address block from the specified buffer. | |
void | Print (std::ostream &os) const |
Pretty-prints the contents of this address block. | |
void | Print (std::ostream &os, int level) const |
Pretty-prints the contents of this address block, with specified indentation. | |
bool | operator== (const PbbAddressBlock &other) const |
bool | operator!= (const PbbAddressBlock &other) const |
Protected Member Functions | |
virtual uint8_t | GetAddressLength (void) const =0 |
virtual void | SerializeAddress (uint8_t *buffer, ConstAddressIterator iter) const =0 |
virtual Address | DeserializeAddress (uint8_t *buffer) const =0 |
virtual void | PrintAddress (std::ostream &os, ConstAddressIterator iter) const =0 |
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.
Address ns3::PbbAddressBlock::AddressBack | ( | void | ) | const |
ConstAddressIterator ns3::PbbAddressBlock::AddressBegin | ( | void | ) | const |
AddressIterator ns3::PbbAddressBlock::AddressBegin | ( | void | ) |
bool ns3::PbbAddressBlock::AddressEmpty | ( | void | ) | const |
ConstAddressIterator ns3::PbbAddressBlock::AddressEnd | ( | void | ) | const |
AddressIterator ns3::PbbAddressBlock::AddressEnd | ( | void | ) |
AddressIterator ns3::PbbAddressBlock::AddressErase | ( | AddressIterator | first, | |
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. |
AddressIterator ns3::PbbAddressBlock::AddressErase | ( | AddressIterator | position | ) |
Removes the address at the specified position.
position | an Iterator pointing to the address to erase. |
Address ns3::PbbAddressBlock::AddressFront | ( | void | ) | const |
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. |
void ns3::PbbAddressBlock::AddressPushFront | ( | Address | address | ) |
Prepends an address to the front of this block.
address | the address to prepend. |
int ns3::PbbAddressBlock::AddressSize | ( | void | ) | const |
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.
uint32_t ns3::PbbAddressBlock::GetSerializedSize | ( | void | ) | const |
uint8_t ns3::PbbAddressBlock::PrefixBack | ( | void | ) | const |
ConstPrefixIterator ns3::PbbAddressBlock::PrefixBegin | ( | void | ) | const |
PrefixIterator ns3::PbbAddressBlock::PrefixBegin | ( | void | ) |
bool ns3::PbbAddressBlock::PrefixEmpty | ( | void | ) | const |
ConstPrefixIterator ns3::PbbAddressBlock::PrefixEnd | ( | void | ) | const |
PrefixIterator ns3::PbbAddressBlock::PrefixEnd | ( | void | ) |
PrefixIterator ns3::PbbAddressBlock::PrefixErase | ( | PrefixIterator | first, | |
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. |
PrefixIterator ns3::PbbAddressBlock::PrefixErase | ( | PrefixIterator | position | ) |
Removes the prefix at the specified position.
position | an Iterator pointing to the prefix to erase. |
uint8_t ns3::PbbAddressBlock::PrefixFront | ( | void | ) | const |
PrefixIterator ns3::PbbAddressBlock::PrefixInsert | ( | 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. |
void ns3::PbbAddressBlock::PrefixPushBack | ( | uint8_t | prefix | ) |
Appends a prefix to the back of this block.
prefix | the prefix to append. |
void ns3::PbbAddressBlock::PrefixPushFront | ( | uint8_t | prefix | ) |
Prepends a prefix to the front of this block.
prefix | the prefix to prepend. |
int ns3::PbbAddressBlock::PrefixSize | ( | void | ) | const |
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.
void ns3::PbbAddressBlock::Print | ( | std::ostream & | os | ) | const |
Pretty-prints the contents of this address block.
os | a stream object to print to. |
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.
const Ptr<PbbAddressTlv> ns3::PbbAddressBlock::TlvBack | ( | void | ) | const |
Ptr<PbbAddressTlv> ns3::PbbAddressBlock::TlvBack | ( | void | ) |
ConstTlvIterator ns3::PbbAddressBlock::TlvBegin | ( | void | ) | const |
TlvIterator ns3::PbbAddressBlock::TlvBegin | ( | void | ) |
bool ns3::PbbAddressBlock::TlvEmpty | ( | void | ) | const |
ConstTlvIterator ns3::PbbAddressBlock::TlvEnd | ( | void | ) | const |
TlvIterator ns3::PbbAddressBlock::TlvEnd | ( | void | ) |
TlvIterator ns3::PbbAddressBlock::TlvErase | ( | TlvIterator | first, | |
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. |
TlvIterator ns3::PbbAddressBlock::TlvErase | ( | TlvIterator | position | ) |
Removes the address TLV at the specified position.
position | an Iterator pointing to the address TLV to erase. |
const Ptr<PbbAddressTlv> ns3::PbbAddressBlock::TlvFront | ( | void | ) | const |
Ptr<PbbAddressTlv> ns3::PbbAddressBlock::TlvFront | ( | void | ) |
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. |
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. |
int ns3::PbbAddressBlock::TlvSize | ( | void | ) | const |