X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2FPacketRegistry.cti;h=0998801289c153cbce1120c4b6522d619bebc233;hb=81ffa1c459b96dd44472bcef37e1e373934ee138;hp=72e503a850cec368436ad8b92dd096d7c490f867;hpb=145f6a7d0f3a6aaa77b3625351c952d24cb0b8a1;p=senf.git diff --git a/Packets/PacketRegistry.cti b/Packets/PacketRegistry.cti index 72e503a..0998801 100644 --- a/Packets/PacketRegistry.cti +++ b/Packets/PacketRegistry.cti @@ -20,57 +20,69 @@ // Free Software Foundation, Inc., // 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -// Definition of inline template funPacketRegistry.ons +/** \file + \brief PacketRegistry inline template implementation */ #include "PacketRegistry.ih" // Custom includes -#include "Packet.hh" #define prefix_ inline ///////////////////////////////PacketRegistry..p/////////////////////////////////////// template -template -prefix_ void senf::PacketRegistry::registerPacket(typename Tag::key_t key) +template +prefix_ senf::PacketRegistry::RegistrationProxy:: +RegistrationProxy(typename Tag::key_t key) { - registry().registerPacket(key); + PacketRegistry::template registerPacket(key); } template -template -prefix_ senf::PacketRegistry::RegistrationProxy:: -RegistrationProxy(typename Tag::key_t key) +template +prefix_ void senf::PacketRegistry::registerPacket(typename Tag::key_t key) { - PacketRegistry::template registerPacket(key); + registry().registerPacket(key); } template -template +template prefix_ typename Tag::key_t senf::PacketRegistry::key() { - return registry().key(senf::typeIdValue()); + return registry().key(senf::typeIdValue()); +} + +template +template +prefix_ typename boost::optional senf::PacketRegistry::key(NoThrow_t) +{ + return registry().key(senf::typeIdValue(),true); +} + +template +prefix_ typename Tag::key_t senf::PacketRegistry::key(Packet packet) +{ + return registry().key(packet.typeId()); } -template -template -prefix_ void -senf::impl::PacketRegistryImpl::registerInterpreter(Packet * p, - Packet::iterator b, - Packet::iterator e) +template +prefix_ typename boost::optional +senf::PacketRegistry::key(Packet packet, NoThrow_t) { - p->registerInterpreter(b,e); + return registry().key(packet.typeId(),true); } -template -prefix_ void -senf::PacketRegistryMixin::registerInterpreter(typename Tag::key_t key, - Packet::iterator b, - Packet::iterator e) - const +template +prefix_ senf::PkReg_Entry const & senf::PacketRegistry::lookup(typename Tag::key_t key) +{ + return registry().lookup(key); +} + +template +prefix_ senf::PkReg_Entry const * senf::PacketRegistry::lookup(typename Tag::key_t key, + NoThrow_t) { - PacketRegistry::registry().lookup(key)->registerInterpreter( - static_cast(this),b,e); + return registry().lookup(key,true); } ///////////////////////////////PacketRegistry..e///////////////////////////////////////