X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FPackets%2FPacketRegistry.hh;h=beb33847ee24b98092d1da6f62417ad635db57a1;hb=4d90b955bf3590e215488395d1c9cec827476e07;hp=57d13a080789593f4367389782e9bacd66e64333;hpb=82e794070d4f3ae8aacb1827b21a93b9d48ce57f;p=senf.git diff --git a/senf/Packets/PacketRegistry.hh b/senf/Packets/PacketRegistry.hh index 57d13a0..beb3384 100644 --- a/senf/Packets/PacketRegistry.hh +++ b/senf/Packets/PacketRegistry.hh @@ -78,7 +78,7 @@ namespace senf { static registration only works when the symbol is included into the final binary. To force this inclusion, you should not put packet registrations into a library but into an object file. - + To simplify static registration the SENF_PACKET_REGISTRY_REGISTER macro can be used: \code SENF_PACKET_REGISTRY_REGISTER(SomeTag, SomePacket, key_of_somePacket); @@ -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 */ @@ -235,7 +241,7 @@ namespace senf { #include "PacketRegistry.cti" #endif - + // Local Variables: // mode: c++ // fill-column: 100 @@ -245,4 +251,3 @@ namespace senf { // compile-command: "scons -u test" // comment-column: 40 // End: -