PPI: Checkin of first compiling (yet not working) version
[senf.git] / Packets / ParseArray.ih
index 71e7dd0..d07c26f 100644 (file)
@@ -20,6 +20,9 @@
 // Free Software Foundation, Inc.,
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
+/** \file
+    \brief ParseArray internal header */
+
 #ifndef IH_ParseArray_
 #define IH_ParseArray_ 1
 
 
 ///////////////////////////////ih.p////////////////////////////////////////
 
-template <class Parser, class Iterator>
-class senf::impl::Parse_Array_iterator
-    : public boost::iterator_facade< Parse_Array_iterator<Parser,Iterator>,
-                                     Parser,
+/** \brief Internal: Array and Vector iterator
+
+    \internal
+
+    This is the iterator type used for both Parse_Array and Parse_Vector. It is a model of random
+    access iterator.
+ */
+template <class ElementParser>
+class senf::detail::Parse_Array_iterator
+    : public boost::iterator_facade< Parse_Array_iterator<ElementParser>,
+                                     ElementParser,
                                      boost::random_access_traversal_tag,
-                                     Parser >
+                                     ElementParser >
 {
 public:
     Parse_Array_iterator();
-    explicit Parse_Array_iterator(Iterator const & i);
+    Parse_Array_iterator(PacketParserBase::data_iterator const & i,
+                         PacketParserBase::state_type s);
 
     // Needed to elide the []-proxy of iterator_facade
-    Parser operator[](int i) const;
+    ElementParser operator[](int i) const;
 
-    Iterator raw() const;
+    PacketParserBase::data_iterator raw() const; ///< Return data_iterator
+                                        /**< Returns the raw data_iterator pointing to the beginning
+                                             of the current element */
 
 protected:
 
 private:
     friend class boost::iterator_core_access;
+    
+    // iterator_facade interface
 
-    Parser dereference() const;
+    ElementParser dereference() const;
     bool equal(Parse_Array_iterator const & other) const;
     int distance_to(Parse_Array_iterator const & other) const;
     void increment();
     void decrement();
     void advance(int n);
 
-    Iterator i_;
+    PacketParserBase::data_iterator i_;
+    PacketParserBase::state_type s_;
 };
 
 ///////////////////////////////ih.e////////////////////////////////////////
@@ -69,4 +85,6 @@ private:
 // c-file-style: "senf"
 // indent-tabs-mode: nil
 // ispell-local-dictionary: "american"
+// compile-command: "scons -u test"
+// comment-column: 40
 // End: