Parse a MIHF_ID. More...

#include <senf/Packets/80221Bundle/TLVParser.hh>

Inheritance diagram for senf::MIHFIdTLVParser:

Public Types

typedef MIHLengthParser idLength_t
 
- Public Types inherited from senf::MIHBaseTLVParser
typedef UInt8Parser type_t
 
typedef MIHLengthParser length_t
 
typedef GenericTLVParserRegistry< MIHBaseTLVParser > Registry
 
- Public Types inherited from senf::PacketParserBase
typedef detail::packet::iterator data_iterator
 Raw data iterator type. More...
 
typedef detail::packet::size_type size_type
 Unsigned integral type. More...
 
typedef detail::packet::difference_type difference_type
 Signed integral type. More...
 
typedef detail::packet::byte byte
 Unsigned 8bit value, the raw value type. More...
 
typedef PacketData * state_type
 Type of the 'state' parameter. More...
 
typedef PacketParserBase parser_base_type
 Base type of the next parser. More...
 

Public Member Functions

MIHLengthParser ::value_type idLength () const
 
void dump (std::ostream &os) const
 
void maxIdLength (boost::uint8_t maxl) const
 
void finalize ()
 
- Public Member Functions inherited from senf::MIHBaseTLVParser
UInt8Parser type () const
 
MIHLengthParser ::value_type length () const
 
void finalize ()
 shrink size of the TLV length field to minimum More...
 
- Public Member Functions inherited from senf::PacketParserBase
data_iterator i () const
 Return beginning of data to parse. More...
 
data_iterator i (size_type offset) const
 Return iterator offset bytes from the start. More...
 
state_type state () const
 Return state of this parser. More...
 
PacketData & data () const
 Access the packets raw data container. More...
 
void init () const
 Default implementation. More...
 

Protected Member Functions

MIHLengthParser idLength_ () const
 
- Protected Member Functions inherited from senf::MIHBaseTLVParser
MIHLengthParser length_ () const
 
void maxLength (MIHLengthParser::value_type maxl) const
 set maximum value of TLV length field More...
 
void validateType (boost::uint8_t type) const
 
void validateTypeLength (boost::uint8_t type, MIHLengthParser::value_type length) const
 
- Protected Member Functions inherited from senf::PacketParserBase
ParserProtector protect () const
 
 PacketParserBase (data_iterator i, state_type s)
 Standard constructor. More...
 
 PacketParserBase (data_iterator i, state_type s, size_type size)
 Size checking constructor. More...
 
bool check (size_type size) const
 Check size of data container. More...
 
void validate (size_type size) const
 Validate size of data container. More...
 
template<class Parser >
Parser parse (data_iterator i) const
 Create sub-parser. More...
 
template<class Parser , class Arg >
Parser parse (Arg const &arg, data_iterator i) const
 Create sub-parser. More...
 
template<class Parser >
Parser parse (size_type n) const
 Create sub-parser. More...
 
template<class Parser , class Arg >
Parser parse (Arg const &arg, size_type n) const
 Create sub-parser. More...
 
void defaultInit () const
 Default implementation. More...
 
Packet packet () const
 Get packet this parser is parsing from. More...
 
void resize (size_type oldSize, size_type newSize)
 Resize data container. More...
 

Value setters

void value (MIHFId const &id)
 
void value (std::string const &id)
 
void value (senf::MACAddress const &addr)
 
void value (senf::INet4Address const &addr)
 
void value (senf::INet6Address const &addr)
 
void value (senf::EUI64 const &addr)
 

Value getters

MIHFId valueAs (MIHFId::Type type) const
 
std::string valueAsString () const
 
senf::MACAddress valueAsMACAddress () const
 
senf::INet4Address valueAsINet4Address () const
 
senf::INet6Address valueAsINet6Address () const
 
senf::EUI64 valueAsEUI64 () const
 

Value comparisons

bool valueEquals (MIHFId const &id) const
 
bool valueEquals (std::string const &id) const
 
