INET Framework for OMNeT++/OMNEST
inet::sctp::SctpAsconfChunk Class Reference

#include <SctpHeader.h>

Inheritance diagram for inet::sctp::SctpAsconfChunk:
inet::sctp::SctpAsconfChunk_Base inet::sctp::SctpChunk

Public Member Functions

 SctpAsconfChunk (const char *name=nullptr, int32_t kind=0)
 
 SctpAsconfChunk (const SctpAsconfChunk &other)
 
SctpAsconfChunkoperator= (const SctpAsconfChunk &other)
 
virtual SctpAsconfChunkdup () const override
 
virtual void setAsconfParamsArraySize (size_t size) override
 
virtual size_t getAsconfParamsArraySize () const override
 
virtual const SctpParametergetAsconfParams (size_t k) const override
 Returns the kth parameter in this SCTP Reset Chunk. More...
 
virtual void setAsconfParams (size_t k, SctpParameter *asconfParams) override
 Generated but unused method, should not be called. More...
 
virtual void appendAsconfParams (SctpParameter *asconfParams) override
 
virtual void insertAsconfParams (size_t k, SctpParameter *asconfParams) override
 
virtual void eraseAsconfParams (size_t k) override
 
virtual void addAsconfParam (SctpParameter *msg)
 Adds a message object to the SCTP packet. More...
 
virtual SctpParameterremoveAsconfParam ()
 Removes and returns the first message object in this SCTP packet. More...
 
virtual void insertAsconfParams (size_t k, SctpParameter *asconfParams)=0
 
void insertAsconfParams (SctpParameter *asconfParams)
 
- Public Member Functions inherited from inet::sctp::SctpAsconfChunk_Base
virtual ~SctpAsconfChunk_Base ()
 
virtual void parsimPack (omnetpp::cCommBuffer *b) const override
 
virtual void parsimUnpack (omnetpp::cCommBuffer *b) override
 
virtual uint32_t getSerialNumber () const
 
virtual void setSerialNumber (uint32_t serialNumber)
 
virtual const ::inet::L3AddressgetAddressParam () const
 
virtual ::inet::L3AddressgetAddressParamForUpdate ()
 
virtual void setAddressParam (const ::inet::L3Address &addressParam)
 
virtual uint32_t getPeerVTag () const
 
virtual void setPeerVTag (uint32_t peerVTag)
 
virtual SctpParametergetAsconfParamsForUpdate (size_t k)
 
void insertAsconfParams (SctpParameter *asconfParams)
 
- Public Member Functions inherited from inet::sctp::SctpChunk
 SctpChunk (const char *name=nullptr)
 
 SctpChunk (const SctpChunk &other)
 
virtual ~SctpChunk ()
 
SctpChunkoperator= (const SctpChunk &other)
 
virtual uint8_t getSctpChunkType () const
 
virtual void setSctpChunkType (uint8_t sctpChunkType)
 
virtual uint32_t getFlags () const
 
virtual void setFlags (uint32_t flags)
 
virtual unsigned short getLength () const
 
virtual void setLength (unsigned short length)
 
virtual void setChunkNameArraySize (size_t size)
 
virtual size_t getChunkNameArraySize () const
 
virtual char getChunkName (size_t k) const
 
virtual void setChunkName (size_t k, char chunkName)
 
virtual void insertChunkName (size_t k, char chunkName)
 
void insertChunkName (char chunkName)
 
virtual void appendChunkName (char chunkName)
 
virtual void eraseChunkName (size_t k)
 

Protected Attributes

std::vector< SctpParameter * > parameterList
 
- Protected Attributes inherited from inet::sctp::SctpAsconfChunk_Base
uint32_t serialNumber = 0
 
::inet::L3Address addressParam
 
uint32_t peerVTag = 0
 
- Protected Attributes inherited from inet::sctp::SctpChunk
uint8_t sctpChunkType = 0
 
uint32_t flags = 0
 
unsigned short length = 0
 
char * chunkName = nullptr
 
size_t chunkName_arraysize = 0
 

Additional Inherited Members

- Protected Member Functions inherited from inet::sctp::SctpAsconfChunk_Base
bool operator== (const SctpAsconfChunk_Base &)=delete
 
 SctpAsconfChunk_Base (const char *name=nullptr)
 
 SctpAsconfChunk_Base (const SctpAsconfChunk_Base &other)
 
SctpAsconfChunk_Baseoperator= (const SctpAsconfChunk_Base &other)
 
- Protected Member Functions inherited from inet::sctp::SctpChunk
bool operator== (const SctpChunk &)=delete
 

Constructor & Destructor Documentation

◆ SctpAsconfChunk() [1/2]

inet::sctp::SctpAsconfChunk::SctpAsconfChunk ( const char *  name = nullptr,
int32_t  kind = 0 
)
inline
173 : SctpAsconfChunk_Base() {};

◆ SctpAsconfChunk() [2/2]

inet::sctp::SctpAsconfChunk::SctpAsconfChunk ( const SctpAsconfChunk other)
inline
174 : SctpAsconfChunk_Base(other) { operator=(other); };

Member Function Documentation

◆ addAsconfParam()

void inet::sctp::SctpAsconfChunk::addAsconfParam ( SctpParameter msg)
virtual

Adds a message object to the SCTP packet.

The packet length will be adjusted

359 {
360  take(msg);
361  this->setByteLength(this->getByteLength() + ADD_PADDING(msg->getByteLength()));
362  parameterList.push_back(msg);
363 }

Referenced by operator=(), and inet::sctp::SctpAssociation::sendAsconf().

◆ appendAsconfParams()

virtual void inet::sctp::SctpAsconfChunk::appendAsconfParams ( SctpParameter asconfParams)
inlineoverridevirtual

Implements inet::sctp::SctpAsconfChunk_Base.

190 { throw cRuntimeError("Unimplemented function"); }

◆ dup()

virtual SctpAsconfChunk* inet::sctp::SctpAsconfChunk::dup ( ) const
inlineoverridevirtual

◆ eraseAsconfParams()

virtual void inet::sctp::SctpAsconfChunk::eraseAsconfParams ( size_t  k)
inlineoverridevirtual

Implements inet::sctp::SctpAsconfChunk_Base.

193 { throw cRuntimeError("Unimplemented function"); }

◆ getAsconfParams()

const SctpParameter * inet::sctp::SctpAsconfChunk::getAsconfParams ( size_t  k) const
overridevirtual

Returns the kth parameter in this SCTP Reset Chunk.

Implements inet::sctp::SctpAsconfChunk_Base.

349 {
350  return parameterList.at(k);
351 }

Referenced by inet::sctp::SctpHeaderSerializer::serialize().

◆ getAsconfParamsArraySize()

size_t inet::sctp::SctpAsconfChunk::getAsconfParamsArraySize ( ) const
overridevirtual

◆ insertAsconfParams() [1/3]

void inet::sctp::SctpAsconfChunk_Base::insertAsconfParams
inline
2095 {appendAsconfParams(asconfParams);}

◆ insertAsconfParams() [2/3]

virtual void inet::sctp::SctpAsconfChunk::insertAsconfParams ( size_t  k,
SctpParameter asconfParams 
)
inlineoverridevirtual

Implements inet::sctp::SctpAsconfChunk_Base.

192 { throw cRuntimeError("Unimplemented function"); }

◆ insertAsconfParams() [3/3]

virtual void inet::sctp::SctpAsconfChunk_Base::insertAsconfParams

◆ operator=()

SctpAsconfChunk & inet::sctp::SctpAsconfChunk::operator= ( const SctpAsconfChunk other)
327 {
329 
330  this->setByteLength(SCTP_ADD_IP_CHUNK_LENGTH + 8);
331  this->setAddressParam(other.getAddressParam());
332  for (const auto& elem : other.parameterList)
333  addAsconfParam((elem)->dup());
334 
335  return *this;
336 }

◆ removeAsconfParam()

SctpParameter * inet::sctp::SctpAsconfChunk::removeAsconfParam ( )
virtual

Removes and returns the first message object in this SCTP packet.

366 {
367  if (parameterList.empty())
368  return nullptr;
369 
370  SctpParameter *msg = parameterList.front();
371  parameterList.erase(parameterList.begin());
372  drop(msg);
373  this->setByteLength(this->getByteLength() + ADD_PADDING(msg->getByteLength()));
374  return msg;
375 }

Referenced by inet::sctp::SctpAssociation::processAsconfAckArrived(), and inet::sctp::SctpAssociation::processAsconfArrived().

◆ setAsconfParams()

void inet::sctp::SctpAsconfChunk::setAsconfParams ( size_t  k,
SctpParameter asconfParams 
)
overridevirtual

Generated but unused method, should not be called.

Implements inet::sctp::SctpAsconfChunk_Base.

354 {
355  throw cException(this, "setAsconfParams() not supported, use addAsconfParam()");
356 }

◆ setAsconfParamsArraySize()

void inet::sctp::SctpAsconfChunk::setAsconfParamsArraySize ( size_t  size)
overridevirtual

Implements inet::sctp::SctpAsconfChunk_Base.

339 {
340  throw cException(this, "setAsconfParamsArraySize() not supported, use addAsconfParam()");
341 }

Member Data Documentation

◆ parameterList

std::vector<SctpParameter *> inet::sctp::SctpAsconfChunk::parameterList
protected

The documentation for this class was generated from the following files:
inet::sctp::SctpAsconfChunk_Base::setAddressParam
virtual void setAddressParam(const ::inet::L3Address &addressParam)
inet::sctp::SctpAsconfChunk::addAsconfParam
virtual void addAsconfParam(SctpParameter *msg)
Adds a message object to the SCTP packet.
Definition: SctpHeader.cc:358
inet::sctp::SctpAsconfChunk::appendAsconfParams
virtual void appendAsconfParams(SctpParameter *asconfParams) override
Definition: SctpHeader.h:190
SCTP_ADD_IP_CHUNK_LENGTH
#define SCTP_ADD_IP_CHUNK_LENGTH
Definition: SctpAssociation.h:222
inet::sctp::SctpAsconfChunk_Base::operator=
SctpAsconfChunk_Base & operator=(const SctpAsconfChunk_Base &other)
ADD_PADDING
#define ADD_PADDING(x)
Definition: SctpAssociation.h:252
inet::sctp::SctpAsconfChunk::parameterList
std::vector< SctpParameter * > parameterList
Definition: SctpHeader.h:170
inet::sctp::SctpAsconfChunk_Base::SctpAsconfChunk_Base
SctpAsconfChunk_Base(const char *name=nullptr)
inet::physicallayer::k
const double k
Definition: Qam1024Modulation.cc:14
inet::sctp::SctpAsconfChunk::SctpAsconfChunk
SctpAsconfChunk(const char *name=nullptr, int32_t kind=0)
Definition: SctpHeader.h:173
inet::sctp::SctpAsconfChunk::dup
virtual SctpAsconfChunk * dup() const override
Definition: SctpHeader.h:177
inet::sctp::SctpAsconfChunk::operator=
SctpAsconfChunk & operator=(const SctpAsconfChunk &other)
Definition: SctpHeader.cc:326