X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2FListParser.hh;h=ae3d9ae2167322094a02c6ae60f525e0d8c4c8ae;hb=d2459b6c8249291588fd3d0d125ed3d38e003b55;hp=0b6865e75c6131f2af36b2d6547c528309919e0a;hpb=f73fa16ed5abdce272ac77f8b8b9ef2b9922c266;p=senf.git diff --git a/Packets/ListParser.hh b/Packets/ListParser.hh index 0b6865e..ae3d9ae 100644 --- a/Packets/ListParser.hh +++ b/Packets/ListParser.hh @@ -1,8 +1,8 @@ // $Id$ // -// Copyright (C) 2007 -// Fraunhofer Institute for Open Communication Systems (FOKUS) -// Competence Center NETwork research (NET), St. Augustin, GERMANY +// Copyright (C) 2007 +// Fraunhofer Institute for Open Communication Systems (FOKUS) +// Competence Center NETwork research (NET), St. Augustin, GERMANY // Stefan Bund // // This program is free software; you can redistribute it and/or modify @@ -35,7 +35,7 @@ namespace senf { - namespace detail { template + namespace detail { template class ListParser_Iterator; } template @@ -45,7 +45,7 @@ namespace senf { A List is a sequential collection of elements. The element type is given as an arbitrary parser. The list is more flexible than a vector: It is not limited to fixed-size elements - and it might not have direct access to the size of the collection. + and it might not have direct access to the size of the collection. The cost is however, that a List is only a model of an STL forward sequence. The parser provides a reduced interface to this sequence, the container wrapper provides the complete @@ -60,7 +60,7 @@ namespace senf { \ingroup parsecollection */ template - class ListParser + class ListParser : public PacketParserBase, private ListPolicy { @@ -80,20 +80,20 @@ namespace senf { // Container interface typedef typename ListPolicy::element_type value_type; - typedef detail::ListParser_Iterator< + typedef detail::ListParser_Iterator< value_type, typename ListPolicy::iterator_policy > iterator; typedef iterator const_iterator; typedef typename ListPolicy::container_type container; size_type size() const; bool empty() const; - + iterator begin() const; iterator end() const; value_type front() const; value_type back() const; - + template void push_back (Value value, size_type n=1) const; void push_back_space (size_type n=1) const; template void push_front (Value value, size_type n=1) const; @@ -114,7 +114,7 @@ namespace senf { the vector in the packet data). The vector container wrapper provides a complete STL random-access sequence interface. - + \code SomePacket p (...); SomePacket::aListCollection_t::container c (p->aListCollection()); @@ -140,7 +140,7 @@ namespace senf { value_type, typename ListPolicy::iterator_policy> iterator; typedef iterator const_iterator; typedef PacketParserBase::state_type state_type; - + /////////////////////////////////////////////////////////////////////////// ///\name Structors and default members ///@{ @@ -152,7 +152,7 @@ namespace senf { ListParser_Container(parser_type const & list); ~ListParser_Container(); - + ///@} /////////////////////////////////////////////////////////////////////////// @@ -209,7 +209,7 @@ namespace senf { size_type bytes() const; void init() const; - + ///@} private: @@ -217,7 +217,7 @@ namespace senf { size_type i_; }; - + } ///////////////////////////////hh.e////////////////////////////////////////