X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FPackets%2FPacketRegistry.hh;h=beb33847ee24b98092d1da6f62417ad635db57a1;hb=4d90b955bf3590e215488395d1c9cec827476e07;hp=fe21ab576c5e1f6260482a17c0a9b671e7ffac0e;hpb=9cb871b939efe93e35dd96808d25089399acfc46;p=senf.git diff --git a/senf/Packets/PacketRegistry.hh b/senf/Packets/PacketRegistry.hh index fe21ab5..beb3384 100644 --- a/senf/Packets/PacketRegistry.hh +++ b/senf/Packets/PacketRegistry.hh @@ -91,6 +91,7 @@ namespace senf { { public: typedef typename detail::PacketRegistryImpl::iterator iterator; + typedef typename detail::PacketRegistryImpl::Entry Entry; /** \brief Statically register a packet type in a PacketRegistry @@ -109,6 +110,7 @@ namespace senf { struct RegistrationProxy { RegistrationProxy(typename Tag::key_t key); + ~RegistrationProxy(); }; /** \brief Register new packet type @@ -126,6 +128,10 @@ namespace senf { template static void registerPacket(typename Tag::key_t key); + template + static void unregisterPacket(); + static void unregisterPacket(typename Tag::key_t key); + /** \brief Find key of a packet type Return the key of \a PacketType as registered in the \a Tag registry @@ -175,13 +181,13 @@ namespace senf { \throws PacketTypeNotRegistered if the \a key is not found in the registry \return %Packet entry for given \a key */ - static PkReg_Entry const & lookup(typename Tag::key_t key); + static Entry const & lookup(typename Tag::key_t key); /** \brief Lookup a packet by it's key \return Pointer to packet entry for given \a key or 0, if the key is not found in the registry. */ - static PkReg_Entry const * lookup(typename Tag::key_t key, NoThrow_t); + static Entry const * lookup(typename Tag::key_t key, NoThrow_t); /** \brief Beginning iterator to list of registered keys */ @@ -245,4 +251,3 @@ namespace senf { // compile-command: "scons -u test" // comment-column: 40 // End: -