#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;}
|