#include "PacketParser.hh"
//#include "ListParser.mpp"
-///////////////////////////////hh.p////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
namespace senf {
static const size_type init_bytes = ListPolicy::init_bytes;
- ///////////////////////////////////////////////////////////////////////////
+ //-////////////////////////////////////////////////////////////////////////
// Container interface
typedef typename ListPolicy::element_type value_type;
This is the container wrapper used for list parsers. The container wrapper will stay valid
after changing the collection. However the container still depends on the packet and will be
invalidated if the Packet is deallocated or if the packet size is changed from without the
- container wrapper (more precisely, it is invalided if the insertion/deletion happens before
+ container wrapper (more precisely, it is invalidated if the insertion/deletion happens before
the vector in the packet data).
The vector container wrapper provides a complete STL random-access sequence interface.
: private ListPolicy
{
public:
- ///////////////////////////////////////////////////////////////////////////
+ //-////////////////////////////////////////////////////////////////////////
// Types
typedef ListPolicy policy;
typedef iterator const_iterator;
typedef PacketParserBase::state_type state_type;
- ///////////////////////////////////////////////////////////////////////////
+ //-////////////////////////////////////////////////////////////////////////
///\name Structors and default members
- ///@{
+ //\{
// no default constructor
// default copy
ListParser_Container(parser_type const & list);
~ListParser_Container();
- ///@}
- ///////////////////////////////////////////////////////////////////////////
+ //\}
+ //-////////////////////////////////////////////////////////////////////////
///\name Accessors
- ///@{
+ //\{
size_type size() const;
bool empty() const;
value_type front() const;
value_type back() const;
- ///@}
+ //\}
///\name Mutators
- ///@{
+ //\{
// All these operations can be quite inefficient depending on the list type
value_type shift(iterator pos, size_type n=1);
void resize (size_type n);
template <class Value> void resize (size_type n, Value value);
- ///@}
+ //\}
///\name Parser interface
- ///@{
+ //\{
parser_type parser() const;
data_iterator i() const;
size_type bytes() const;
void init() const;
- ///@}
+ //\}
private:
friend class detail::ListParser_Iterator<ListParser_Container>;
}
-///////////////////////////////hh.e////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
#endif
#if !defined(HH_SENF_Packets_Packets__decls_) && !defined(HH_SENF_Packets_ListParser_i_)
#define HH_SENF_Packets_ListParser_i_