Fix documentation build under maverick (doxygen 1.7.1)
[senf.git] / senf / Packets / PacketParser.cti
index 098908f..be92007 100644 (file)
 #include "PacketParser.ih"
 
 // Custom includes
-#include "../Utils/senfassert.hh"
+#include <senf/Utils/senfassert.hh>
 #include "PacketData.hh"
 
 #define prefix_ inline
-///////////////////////////////cti.p///////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
 
-///////////////////////////////////////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
 // senf::PacketParserBase
 
 template <class Parser>
@@ -63,7 +63,7 @@ prefix_ Parser senf::PacketParserBase::parse(Arg const & arg, size_type n)
     return Parser(arg, boost::next(i(),n), state());
 }
 
-///////////////////////////////////////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
 // namespace members
 
 template <class Parser>
@@ -74,8 +74,8 @@ prefix_ senf::PacketParserBase::size_type senf::bytes(Parser p)
 
 #ifndef DOXYGEN
 template <class Parser, class Value>
-prefix_ typename boost::enable_if_c < 
-        boost::is_base_of<senf::PacketParserBase, Parser>::value 
+prefix_ typename boost::enable_if_c <
+        boost::is_base_of<senf::PacketParserBase, Parser>::value
             && ! boost::is_base_of<senf::PacketParserBase, Value>::value,
         Parser >::type senf::operator<<(Parser target, Value const & value)
 {
@@ -90,8 +90,8 @@ prefix_ Parser senf::operator<<(Parser target, Value const & value)
 
 #ifndef DOXYGEN
 template <class Parser, class Value>
-prefix_ typename boost::enable_if_c < 
-        boost::is_base_of<senf::PacketParserBase, Parser>::value 
+prefix_ typename boost::enable_if_c <
+        boost::is_base_of<senf::PacketParserBase, Parser>::value
             && ! boost::is_base_of<senf::PacketParserBase, Value>::value,
         Parser >::type senf::operator<<(Parser target, boost::optional<Value> const & value)
 {
@@ -108,12 +108,42 @@ prefix_ Parser senf::operator<<(Parser target, Value const & value)
 
 template <class Parser>
 prefix_ senf::PacketParserBase::size_type
-senf::detail::packetParserSize(Parser p, int, senf::mpl::take_uint<Parser::fixed_bytes> *)
+senf::detail::packetParserSize(Parser p, int, senf::mpl::take_uint<Parser::init_bytes> *)
 {
-    return Parser::fixed_bytes;
+    return p.bytes();
 }
 
-///////////////////////////////cti.e///////////////////////////////////////
+
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
+// senf::ValueParserBase<Parser, ValueType, FixedBytes>
+
+template <class Parser, typename ValueType, senf::PacketParserBase::size_type FixedBytes>
+prefix_ senf::ValueParserBase<Parser, ValueType, FixedBytes>::ValueParserBase(data_iterator i, state_type s)
+    : PacketParserBase(i, s, FixedBytes)
+{ }
+
+template <class Parser, typename ValueType, senf::PacketParserBase::size_type FixedBytes>
+prefix_ senf::ValueParserBase<Parser, ValueType, FixedBytes>::operator value_type ()
+    const
+{
+    return static_cast<Parser const *>(this)->value();
+}
+
+template <class Parser, typename ValueType, senf::PacketParserBase::size_type FixedBytes>
+prefix_ senf::PacketParserBase::byte &
+senf::ValueParserBase<Parser, ValueType, FixedBytes>::operator[](size_type index)
+{
+    return *boost::next(i(), index);
+}
+
+template <class Parser, typename ValueType, senf::PacketParserBase::size_type FixedBytes>
+prefix_ Parser const & senf::ValueParserBase<Parser, ValueType, FixedBytes>::operator= (value_type const & other)
+{
+    static_cast<Parser*>(this)->value(other);
+    return *static_cast<Parser const *>(this);
+}
+
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
 #undef prefix_
 
 \f