X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2FAuxParser.cti;h=e4f98328ff138b382417b6beba00a218e9e8425b;hb=92f8630b75f3ef50e73c48cde58645dcd1534e27;hp=205d88dc0e0c326e466c14f26f462117d9719817;hpb=4ee78597a1dae53669f5295cbb686c58146d2449;p=senf.git diff --git a/Packets/AuxParser.cti b/Packets/AuxParser.cti index 205d88d..e4f9832 100644 --- a/Packets/AuxParser.cti +++ b/Packets/AuxParser.cti @@ -34,12 +34,21 @@ // senf::detail::PrefixAuxParserPolicy
template ::ParserType
+prefix_ typename P::value_type
senf::detail::PrefixAuxParserPolicy ::aux(PacketParserBase::data_iterator i,
PacketParserBase::state_type s)
const
{
- return ParserType(i, s);
+ return P(i, s).value();
+}
+
+template ::aux(typename P::value_type const & v,
+ PacketParserBase::data_iterator i,
+ PacketParserBase::state_type s)
+ const
+{
+ P(i, s).value(v);
}
template ::adjust(PacketParserBase::data_iterator i
PacketParserBase::state_type s)
const
{
- return i+ParserType::fixed_bytes;
+ return i+P::fixed_bytes;
}
///////////////////////////////////////////////////////////////////////////
// senf::detail::FixedAuxParserPolicy
template ::ParserType
+prefix_ typename P::value_type
senf::detail::FixedAuxParserPolicy ::aux(PacketParserBase::data_iterator i,
PacketParserBase::state_type s)
const
{
- return ParserType(i-Dist, s);
+ return P(i-Dist, s).value();
+}
+
+template ::aux(typename P::value_type const & v,
+ PacketParserBase::data_iterator i,
+ PacketParserBase::state_type s)
+ const
+{
+ P(i-Dist, s).value(v);
}
template ::adjust(PacketParserBase::data_iterat
// senf::detail::DynamicAuxParserPolicy
template ::DynamicAuxParserPolicy(ParserType p)
+prefix_ senf::detail::DynamicAuxParserPolicy ::DynamicAuxParserPolicy(P p)
: p_ (p)
{}
@@ -87,12 +105,21 @@ senf::detail::DynamicAuxParserPolicy ::DynamicAuxParserPolicy(WrapperPolicy co
{}
template ::ParserType
+prefix_ typename P::value_type
senf::detail::DynamicAuxParserPolicy ::aux(PacketParserBase::data_iterator i,
PacketParserBase::state_type s)
const
{
- return p_;
+ return p_.value();
+}
+
+template ::aux(typename P::value_type const & v,
+ PacketParserBase::data_iterator i,
+ PacketParserBase::state_type s)
+ const
+{
+ p_.value(v);
}
template ::ParserType
+prefix_ typename P::value_type
senf::detail::DynamicWrapperAuxParserPolicy ::aux(PacketParserBase::data_iterator i,
PacketParserBase::state_type s)
const
{
- return * p_;
+ return p_->value();
+}
+
+template ::aux(typename P::value_type const & v,
+ PacketParserBase::data_iterator i,
+ PacketParserBase::state_type s)
+ const
+{
+ p_->value(v);
}
template ::adjust(PacketParserBase::data_it
return i;
}
+///////////////////////////////////////////////////////////////////////////
+// senf::detail::TransformAuxParserPolicy