#include <senf/Packets/VectorParser.hh>
A Vector is a collection of fixed-size elements of which the size of the collection can be determined directly (that is without traversing the collection). This allows very efficient random access to the elements of the collection.
A vector is a model of an STL random-access sequence. The parser only provides a reduced interface, the container wrapper however completes this interface.
VectorParser makes use of a policy template argument, AuxPolicy, to customize the way the containers size is obtained. You will normally not instantiate VectorParser directly, you will use the SENF_PARSER_VECTOR() helper macro.
Some basic vector access methods are defined as parser members. To access the complete list API however you will need to instantiate a container wrapper for the vector. See Collection parsers.
Definition at line 67 of file VectorParser.hh.
Public Types |
|
typedef ElementParser | value_type |
typedef detail::ArrayParser_iterator < value_type > |
iterator |
typedef iterator | const_iterator |
typedef VectorParser_Container < ElementParser, AuxPolicy > |
container |
Public Member Functions |
|
VectorParser (data_iterator i, state_type s) | |
VectorParser (AuxPolicy policy, data_iterator i, state_type s) | |
Additional sizer specific constructor. |
|
size_type | bytes () const |
void | init () const |
Default implementation. |
|
size_type | size () const |
bool | empty () const |
iterator | begin () const |
iterator | end () const |
value_type | operator[] (difference_type i) const |
value_type | front () const |
value_type | back () const |
template<class Value > | |
void | push_back (Value const &value, size_type n=1) const |
value_type | push_back_space (size_type n=1) const |
template<class Value > | |
void | push_front (Value const &value, size_type n=1) const |
value_type | push_front_space (size_type n=1) const |
void | resize (size_type n) const |
template<class Value > | |
void | resize (size_type n, Value value) const |
Static Public Attributes |
|
static const size_type | init_bytes = AuxPolicy::aux_bytes |
typedef iterator senf::VectorParser< ElementParser, AuxPolicy >:: | ||||
const_iterator | ||||
Definition at line 87 of file VectorParser.hh.
typedef VectorParser_Container<ElementParser,AuxPolicy> senf::VectorParser< ElementParser, AuxPolicy >:: | ||||
container | ||||
Definition at line 88 of file VectorParser.hh.
typedef detail::ArrayParser_iterator<value_type> senf::VectorParser< ElementParser, AuxPolicy >:: | ||||
iterator | ||||
Definition at line 86 of file VectorParser.hh.
typedef ElementParser senf::VectorParser< ElementParser, AuxPolicy >:: | ||||
value_type | ||||
Definition at line 85 of file VectorParser.hh.
senf::VectorParser< ElementParser, AuxPolicy >:: | ||||
VectorParser | ( | data_iterator | i, | |
state_type | s | ) | ||
Definition at line 37 of file VectorParser.cti.
senf::VectorParser< ElementParser, AuxPolicy >:: | ||||
VectorParser | ( | AuxPolicy | policy, | |
data_iterator | i, | |||
state_type | s | ) | ||
Additional sizer specific constructor.
This constructor may be used, if the sizer needs additional parameters.
Definition at line 42 of file VectorParser.cti.
senf::VectorParser< ElementParser, AuxPolicy >::value_type senf::VectorParser< ElementParser, AuxPolicy >:: | ||||
back | () | |||
Definition at line 106 of file VectorParser.cti.
senf::VectorParser< ElementParser, AuxPolicy >::iterator senf::VectorParser< ElementParser, AuxPolicy >:: | ||||
begin | () | |||
Definition at line 74 of file VectorParser.cti.
senf::VectorParser< ElementParser, AuxPolicy >::size_type senf::VectorParser< ElementParser, AuxPolicy >:: | ||||
bytes | () | |||
Definition at line 49 of file VectorParser.cti.
bool senf::VectorParser< ElementParser, AuxPolicy >:: | ||||
empty | () | |||
Definition at line 66 of file VectorParser.cti.
senf::VectorParser< ElementParser, AuxPolicy >::iterator senf::VectorParser< ElementParser, AuxPolicy >:: | ||||
end | () | |||
Reimplemented from senf::PacketParserBase.
Definition at line 82 of file VectorParser.cti.
senf::VectorParser< ElementParser, AuxPolicy >::value_type senf::VectorParser< ElementParser, AuxPolicy >:: | ||||
front | () | |||
Definition at line 98 of file VectorParser.cti.
void senf::VectorParser< ElementParser, AuxPolicy >:: | ||||
init | () | |||
Default implementation.
This is just an empty default implementation. Re-implement this member in your own parsers if needed.
Reimplemented from senf::PacketParserBase.
Definition at line 37 of file VectorParser.ct.
senf::VectorParser< ElementParser, AuxPolicy >::value_type senf::VectorParser< ElementParser, AuxPolicy >:: | ||||
operator[] | ( | difference_type | i | ) |
Definition at line 90 of file VectorParser.cti.
void senf::VectorParser< ElementParser, AuxPolicy >:: | ||||
push_back | ( | Value const & | value, | |
size_type |
n = 1
|
) | ||
Definition at line 116 of file VectorParser.cti.
senf::VectorParser< ElementParser, AuxPolicy >::value_type senf::VectorParser< ElementParser, AuxPolicy >:: | ||||
push_back_space | ( | size_type |
n = 1
|
) |
Definition at line 125 of file VectorParser.cti.
void senf::VectorParser< ElementParser, AuxPolicy >:: | ||||
push_front | ( | Value const & | value, | |
size_type |
n = 1
|
) | ||
Definition at line 134 of file VectorParser.cti.
senf::VectorParser< ElementParser, AuxPolicy >::value_type senf::VectorParser< ElementParser, AuxPolicy >:: | ||||
push_front_space | ( | size_type |
n = 1
|
) |
Definition at line 143 of file VectorParser.cti.
void senf::VectorParser< ElementParser, AuxPolicy >:: | ||||
resize | ( | size_type | n, | |
Value | value | ) | ||
Definition at line 160 of file VectorParser.cti.
void senf::VectorParser< ElementParser, AuxPolicy >:: | ||||
resize | ( | size_type | n | ) |
Definition at line 151 of file VectorParser.cti.
senf::VectorParser< ElementParser, AuxPolicy >::size_type senf::VectorParser< ElementParser, AuxPolicy >:: | ||||
size | () | |||
Definition at line 59 of file VectorParser.cti.
const size_type senf::VectorParser< ElementParser, AuxPolicy >::init_bytes = AuxPolicy::aux_bytes | ||||
[static] | ||||
Definition at line 80 of file VectorParser.hh.