bool valueEquals (senf::MACAddress const &addr) const
 
bool valueEquals (senf::INet4Address const &addr) const
 
bool valueEquals (senf::INet6Address const &addr) const
 
bool valueEquals (senf::EUI64 const &addr) const
 

Detailed Description

Parse a MIHF_ID.

Note that the maximum length of a MIHF_ID is 253 octets (see F.3.11 in 802.21) We could set maxLength in init(), but for the most MIHF_IDs the default maximum length of 128 should be enough.

Note
you must call maxIdLength( 253) before setting MIHF_IDs values longer than 128.
See also
MIHFId

Definition at line 58 of file TLVParser.hh.

Member Typedef Documentation

◆ idLength_t

Member Function Documentation

◆ dump()

void senf::MIHFIdTLVParser::dump ( std::ostream &  os) const

Definition at line 35 of file TLVParser.cc.

◆ finalize()

void senf::MIHFIdTLVParser::finalize ( )

Definition at line 46 of file TLVParser.cc.

◆ idLength()

MIHLengthParser ::value_type senf::MIHFIdTLVParser::idLength ( ) const

◆ idLength_()

MIHLengthParser senf::MIHFIdTLVParser::idLength_ ( ) const
protected

◆ maxIdLength()

void senf::MIHFIdTLVParser::maxIdLength ( boost::uint8_t  maxl) const

Definition at line 53 of file TLVParser.cc.

◆ value() [1/6]

void senf::MIHFIdTLVParser::value ( MIHFId const &  id)

Definition at line 112 of file TLVParser.cc.

◆ value() [2/6]

void senf::MIHFIdTLVParser::value ( std::string const &  id)

Definition at line 78 of file TLVParser.cc.

◆ value() [3/6]

void senf::MIHFIdTLVParser::value ( senf::MACAddress const &  addr)

Definition at line 88 of file TLVParser.cc.

◆ value() [4/6]

void senf::MIHFIdTLVParser::value ( senf::INet4Address const &  addr)

Definition at line 94 of file TLVParser.cc.

◆ value() [5/6]

void senf::MIHFIdTLVParser::value ( senf::INet6Address const &  addr)

Definition at line 100 of file TLVParser.cc.

◆ value() [6/6]

void senf::MIHFIdTLVParser::value ( senf::EUI64 const &  addr)

Definition at line 106 of file TLVParser.cc.

◆ valueAs()

senf::MIHFId senf::MIHFIdTLVParser::valueAs ( MIHFId::Type  type) const

Definition at line 117 of file TLVParser.cc.

◆ valueAsEUI64()

senf::EUI64 senf::MIHFIdTLVParser::valueAsEUI64 ( ) const

◆ valueAsINet4Address()

senf::INet4Address senf::MIHFIdTLVParser::valueAsINet4Address ( ) const

◆ valueAsINet6Address()

senf::INet6Address senf::MIHFIdTLVParser::valueAsINet6Address ( ) const

◆ valueAsMACAddress()

senf::MACAddress senf::MIHFIdTLVParser::valueAsMACAddress ( ) const

◆ valueAsString()

std::string senf::MIHFIdTLVParser::valueAsString ( ) const

◆ valueEquals() [1/6]

bool senf::MIHFIdTLVParser::valueEquals ( MIHFId const &  id) const

◆ valueEquals() [2/6]

bool senf::MIHFIdTLVParser::valueEquals ( std::string const &  id) const

◆ valueEquals() [3/6]

bool senf::MIHFIdTLVParser::valueEquals ( senf::MACAddress const &  addr) const

◆ valueEquals() [4/6]

bool senf::MIHFIdTLVParser::valueEquals ( senf::INet4Address const &  addr) const

◆ valueEquals() [5/6]

bool senf::MIHFIdTLVParser::valueEquals ( senf::INet6Address const &  addr) const

◆ valueEquals() [6/6]

bool senf::MIHFIdTLVParser::valueEquals ( senf::EUI64 const &  addr) const

The documentation for this class was generated from the following files: