#include <IPv6Datagram.h>
Public Member Functions | |
| IPv6ExtensionHeader () | |
| IPv6ExtensionHeader (const IPv6ExtensionHeader &other) | |
| IPv6ExtensionHeader & | operator= (const IPv6ExtensionHeader &other) |
| virtual IPProtocolId | extensionType () const |
| virtual int | byteLength () const |
|
|
00078 : IPv6ExtensionHeader_Base() {}
|
|
|
00079 : IPv6ExtensionHeader_Base() {operator=(other);}
|
|
|
00140 {
00141 // FIXME msg files don't yet support readonly attrs that can be
00142 // redefined in subclasses, so for now we resort to the following
00143 // unsafe and unextensible nasty solution
00144 if (dynamic_cast<const IPv6HopByHopOptionsHeader*>(this)) {
00145 return 8; // FIXME verify
00146 } else if (dynamic_cast<const IPv6RoutingHeader*>(this)) {
00147 return 8; // FIXME verify
00148 } else if (dynamic_cast<const IPv6FragmentHeader*>(this)) {
00149 return 8;
00150 } else if (dynamic_cast<const IPv6DestinationOptionsHeader*>(this)) {
00151 return 8; // FIXME verify
00152 } else if (dynamic_cast<const IPv6AuthenticationHeader*>(this)) {
00153 return 8; // FIXME verify
00154 } else if (dynamic_cast<const IPv6EncapsulatingSecurityPayloadHeader*>(this)) {
00155 return 8; // FIXME verify
00156 } else {
00157 throw new cException("unrecognised HeaderExtension subclass %s in IPv6ExtensionHeader::extensionType()", className());
00158 }
00159 }
|
|
|
00118 {
00119 // FIXME msg files don't yet support readonly attrs that can be
00120 // redefined in subclasses, so for now we resort to the following
00121 // unsafe and unextensible nasty solution
00122 if (dynamic_cast<const IPv6HopByHopOptionsHeader*>(this)) {
00123 return IP_PROT_IPv6EXT_HOP;
00124 } else if (dynamic_cast<const IPv6RoutingHeader*>(this)) {
00125 return IP_PROT_IPv6EXT_ROUTING;
00126 } else if (dynamic_cast<const IPv6FragmentHeader*>(this)) {
00127 return IP_PROT_IPv6EXT_FRAGMENT;
00128 } else if (dynamic_cast<const IPv6DestinationOptionsHeader*>(this)) {
00129 return IP_PROT_IPv6EXT_DEST;
00130 } else if (dynamic_cast<const IPv6AuthenticationHeader*>(this)) {
00131 return IP_PROT_IPv6EXT_AUTH;
00132 } else if (dynamic_cast<const IPv6EncapsulatingSecurityPayloadHeader*>(this)) {
00133 return IP_PROT_IPv6EXT_ESP;
00134 } else {
00135 throw new cException("unrecognised HeaderExtension subclass %s in IPv6ExtensionHeader::extensionType()", className());
00136 }
00137 }
|
|
|
00080 {IPv6ExtensionHeader_Base::operator=(other); return *this;}
|
1.4.1