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

#include <SCTPMessage.h>

Inheritance diagram for inet::sctp::SCTPStreamResetChunk:
inet::sctp::SCTPStreamResetChunk_Base inet::sctp::SCTPChunk

Public Member Functions

 SCTPStreamResetChunk (const char *name=nullptr, int32 kind=0)
 
 SCTPStreamResetChunk (const SCTPStreamResetChunk &other)
 
SCTPStreamResetChunkoperator= (const SCTPStreamResetChunk &other)
 
 ~SCTPStreamResetChunk ()
 
virtual SCTPStreamResetChunkdup () const override
 
virtual void setParametersArraySize (const uint32 size) override
 
virtual uint32 getParametersArraySize () const override
 
virtual void setParameters (const uint32 k, const cPacketPtr &parameters_var) override
 Generated but unused method, should not be called. More...
 
virtual cPacketPtrgetParameters (uint32 k) override
 Returns the kth parameter in this SCTP Reset Chunk. More...
 
virtual void addParameter (cPacket *msg)
 Adds a message object to the SCTP packet. More...
 
virtual cPacket * removeParameter ()
 Removes and returns the first message object in this SCTP packet. More...
 
- Public Member Functions inherited from inet::sctp::SCTPStreamResetChunk_Base
virtual ~SCTPStreamResetChunk_Base ()
 
virtual void parsimPack (omnetpp::cCommBuffer *b) const override
 
virtual void parsimUnpack (omnetpp::cCommBuffer *b) override
 
virtual void setParametersArraySize (unsigned int size)=0
 
virtual cPacketPtrgetParameters (unsigned int k)=0
 
virtual const cPacketPtrgetParameters (unsigned int k) const
 
virtual void setParameters (unsigned int k, const cPacketPtr &parameters)=0
 
- Public Member Functions inherited from inet::sctp::SCTPChunk
 SCTPChunk (const char *name=nullptr, short kind=0)
 
 SCTPChunk (const SCTPChunk &other)
 
virtual ~SCTPChunk ()
 
SCTPChunkoperator= (const SCTPChunk &other)
 
virtual uint8_t getChunkType () const
 
virtual void setChunkType (uint8_t chunkType)
 
virtual uint32_t getFlags () const
 
virtual void setFlags (uint32_t flags)
 

Protected Attributes

std::vector< cPacket * > parameterList
 
- Protected Attributes inherited from inet::sctp::SCTPChunk
uint8_t chunkType
 
uint32_t flags
 

Private Member Functions

void copy (const SCTPStreamResetChunk &other)
 
void clean ()
 

Additional Inherited Members

- Protected Member Functions inherited from inet::sctp::SCTPStreamResetChunk_Base
bool operator== (const SCTPStreamResetChunk_Base &)
 
 SCTPStreamResetChunk_Base (const char *name=nullptr, short kind=0)
 
 SCTPStreamResetChunk_Base (const SCTPStreamResetChunk_Base &other)
 
SCTPStreamResetChunk_Baseoperator= (const SCTPStreamResetChunk_Base &other)
 
- Protected Member Functions inherited from inet::sctp::SCTPChunk
bool operator== (const SCTPChunk &)
 

Constructor & Destructor Documentation

inet::sctp::SCTPStreamResetChunk::SCTPStreamResetChunk ( const char *  name = nullptr,
int32  kind = 0 
)
inline
130 : SCTPStreamResetChunk_Base(name, kind) {};
SCTPStreamResetChunk_Base(const char *name=nullptr, short kind=0)
inet::sctp::SCTPStreamResetChunk::SCTPStreamResetChunk ( const SCTPStreamResetChunk other)
inline
131 : SCTPStreamResetChunk_Base(other.getName()) { operator=(other); };
SCTPStreamResetChunk_Base(const char *name=nullptr, short kind=0)
SCTPStreamResetChunk & operator=(const SCTPStreamResetChunk &other)
Definition: SCTPMessage.cc:224
inet::sctp::SCTPStreamResetChunk::~SCTPStreamResetChunk ( )
288 {
289  clean();
290 }
void clean()
Definition: SCTPMessage.cc:292

Member Function Documentation

void inet::sctp::SCTPStreamResetChunk::addParameter ( cPacket *  msg)
virtual

Adds a message object to the SCTP packet.

The packet length will be adjusted

