Fixed size collection of fixed size elements. More...

#include <senf/Packets/ArrayParser.hh>

Inheritance diagram for senf::ArrayParser< elements, ElementParser >:

Public Types

typedef ElementParser value_type
 
typedef detail::ArrayParser_iterator< value_typeiterator
 
typedef iterator const_iterator
 
- 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

 ArrayParser (data_iterator i, state_type s)
 
void init () const
 
iterator begin () const
 
iterator end () const
 
value_type operator[] (difference_type i) const
 
- 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...
 

Static Public Member Functions

static size_type size ()
 

Static Public Attributes

static size_type const fixed_bytes = elements*ElementParser::fixed_bytes
 

Additional Inherited Members

- 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...
 

Detailed Description

template<unsigned elements, class ElementParser>
struct senf::ArrayParser< elements, ElementParser >

Fixed size collection of fixed size elements.

ArrayParser will parse a sequence of fixed size parsers. The number of array elements is given by the elements template parameter and is fixed at compile time.

Each element will be parsed by ElementParser, which can be any fixed size parser. The array models an STL random-access sequence with the restriction that elements cannot be added or removed since the size is fixed.

Definition at line 66 of file ArrayParser.hh.

Member Typedef Documentation

◆ const_iterator

template<unsigned elements, class ElementParser >
typedef iterator senf::ArrayParser< elements, ElementParser >::const_iterator

Definition at line 79 of file ArrayParser.hh.

◆ iterator

template<unsigned elements, class ElementParser >
typedef detail::ArrayParser_iterator<value_type> senf::ArrayParser< elements, ElementParser >::iterator

Definition at line 78 of file ArrayParser.hh.

◆ value_type

template<unsigned elements, class ElementParser >
typedef ElementParser senf::ArrayParser< elements, ElementParser >::value_type

Definition at line 77 of file ArrayParser.hh.

Constructor & Destructor Documentation

◆ ArrayParser()

template<unsigned elements, class ElementParser >
senf::ArrayParser< elements, ElementParser >::ArrayParser ( data_iterator  i,
state_type  s 
)

Member Function Documentation

◆ begin()

template<unsigned elements, class ElementParser >
iterator senf::ArrayParser< elements, ElementParser >::begin ( ) const

◆ end()

template<unsigned elements, class ElementParser >
iterator senf::ArrayParser< elements, ElementParser >::end ( ) const

◆ init()

template<unsigned elements, class ElementParser >
void senf::ArrayParser< elements, ElementParser >::init ( ) const

◆ operator[]()

template<unsigned elements, class ElementParser >
value_type senf::ArrayParser< elements, ElementParser >::operator[] ( difference_type  i) const

◆ size()

template<unsigned elements, class ElementParser >
static size_type senf::ArrayParser< elements, ElementParser >::size ( )
static

Member Data Documentation

◆ fixed_bytes

template<unsigned elements, class ElementParser >
size_type const senf::ArrayParser< elements, ElementParser >::fixed_bytes = elements*ElementParser::fixed_bytes
static

Definition at line 70 of file ArrayParser.hh.


The documentation for this struct was generated from the following file: