INET Framework for OMNeT++/OMNEST
IPv6Datagram_Base Class Reference

#include <IPv6Datagram_m.h>

Inheritance diagram for IPv6Datagram_Base:
IPv6Datagram

List of all members.

Public Member Functions

virtual ~IPv6Datagram_Base ()
virtual IPv6Datagram_Basedup () const
virtual void parsimPack (cCommBuffer *b)
virtual void parsimUnpack (cCommBuffer *b)
virtual IPv6AddressgetSrcAddress ()
virtual const IPv6AddressgetSrcAddress () const
virtual void setSrcAddress (const IPv6Address &srcAddress)
virtual IPv6AddressgetDestAddress ()
virtual const IPv6AddressgetDestAddress () const
virtual void setDestAddress (const IPv6Address &destAddress)
virtual unsigned int getTrafficClass () const
virtual void setTrafficClass (unsigned int trafficClass)
virtual unsigned int getFlowLabel () const
virtual void setFlowLabel (unsigned int flowLabel)
virtual short getHopLimit () const
virtual void setHopLimit (short hopLimit)
virtual int getTransportProtocol () const
virtual void setTransportProtocol (int transportProtocol)
virtual void setExtensionHeaderArraySize (unsigned int size)
virtual unsigned int getExtensionHeaderArraySize () const
virtual IPv6ExtensionHeaderPtrgetExtensionHeader (unsigned int k)
virtual const
IPv6ExtensionHeaderPtr
getExtensionHeader (unsigned int k) const
virtual void setExtensionHeader (unsigned int k, const IPv6ExtensionHeaderPtr &extensionHeader)

Protected Member Functions

bool operator== (const IPv6Datagram_Base &)
 IPv6Datagram_Base (const char *name=NULL, int kind=0)
 IPv6Datagram_Base (const IPv6Datagram_Base &other)
IPv6Datagram_Baseoperator= (const IPv6Datagram_Base &other)

Protected Attributes

IPv6Address srcAddress_var
IPv6Address destAddress_var
unsigned int trafficClass_var
unsigned int flowLabel_var
short hopLimit_var
int transportProtocol_var
IPv6ExtensionHeaderPtrextensionHeader_var
unsigned int extensionHeader_arraysize

Private Member Functions

void copy (const IPv6Datagram_Base &other)

Detailed Description

Class generated from networklayer/ipv6/IPv6Datagram.msg by opp_msgc.

 packet IPv6Datagram
 {
     (true);
     IPv6Address srcAddress;
     IPv6Address destAddress;
     unsigned int trafficClass;
     unsigned int flowLabel;
     short hopLimit = 0;
     int transportProtocol enum(IPProtocolId);
     IPv6ExtensionHeaderPtr extensionHeader[]; 
 }
 

IPv6Datagram_Base is only useful if it gets subclassed, and IPv6Datagram is derived from it. The minimum code to be written for IPv6Datagram is the following:

 class IPv6Datagram : public IPv6Datagram_Base
 {
   private:
     void copy(const IPv6Datagram& other) { ... }
   public:
     IPv6Datagram(const char *name=NULL, int kind=0) : IPv6Datagram_Base(name,kind) {}
     IPv6Datagram(const IPv6Datagram& other) : IPv6Datagram_Base(other) {copy(other);}
     IPv6Datagram& operator=(const IPv6Datagram& other) {if (this==&other) return *this; IPv6Datagram_Base::operator=(other); copy(other); return *this;}
     virtual IPv6Datagram *dup() const {return new IPv6Datagram(*this);}
     // ADD CODE HERE to redefine and implement pure virtual functions from IPv6Datagram_Base
 };
 

The following should go into a .cc (.cpp) file:

 Register_Class(IPv6Datagram);
 

Definition at line 69 of file IPv6Datagram_m.h.


Constructor & Destructor Documentation

IPv6Datagram_Base::IPv6Datagram_Base ( const char *  name = NULL,
int  kind = 0 
) [protected]

Member Function Documentation

void IPv6Datagram_Base::copy ( const IPv6Datagram_Base other) [private]
virtual IPv6Datagram_Base* IPv6Datagram_Base::dup ( ) const [inline, virtual]

Reimplemented in IPv6Datagram.

Definition at line 95 of file IPv6Datagram_m.h.

{throw cRuntimeError("You forgot to manually add a dup() function to class IPv6Datagram");}
virtual const IPv6Address& IPv6Datagram_Base::getDestAddress ( ) const [inline, virtual]

Definition at line 104 of file IPv6Datagram_m.h.

Referenced by getDestAddress().

{return const_cast<IPv6Datagram_Base*>(this)->getDestAddress();}
virtual IPv6ExtensionHeaderPtr& IPv6Datagram_Base::getExtensionHeader ( unsigned int  k) [virtual]

Reimplemented in IPv6Datagram.

virtual const IPv6ExtensionHeaderPtr& IPv6Datagram_Base::getExtensionHeader ( unsigned int  k) const [inline, virtual]

Definition at line 117 of file IPv6Datagram_m.h.

Referenced by getExtensionHeader().

{return const_cast<IPv6Datagram_Base*>(this)->getExtensionHeader(k);}
virtual unsigned int IPv6Datagram_Base::getExtensionHeaderArraySize ( ) const [virtual]

Reimplemented in IPv6Datagram.

virtual unsigned int IPv6Datagram_Base::getFlowLabel ( ) const [virtual]
virtual const IPv6Address& IPv6Datagram_Base::getSrcAddress ( ) const [inline, virtual]

Definition at line 101 of file IPv6Datagram_m.h.

Referenced by getSrcAddress().

{return const_cast<IPv6Datagram_Base*>(this)->getSrcAddress();}
virtual unsigned int IPv6Datagram_Base::getTrafficClass ( ) const [virtual]
IPv6Datagram_Base& IPv6Datagram_Base::operator= ( const IPv6Datagram_Base other) [protected]
bool IPv6Datagram_Base::operator== ( const IPv6Datagram_Base ) [protected]
virtual void IPv6Datagram_Base::parsimPack ( cCommBuffer *  b) [virtual]
virtual void IPv6Datagram_Base::parsimUnpack ( cCommBuffer *  b) [virtual]
virtual void IPv6Datagram_Base::setDestAddress ( const IPv6Address destAddress) [virtual]
virtual void IPv6Datagram_Base::setExtensionHeader ( unsigned int  k,
const IPv6ExtensionHeaderPtr extensionHeader 
) [virtual]

Reimplemented in IPv6Datagram.

virtual void IPv6Datagram_Base::setExtensionHeaderArraySize ( unsigned int  size) [virtual]

Reimplemented in IPv6Datagram.

virtual void IPv6Datagram_Base::setFlowLabel ( unsigned int  flowLabel) [virtual]
virtual void IPv6Datagram_Base::setHopLimit ( short  hopLimit) [virtual]
virtual void IPv6Datagram_Base::setSrcAddress ( const IPv6Address srcAddress) [virtual]

Referenced by IPv6::routePacket().

virtual void IPv6Datagram_Base::setTrafficClass ( unsigned int  trafficClass) [virtual]
virtual void IPv6Datagram_Base::setTransportProtocol ( int  transportProtocol) [virtual]

Member Data Documentation

Definition at line 73 of file IPv6Datagram_m.h.

Definition at line 79 of file IPv6Datagram_m.h.

unsigned int IPv6Datagram_Base::flowLabel_var [protected]

Definition at line 75 of file IPv6Datagram_m.h.

Definition at line 76 of file IPv6Datagram_m.h.

Definition at line 72 of file IPv6Datagram_m.h.

unsigned int IPv6Datagram_Base::trafficClass_var [protected]

Definition at line 74 of file IPv6Datagram_m.h.

Definition at line 77 of file IPv6Datagram_m.h.


The documentation for this class was generated from the following file: