39 os << indent <<
"type: " << unsigned (
type()) << std::endl
40 << indent <<
"length: " << unsigned (
length()) << std::endl
41 << indent <<
"value:\n";
43 hexdump(src_mihfId.begin(), src_mihfId.end(), os);
58 throw std::length_error(
"maximum length of a MIHF_ID is 253 octets");
71 if (current_length > size)
72 data().
erase( si, boost::next(si, current_length-size));
83 throw std::length_error(
"maximum length of a MIHF_ID is 253 octets");
91 std::copy( addr.begin(), addr.end(), getNAIEncodedOutputIterator(si));
97 std::copy( addr.begin(), addr.end(), getNAIEncodedOutputIterator(si));
103 std::copy( addr.begin(), addr.end(), getNAIEncodedOutputIterator(si));
109 std::copy( addr.begin(), addr.end(), getNAIEncodedOutputIterator(si));
114 boost::apply_visitor( ValueSetterVisitor(*
this),
id);
154 os << indent <<
"source MIHF_Id TLV:\n";
172 os << indent <<
"destination MIHF_Id TLV:\n";
189 os << indent <<
"Status TLV:" << std::endl;
191 os << indent <<
"type: " << unsigned(
type()) << std::endl
192 << indent <<
"length: " << unsigned(
length()) <<
" byte(s)" << std::endl
193 << indent <<
"value: " << unsigned(
value());
196 os <<
" (Success)" << std::endl;
198 case UnspecifiedFailure:
199 os <<
" (Unspecified Failure)" << std::endl;
202 os <<
" (Rejected)" << std::endl;
204 case AuthorizationFailure:
205 os <<
" (Authorization Failure)" << std::endl;
208 os <<
" (Network Error)" << std::endl;
211 os <<
" (???; invalid value!)" << std::endl;
229 os << indent <<
"Register Request Code TLV:" << std::endl;
231 os << indent <<
"type: " << unsigned(
type()) << std::endl
232 << indent <<
"length: " << unsigned(
length()) <<
" byte(s)" << std::endl
233 << indent <<
"value: " << unsigned(
value());
236 os <<
" (Registration)" << std::endl;
239 os <<
" (Re-Registration)" << std::endl;
242 os <<
" (???; invalid value!)" << std::endl;
260 os << indent <<
"Valid Time Interval TLV:" << std::endl;
262 os << indent <<
"type: " << unsigned(
type()) << std::endl
263 << indent <<
"length: " << unsigned(
length()) <<
" byte(s)" << std::endl
264 << indent <<
"value: " << unsigned(
value())
265 << (
value()==0 ?
" (infinite)" :
" seconds") << std::endl;
void hexdump(Iterator i, Iterator i_end, std::ostream &stream, unsigned block_size=16)
void dump(std::ostream &os) const
std::string valueAsString() const
void copy(ListParser< ListPolicy > const &listParser, OutputIterator result)
void dump(std::ostream &os) const
dump string representation to given stream
void dump(std::ostream &os) const
dump string representation to given stream
void maxLength(MIHLengthParser::value_type maxl) const
set maximum value of TLV length field
senf::EUI64 valueAsEUI64() const
void validateTypeLength(boost::uint8_t type, MIHLengthParser::value_type length) const
void maxIdLength(boost::uint8_t maxl) const
Parser for 802.21 source MIHF_ID TLV.
void dump(std::ostream &os) const
dump string representation to given stream
PacketParserBase::size_type bytes(Parser const &p)
Return raw size parsed by the given parser object.
Parser for 802.21 Status TLV.
void finalize()
shrink size of the TLV length field to minimum
senf::INet6Address valueAsINet6Address() const
void capacity(value_type v)
SENF_PACKET_TLV_REGISTRY_REGISTER(senf::MIHFSrcIdTLVParser)
boost::uint32_t value_type
MIHLengthParser idLength_() const
MIHFId valueAs(MIHFId::Type type) const
MIHLengthParser ::value_type length() const
void swap(MIHFSrcIdTLVParser src, MIHFDstIdTLVParser dst)
Re-validating data iterator.
detail::packet::size_type size_type
Unsigned integral type.
void dump(std::ostream &os) const
MIHLengthParser ::value_type idLength() const
senf::MACAddress valueAsMACAddress() const
senf::INet4Address valueAsINet4Address() const
PacketData & data() const
Access the packets raw data container.
void insert(iterator pos, byte v)
Iterator re-validating Parser wrapper.
Parser for 802.21 destination MIHF_ID TLV.
ParserProtector protect() const
void dump(std::ostream &os) const
void value(MIHFId const &id)
void validateType(boost::uint8_t type) const
MIHLengthParser length_() const