#include <senf/Packets/IntParser.hh>
This parser will parse a bitfield beginning at the bit Start and ending before End. Bits are numbered most significant bit first as this is the customary numbering used when defining packet data structures. Start and End can be arbitrary as long as the field is between 1 and 32 bits in size. In other words, IntFieldParser<53,81>
is a valid 30 bit field.
When defining a compound parser with several bit fields, you need to take care of the fact, that several integer field parsers will interpret the same data bytes (but not the same bits). It is customary for several integer field parsers to start at the same byte offset with ever increasing bit offsets.
Definition at line 525 of file IntParser.hh.
Public Types |
|
typedef boost::uint32_t | value_type |
Public Member Functions |
|
UIntFieldParser (data_iterator i, state_type s) | |
value_type | value () const |
void | value (value_type v) |
UIntFieldParser const & | operator= (value_type other) |
Static Public Attributes |
|
static size_type const | start_bit = Start |
static size_type const | end_bit = End |
static size_type const | fixed_bytes = (End-1)/8+1 |
static value_type const | min_value = 0u |
static value_type const | max_value = boost::low_bits_mask_t<End-Start>::sig_bits |
Related Functions |
|
(Note that these are not member functions.) |
|
template<unsigned Start, unsigned End> | |
std::ostream & | operator<< (std::ostream &os, UIntFieldParser< Start, End > const &i) |
Write parsed value to stream. |
typedef boost::uint32_t senf::UIntFieldParser< Start, End >:: | ||||
value_type | ||||
Reimplemented from senf::detail::packet::IntParserOps< UIntFieldParser< Start, End >, boost::uint32_t >.
Definition at line 533 of file IntParser.hh.
senf::UIntFieldParser< Start, End >:: | ||||
UIntFieldParser | ( | data_iterator | i, | |
state_type | s | ) | ||
Definition at line 529 of file IntParser.hh.
UIntFieldParser const& senf::UIntFieldParser< Start, End >:: | ||||
operator= | ( | value_type | other | ) |
Definition at line 542 of file IntParser.hh.
void senf::UIntFieldParser< Start, End >:: | ||||
value | ( | value_type | v | ) |
Definition at line 541 of file IntParser.hh.
value_type senf::UIntFieldParser< Start, End >:: | ||||
value | () | |||
Definition at line 540 of file IntParser.hh.
std::ostream & | ||||
operator<< | ( | std::ostream & | os, | |
UIntFieldParser< Start, End > const & | i | ) | ||
Write parsed value to stream.
Definition at line 552 of file IntParser.hh.
size_type const senf::UIntFieldParser< Start, End >::end_bit = End | ||||
[static] | ||||
Definition at line 535 of file IntParser.hh.
size_type const senf::UIntFieldParser< Start, End >::fixed_bytes = (End-1)/8+1 | ||||
[static] | ||||
Definition at line 536 of file IntParser.hh.
value_type const senf::UIntFieldParser< Start, End >::max_value = boost::low_bits_mask_t<End-Start>::sig_bits | ||||
[static] | ||||
Definition at line 538 of file IntParser.hh.
value_type const senf::UIntFieldParser< Start, End >::min_value = 0u | ||||
[static] | ||||
Definition at line 537 of file IntParser.hh.
size_type const senf::UIntFieldParser< Start, End >::start_bit = Start | ||||
[static] | ||||
Definition at line 534 of file IntParser.hh.