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< MIHBaseTLVParserRegistry
 
- 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 PacketDatastate_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...
 
PacketDatadata () 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: