INET Framework for OMNeT++/OMNEST
inet::GenericDatagram_Base Class Reference

Class generated from inet/networklayer/generic/GenericDatagram.msg:47 by nedtool. More...

#include <GenericDatagram_m.h>

Inheritance diagram for inet::GenericDatagram_Base:
inet::GenericDatagram

Public Member Functions

virtual ~GenericDatagram_Base ()
 
virtual GenericDatagram_Basedup () const override
 
virtual void parsimPack (omnetpp::cCommBuffer *b) const override
 
virtual void parsimUnpack (omnetpp::cCommBuffer *b) override
 
virtual L3Address_getSrcAddr ()
 
virtual const L3Address_getSrcAddr () const
 
virtual void setSourceAddress (const L3Address &sourceAddress)
 
virtual L3Address_getDestAddr ()
 
virtual const L3Address_getDestAddr () const
 
virtual void setDestinationAddress (const L3Address &destinationAddress)
 
virtual int getTransportProtocol () const
 
virtual void setTransportProtocol (int transportProtocol)
 
virtual short getHopLimit () const
 
virtual void setHopLimit (short hopLimit)
 
virtual TLVOptionsgetTlvOptions ()
 
virtual const TLVOptionsgetTlvOptions () const
 
virtual void setTlvOptions (const TLVOptions &tlvOptions)
 

Protected Member Functions

bool operator== (const GenericDatagram_Base &)
 
 GenericDatagram_Base (const char *name=nullptr, short kind=0)
 
 GenericDatagram_Base (const GenericDatagram_Base &other)
 
GenericDatagram_Baseoperator= (const GenericDatagram_Base &other)
 

Protected Attributes

L3Address sourceAddress
 
L3Address destinationAddress
 
int transportProtocol
 
short hopLimit
 
TLVOptions tlvOptions
 

Private Member Functions

void copy (const GenericDatagram_Base &other)
 

Detailed Description

Class generated from inet/networklayer/generic/GenericDatagram.msg:47 by nedtool.

//
// Represents a generic network datagram with generic network addresses. 
//
packet GenericDatagram
{
    @customize(true);
    L3Address sourceAddress @getter(_getSrcAddr);
    L3Address destinationAddress @getter(_getDestAddr);
    int transportProtocol @enum(IPProtocolId) = IP_PROT_NONE;
    short hopLimit;
    TLVOptions tlvOptions;
}

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

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

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

Register_Class(GenericDatagram)

Constructor & Destructor Documentation

inet::GenericDatagram_Base::GenericDatagram_Base ( const char *  name = nullptr,
short  kind = 0 
)
protected
inet::GenericDatagram_Base::GenericDatagram_Base ( const GenericDatagram_Base other)
protected
virtual inet::GenericDatagram_Base::~GenericDatagram_Base ( )
virtual

Member Function Documentation

virtual L3Address& inet::GenericDatagram_Base::_getDestAddr ( )
virtual
virtual const L3Address& inet::GenericDatagram_Base::_getDestAddr ( ) const
inlinevirtual

Referenced by _getDestAddr().

133 {return const_cast<GenericDatagram_Base*>(this)->_getDestAddr();}
GenericDatagram_Base(const char *name=nullptr, short kind=0)
virtual L3Address & _getDestAddr()
virtual L3Address& inet::GenericDatagram_Base::_getSrcAddr ( )
virtual
virtual const L3Address& inet::GenericDatagram_Base::_getSrcAddr ( ) const
inlinevirtual

Referenced by _getSrcAddr().

130 {return const_cast<GenericDatagram_Base*>(this)->_getSrcAddr();}
GenericDatagram_Base(const char *name=nullptr, short kind=0)
virtual L3Address & _getSrcAddr()
void inet::GenericDatagram_Base::copy ( const GenericDatagram_Base other)
private
virtual GenericDatagram_Base* inet::GenericDatagram_Base::dup ( ) const
inlineoverridevirtual

Reimplemented in inet::GenericDatagram.

124 {throw omnetpp::cRuntimeError("You forgot to manually add a dup() function to class GenericDatagram");}
virtual TLVOptions& inet::GenericDatagram_Base::getTlvOptions ( )
virtual
virtual const TLVOptions& inet::GenericDatagram_Base::getTlvOptions ( ) const
inlinevirtual

Referenced by getTlvOptions().

140 {return const_cast<GenericDatagram_Base*>(this)->getTlvOptions();}
GenericDatagram_Base(const char *name=nullptr, short kind=0)
virtual TLVOptions & getTlvOptions()
virtual int inet::GenericDatagram_Base::getTransportProtocol ( ) const
virtual
GenericDatagram_Base& inet::GenericDatagram_Base::operator= ( const GenericDatagram_Base other)
protected
bool inet::GenericDatagram_Base::operator== ( const GenericDatagram_Base )
protected
virtual void inet::GenericDatagram_Base::parsimPack ( omnetpp::cCommBuffer *  b) const
overridevirtual
virtual void inet::GenericDatagram_Base::parsimUnpack ( omnetpp::cCommBuffer *  b)
overridevirtual
virtual void inet::GenericDatagram_Base::setDestinationAddress ( const L3Address destinationAddress)
virtual
virtual void inet::GenericDatagram_Base::setHopLimit ( short  hopLimit)
virtual
virtual void inet::GenericDatagram_Base::setSourceAddress ( const L3Address sourceAddress)
virtual
virtual void inet::GenericDatagram_Base::setTlvOptions ( const TLVOptions tlvOptions)
virtual
virtual void inet::GenericDatagram_Base::setTransportProtocol ( int  transportProtocol)
virtual

Member Data Documentation

L3Address inet::GenericDatagram_Base::destinationAddress
protected
short inet::GenericDatagram_Base::hopLimit
protected
L3Address inet::GenericDatagram_Base::sourceAddress
protected
TLVOptions inet::GenericDatagram_Base::tlvOptions
protected
int inet::GenericDatagram_Base::transportProtocol
protected

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