X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2FPacketParser.cti;h=098908f71235a210d2c79dd9a3c7f749a693b678;hb=92f8630b75f3ef50e73c48cde58645dcd1534e27;hp=52f13b9b68ec9f90f67bbc5b838db9fb35d24d3b;hpb=f73fa16ed5abdce272ac77f8b8b9ef2b9922c266;p=senf.git diff --git a/Packets/PacketParser.cti b/Packets/PacketParser.cti index 52f13b9..098908f 100644 --- a/Packets/PacketParser.cti +++ b/Packets/PacketParser.cti @@ -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 @@ -26,6 +26,7 @@ #include "PacketParser.ih" // Custom includes +#include "../Utils/senfassert.hh" #include "PacketData.hh" #define prefix_ inline @@ -41,6 +42,13 @@ prefix_ Parser senf::PacketParserBase::parse(data_iterator i) return Parser(i,state()); } +template +prefix_ Parser senf::PacketParserBase::parse(Arg const & arg, data_iterator i) + const +{ + return Parser(arg, i, state()); +} + template prefix_ Parser senf::PacketParserBase::parse(size_type n) const @@ -48,6 +56,13 @@ prefix_ Parser senf::PacketParserBase::parse(size_type n) return Parser(boost::next(i(),n),state()); } +template +prefix_ Parser senf::PacketParserBase::parse(Arg const & arg, size_type n) + const +{ + return Parser(arg, boost::next(i(),n), state()); +} + /////////////////////////////////////////////////////////////////////////// // namespace members @@ -98,58 +113,6 @@ senf::detail::packetParserSize(Parser p, int, senf::mpl::take_uint -prefix_ senf::PacketParserBase::size_type senf::detail::packetParserSize(Parser p, ...) -{ - return p.bytes(); -} - -/////////////////////////////////////////////////////////////////////////// -// senf::SafePacketParserWrapper - -template -prefix_ senf::SafePacketParserWrapper::SafePacketParserWrapper() - : parser_(), i_() -{} - -template -prefix_ senf::SafePacketParserWrapper::SafePacketParserWrapper(Parser parser) - : parser_(parser), i_(parser) -{} - -template -prefix_ senf::SafePacketParserWrapper & senf::SafePacketParserWrapper::operator=(Parser parser) -{ - parser_ = parser; - i_ = parser; - return *this; -} - -template -prefix_ Parser senf::SafePacketParserWrapper::operator*() - const -{ - BOOST_ASSERT( i_ ); - parser_->i_ = PacketParserBase::data_iterator(i_); - return *parser_; -} - -template -prefix_ Parser const * senf::SafePacketParserWrapper::operator->() - const -{ - BOOST_ASSERT( i_ ); - parser_->i_ = PacketParserBase::data_iterator(i_); - return & (*parser_); -} - -template -prefix_ bool senf::SafePacketParserWrapper::boolean_test() - const -{ - return i_; -} - ///////////////////////////////cti.e/////////////////////////////////////// #undef prefix_