senf::safe_data_iterator Class Reference

Re-validating data iterator. More...

#include <senf/Packets/SafeIterator.hh>

Inheritance diagram for senf::safe_data_iterator:
Inheritance graph
[legend]

List of all members.


Detailed Description

Re-validating data iterator.

This class is a wrapper around a PacketData::iterator instance. It will revalidate the iterator on every access. This keeps the iterator valid even when the data container is resized and thereby possibly relocated. The iterator will always point to the byte at the same offset from the packets beginning. If data is inserted before this iterators position, the data pointed to will of course change.

For this to work, the safe_data_iterator must be initialized with the container to which the iterator belongs. After this initialization it can be used like any other iterator.

Definition at line 52 of file SafeIterator.hh.


Public Types

typedef PacketData::size_type  size_type

Public Member Functions

  safe_data_iterator ()
  Make uninitialized iterator.
  safe_data_iterator (PacketData &data)
  Construct iterator only setting the data container.
  safe_data_iterator (PacketData &data, PacketData::iterator i)
  Initialize iterator to given position.
  safe_data_iterator (PacketParserBase const &parser)
  Initialize iterator from parser.
safe_data_iterator operator= (PacketData::iterator i)
  Assign iterator.
safe_data_iterator operator= (PacketParserBase const &parser)
  Assign iterator from parser.
  operator PacketData::iterator () const
  Convert to iterator.
bool  boolean_test () const
  Check, if iterator is initialized.
PacketData data () const
  Access data container.

Member Typedef Documentation

typedef PacketData::size_type senf::safe_data_iterator::
size_type

Definition at line 59 of file SafeIterator.hh.


Constructor & Destructor Documentation

senf::safe_data_iterator::
safe_data_iterator ()

Make uninitialized iterator.

Definition at line 36 of file SafeIterator.cci.

senf::safe_data_iterator::
safe_data_iterator ( PacketData data )

Construct iterator only setting the data container.

Definition at line 40 of file SafeIterator.cci.

senf::safe_data_iterator::
safe_data_iterator ( PacketData data,
PacketData::iterator  i )

Initialize iterator to given position.

Definition at line 44 of file SafeIterator.cci.

senf::safe_data_iterator::
safe_data_iterator ( PacketParserBase const &  parser )

Initialize iterator from parser.

The iterator will point to the parsers start position.

Definition at line 48 of file SafeIterator.cci.


Member Function Documentation

bool senf::safe_data_iterator::
boolean_test ()

Check, if iterator is initialized.

Definition at line 80 of file SafeIterator.cci.

senf::PacketData & senf::safe_data_iterator::
data ()

Access data container.

Definition at line 86 of file SafeIterator.cci.

senf::safe_data_iterator::operator PacketData::
iterator ()

Convert to iterator.

senf::safe_data_iterator & senf::safe_data_iterator::
operator= ( PacketParserBase const &  parser )

Assign iterator from parser.

The iterator will point to the parser start position.

Definition at line 67 of file SafeIterator.cci.

senf::safe_data_iterator & senf::safe_data_iterator::
operator= ( PacketData::iterator  i )

Assign iterator.

The iterator i must be from the container which this iterator has been initialized.

Definition at line 59 of file SafeIterator.cci.


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