X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2FPacketRegistry.hh;h=d5bc480ccbe31f39a32cdd2838b89a02ad3becdc;hb=85ab07d100a382467a42e19d741d403a7a96c951;hp=49c086e486ce5a7b30cc609da97a241960902432;hpb=3e42ecb22121f2e6df86b27bea73f890384a4ee4;p=senf.git diff --git a/Packets/PacketRegistry.hh b/Packets/PacketRegistry.hh index 49c086e..d5bc480 100644 --- a/Packets/PacketRegistry.hh +++ b/Packets/PacketRegistry.hh @@ -1,6 +1,6 @@ // $Id$ // -// Copyright (C) 2006 +// Copyright (C) 2006 // Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS) // Kompetenzzentrum fuer Satelitenkommunikation (SatCom) // Stefan Bund @@ -43,7 +43,7 @@ namespace senf { The PacketRegistry provides a generic facility to associate an arbitrary key with Packets. Example keys are Ethertype or IP protocols. - + Every PacketRegistry is identified by a type tag: \code struct SomeTag { @@ -68,7 +68,7 @@ namespace senf { Normally, packet classes are registered statically and not procedurally. To this end, the RegistrationProxy is provided: \code - PacketRegistry::RegistrationProxy + PacketRegistry::RegistrationProxy registerSomePacket (key_of_somePacket); \endcode This global variable declaration will register \c SomePacket @@ -82,7 +82,7 @@ namespace senf { facades. This is further supported by the PacketRegistryMixin class. - \todo Add parameterless create() method + \todo Add parameterless create() method */ template class PacketRegistry @@ -90,17 +90,17 @@ namespace senf { public: /** \brief Statically register a packet type in a PacketRegistry - \fixme This fails to work within a library since the linker will - remove all unused object files ... + \fixme This fails to work within a library since the linker will + remove all unused object files ... */ template struct RegistrationProxy { RegistrationProxy(typename Tag::key_t key); }; - + /** \brief Register new packet type - + Register \c OtherPacket in the packet registry \c Tag under the given \c key. @@ -116,7 +116,7 @@ namespace senf { static void registerPacket(typename Tag::key_t key); /** \brief Find key of a packet - + Return the key of \c OtherPacket as registered in the \c Tag registry @@ -138,11 +138,11 @@ namespace senf { */ template static Packet::ptr create(typename Tag::key_t key, InputIterator b, InputIterator e); - + private: typedef impl::PacketRegistryImpl Registry; static Registry & registry(); - + template friend class PacketRegistryMixin; }; @@ -179,14 +179,14 @@ namespace senf { { protected: /** \brief add interpreter to interpreter chain - + This method is used by v_nextInterpreter() to add a new interpreter to the interpreter chain (see the Packet reference for more). Instead of specifying the type of packet to use as a template argument it is specified using the \c key value from the \c Tag registry */ - void registerInterpreter(typename Tag::key_t key, + void registerInterpreter(typename Tag::key_t key, Packet::iterator b, Packet::iterator e) const; }; @@ -204,5 +204,8 @@ namespace senf { // Local Variables: // mode: c++ +// fill-column: 100 // c-file-style: "senf" +// indent-tabs-mode: nil +// ispell-local-dictionary: "american" // End: