template <class Self, class Registry>
prefix_ senf::PacketInterpreterBase::optional_range
-senf::PacketTypeMixin<Self,Registry>::nextPacketRange(Packet const & p)
+senf::PacketTypeMixin<Self,Registry>::nextPacketRange(ConcretePacket<Self> const & p)
{
// Call the member defined in the specialization below
return PacketTypeMixin<Self>::nextPacketRange(p);
template <class Self, class Registry>
prefix_ senf::PacketInterpreterBase::factory_t
-senf::PacketTypeMixin<Self,Registry>::nextPacketType(Packet const & p)
+senf::PacketTypeMixin<Self,Registry>::nextPacketType(ConcretePacket<Self> const & p)
{
if (p.data().size() < Self::initSize())
return Self::no_factory();
- return lookup( Self::nextPacketKey(p.as< ConcretePacket<Self> >()) );
+ return lookup( Self::nextPacketKey(p) );
}
template <class Self, class Registry>
}
template <class Self, class Registry>
-prefix_ void senf::PacketTypeMixin<Self,Registry>::init(Packet const & p)
+prefix_ void senf::PacketTypeMixin<Self,Registry>::init(ConcretePacket<Self> const & p)
{
- p.as< ConcretePacket<Self> >()->init();
+ p->init();
}
template <class Self, class Registry>
}
template <class Self>
-prefix_ void senf::PacketTypeMixin<Self,void>::init(Packet const & p)
+prefix_ void senf::PacketTypeMixin<Self,void>::init(ConcretePacket<Self> const & p)
{
- p.as< ConcretePacket<Self> >()->init();
+ p->init();
}
///////////////////////////////cti.e///////////////////////////////////////