Referenced by PacketDrill::buildReconfigChunk(), inet::serializer::SCTPSerializer::parse(), inet::sctp::SCTPAssociation::processAddInAndOutResetRequestArrived(), inet::sctp::SCTPAssociation::sendAddInAndOutStreamsRequest(), inet::sctp::SCTPAssociation::sendAddOutgoingStreamsRequest(), inet::sctp::SCTPAssociation::sendBundledOutgoingResetAndResponse(), inet::sctp::SCTPAssociation::sendDoubleStreamResetResponse(), inet::sctp::SCTPAssociation::sendOutgoingRequestAndResponse(), inet::sctp::SCTPAssociation::sendOutgoingResetRequest(), inet::sctp::SCTPAssociation::sendStreamResetRequest(), and inet::sctp::SCTPAssociation::sendStreamResetResponse().

265 {
266  take(msg);
267  if (this->parameterList.size() < 2) {
268  this->setByteLength(this->getByteLength() + ADD_PADDING(msg->getByteLength()));
269  parameterList.push_back(msg);
270  }
271  else
272  throw cRuntimeError("Not more than two parameters allowed!");
273 }
std::vector< cPacket * > parameterList
Definition: SCTPMessage.h:123
#define ADD_PADDING(x)
Definition: SCTPAssociation.h:261
void inet::sctp::SCTPStreamResetChunk::clean ( )
private
293 {
294  while (!parameterList.empty()) {
295  cPacket *msg = parameterList.front();
296  parameterList.erase(parameterList.begin());
297  dropAndDelete(msg);
298  }
299 }
std::vector< cPacket * > parameterList
Definition: SCTPMessage.h:123
void inet::sctp::SCTPStreamResetChunk::copy ( const SCTPStreamResetChunk other)
private
236 {
237  for (const auto & elem : other.parameterList) {
238  cPacket *param = (elem)->dup();
239  take(param);
240  parameterList.push_back(param);
241  }
242 }
virtual SCTPStreamResetChunk * dup() const override
Definition: SCTPMessage.h:135
std::vector< cPacket * > parameterList
Definition: SCTPMessage.h:123
cPacketPtr & inet::sctp::SCTPStreamResetChunk::getParameters ( uint32  k)
overridevirtual

Returns the kth parameter in this SCTP Reset Chunk.

Referenced by PacketDrill::buildSCTPPacket(), inet::PacketDrillApp::compareReconfigPacket(), inet::serializer::SCTPSerializer::deserialize(), inet::sctp::SCTPAssociation::processStreamResetArrived(), and inet::PacketDrillApp::runEvent().

255 {
256  return parameterList.at(k);
257 }
std::vector< cPacket * > parameterList
Definition: SCTPMessage.h:123
const double k
Definition: QAM16Modulation.cc:24
SCTPStreamResetChunk & inet::sctp::SCTPStreamResetChunk::operator= ( const SCTPStreamResetChunk other)
225 {
227 
228  this->setByteLength(SCTP_STREAM_RESET_CHUNK_LENGTH);
229  for (const auto & elem : other.parameterList)
230  addParameter((cPacket *)(elem)->dup());
231 
232  return *this;
233 }
virtual SCTPStreamResetChunk * dup() const override
Definition: SCTPMessage.h:135
virtual void addParameter(cPacket *msg)
Adds a message object to the SCTP packet.
Definition: SCTPMessage.cc:264
#define SCTP_STREAM_RESET_CHUNK_LENGTH
Definition: SCTPAssociation.h:224
SCTPStreamResetChunk_Base & operator=(const SCTPStreamResetChunk_Base &other)
cPacket * inet::sctp::SCTPStreamResetChunk::removeParameter ( )
virtual

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

276 {
277  if (parameterList.empty())
278  return nullptr;
279 
280  cPacket *msg = parameterList.front();
281  parameterList.erase(parameterList.begin());
282  drop(msg);
283  this->setByteLength(this->getByteLength() + ADD_PADDING(msg->getByteLength()));
284  return msg;
285 }
std::vector< cPacket * > parameterList
Definition: SCTPMessage.h:123
#define ADD_PADDING(x)
Definition: SCTPAssociation.h:261
void inet::sctp::SCTPStreamResetChunk::setParameters ( const uint32  k,
const cPacketPtr parameters_var 
)
overridevirtual

Generated but unused method, should not be called.

260 {
261  throw new cException(this, "setParameters() not supported, use addParameter()");
262 }
void inet::sctp::SCTPStreamResetChunk::setParametersArraySize ( const uint32  size)
overridevirtual
245 {
246  throw new cException(this, "setParametersArraySize() not supported, use addParameter()");
247 }

Member Data Documentation

std::vector<cPacket *> inet::sctp::SCTPStreamResetChunk::parameterList
protected

Referenced by copy(), and operator=().


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