HowTos/NewPacket: Some updates
[senf.git] / Packets / PacketType.hh
index 53c17c1..6f07b6b 100644 (file)
@@ -1,6 +1,8 @@
+// $Id$
+//
 // Copyright (C) 2007 
-// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
-// Kompetenzzentrum fuer Satelitenkommunikation (SatCom)
+// Fraunhofer Institute for Open Communication Systems (FOKUS) 
+// Competence Center NETwork research (NET), St. Augustin, GERMANY 
 //     Stefan Bund <g0dil@berlios.de>
 //
 // This program is free software; you can redistribute it and/or modify
@@ -222,8 +224,8 @@ namespace senf {
         \code
         // Here 'SomeRegistryTag' is optional
         struct SimplePacketType 
-            : public senf::PacketTypeBase
-              public senf:PacketTypeMixin<SimplePacketType, SomeRegistryTag>
+            : public senf::PacketTypeBase,
+              public senf::PacketTypeMixin<SimplePacketType, SomeRegistryTag>
         {
             typedef senf::PacketTypeMixin<SimplePacketType, SomeRegistryTag> mixin;
             typedef senf::ConcretePacket<SimplePacketType> packet;
@@ -274,7 +276,7 @@ namespace senf {
                 // Set the type field by querying the type of the next packet. This is an 
                 // optional assignment: If the key is not found, the value returned by 'key'
                 // is an empty optional and the assignment will be skipped.
-                p->typeField << key(p.next());
+                p->typeField << key(p.next(senf::nothrow));
 
                 // optionally complete the packet by generating auto-generated information
                 // (like checksums)
@@ -292,8 +294,8 @@ namespace senf {
 
         \code
         struct SimplePacketType 
-            : public senf::PacketTypeBase
-              public senf:PacketTypeMixin<SimplePacketType, SomeRegistryTag>
+            : public senf::PacketTypeBase,
+              public senf::PacketTypeMixin<SimplePacketType, SomeRegistryTag>
         {
             typedef senf::PacketTypeMixin<SimplePacketType, SomeRegistryTag> mixin;
             typedef senf::ConcretePacket<SimplePacketType> packet;
@@ -334,8 +336,8 @@ namespace senf {
                                              type is not found in the registry, the returned
                                              optional value will be empty. */
 
-        ///@{
         ///\name PacketType interface implementation
+        ///@{
 
         static PacketInterpreterBase::optional_range nextPacketRange (Packet p);
         static PacketInterpreterBase::factory_t      nextPacketType  (Packet p);
@@ -362,7 +364,7 @@ namespace senf {
 
 ///////////////////////////////hh.e////////////////////////////////////////
 #endif
-#if !defined(SENF_PACKETS_DECL_ONLY) && !defined(HH_PacketType_i_)
+#if !defined(HH_Packets__decls_) && !defined(HH_PacketType_i_)
 #define HH_PacketType_i_
 #include "PacketType.cci"
 //#include "PacketType.ct"