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, class Registry>
prefix_ senf::PacketTypeBase::factory_t senf::PacketTypeMixin<Self,Registry>::lookup(key_t key)
{
- PkReg_Entry const * entry (PacketRegistry<Registry>::lookup( key, senf::nothrow ));
+ typename PacketRegistry<Registry>::Entry const * entry (
+ PacketRegistry<Registry>::lookup( key, senf::nothrow ));
return entry ? entry->factory() : PacketTypeBase::no_factory();
}
}
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///////////////////////////////////////