senf::VectorParser< ElementParser, AuxPolicy > Struct Template Reference
[Collection parsers]

Collection of fixed-size elements. More...

#include <senf/Packets/VectorParser.hh>

Inheritance diagram for senf::VectorParser< ElementParser, AuxPolicy >:
Inheritance graph
[legend]

List of all members.


Detailed Description

template<class ElementParser, class AuxPolicy>
struct senf::VectorParser< ElementParser, AuxPolicy >

Collection of fixed-size elements.

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.

See also:
How to access Collection parsers
SENF_PARSER_VECTOR() macro used to define vector fields
VectorParser_Container vector container wrapper API

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

Member Typedef Documentation

template<class ElementParser, class AuxPolicy>
typedef iterator senf::VectorParser< ElementParser, AuxPolicy >::
const_iterator

Definition at line 87 of file VectorParser.hh.

template<class ElementParser, class AuxPolicy>
typedef VectorParser_Container<ElementParser,AuxPolicy> senf::VectorParser< ElementParser, AuxPolicy >::
container

Definition at line 88 of file VectorParser.hh.

template<class ElementParser, class AuxPolicy>
typedef detail::ArrayParser_iterator<value_type> senf::VectorParser< ElementParser, AuxPolicy >::
iterator

Definition at line 86 of file VectorParser.hh.

template<class ElementParser, class AuxPolicy>
typedef ElementParser senf::VectorParser< ElementParser, AuxPolicy >::
value_type

Definition at line 85 of file VectorParser.hh.


Constructor & Destructor Documentation

template<class ElementParser , class AuxPolicy >
senf::VectorParser< ElementParser, AuxPolicy >::
VectorParser ( data_iterator  i,
state_type  s )

Definition at line 37 of file VectorParser.cti.

template<class ElementParser , class AuxPolicy>
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.


Member Function Documentation

template<class ElementParser , class AuxPolicy >
senf::VectorParser< ElementParser, AuxPolicy >::value_type senf::VectorParser< ElementParser, AuxPolicy >::
back ()

Definition at line 106 of file VectorParser.cti.

template<class ElementParser , class AuxPolicy >
senf::VectorParser< ElementParser, AuxPolicy >::iterator senf::VectorParser< ElementParser, AuxPolicy >::
begin ()

Definition at line 74 of file VectorParser.cti.

template<class ElementParser , class AuxPolicy >
senf::VectorParser< ElementParser, AuxPolicy >::size_type senf::VectorParser< ElementParser, AuxPolicy >::
bytes ()

Definition at line 49 of file VectorParser.cti.

template<class ElementParser , class AuxPolicy >
bool senf::VectorParser< ElementParser, AuxPolicy >::
empty ()

Definition at line 66 of file VectorParser.cti.

template<class ElementParser , class AuxPolicy >
senf::VectorParser< ElementParser, AuxPolicy >::iterator senf::VectorParser< ElementParser, AuxPolicy >::
end ()

Reimplemented from senf::PacketParserBase.

Definition at line 82 of file VectorParser.cti.

template<class ElementParser , class AuxPolicy >
senf::VectorParser< ElementParser, AuxPolicy >::value_type senf::VectorParser< ElementParser, AuxPolicy >::
front ()

Definition at line 98 of file VectorParser.cti.

template<class ElementParser , class AuxPolicy >
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.

template<class ElementParser , class AuxPolicy >
senf::VectorParser< ElementParser, AuxPolicy >::value_type senf::VectorParser< ElementParser, AuxPolicy >::
operator[] ( difference_type  i )

Definition at line 90 of file VectorParser.cti.

template<class ElementParser , class AuxPolicy >
template<class Value >
void senf::VectorParser< ElementParser, AuxPolicy >::
push_back ( Value const &  value,
size_type  n = 1 )

Definition at line 116 of file VectorParser.cti.

template<class ElementParser , class AuxPolicy >
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.

template<class ElementParser , class AuxPolicy >
template<class Value >
void senf::VectorParser< ElementParser, AuxPolicy >::
push_front ( Value const &  value,
size_type  n = 1 )

Definition at line 134 of file VectorParser.cti.

template<class ElementParser , class AuxPolicy >
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.

template<class ElementParser , class AuxPolicy >
template<class Value >
void senf::VectorParser< ElementParser, AuxPolicy >::
resize ( size_type  n,
Value  value )

Definition at line 160 of file VectorParser.cti.

template<class ElementParser , class AuxPolicy >
void senf::VectorParser< ElementParser, AuxPolicy >::
resize ( size_type  n )

Definition at line 151 of file VectorParser.cti.

template<class ElementParser , class AuxPolicy >
senf::VectorParser< ElementParser, AuxPolicy >::size_type senf::VectorParser< ElementParser, AuxPolicy >::
size ()

Definition at line 59 of file VectorParser.cti.


Member Data Documentation

template<class ElementParser, class AuxPolicy>
const size_type senf::VectorParser< ElementParser, AuxPolicy >::init_bytes = AuxPolicy::aux_bytes
[static]

Definition at line 80 of file VectorParser.hh.


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