INET Framework for OMNeT++/OMNEST
SCTPMessage_m.h
Go to the documentation of this file.
00001 //
00002 // Generated file, do not edit! Created by opp_msgc 4.2 from transport/sctp/SCTPMessage.msg.
00003 //
00004 
00005 #ifndef _SCTPMESSAGE_M_H_
00006 #define _SCTPMESSAGE_M_H_
00007 
00008 #include <omnetpp.h>
00009 
00010 // opp_msgc version check
00011 #define MSGC_VERSION 0x0402
00012 #if (MSGC_VERSION!=OMNETPP_VERSION)
00013 #    error Version mismatch! Probably this file was generated by an earlier version of opp_msgc: 'make clean' should help.
00014 #endif
00015 
00016 // cplusplus {{
00017 #include "IPvXAddress.h"
00018 // }}
00019 
00020 // cplusplus {{
00021 typedef cPacket *cPacketPtr;
00022 // }}
00023 
00024 
00025 
00038 class SCTPSimpleMessage : public ::cPacket
00039 {
00040   protected:
00041     uint32 dataLen_var;
00042     char *data_var; // array ptr
00043     unsigned int data_arraysize;
00044     simtime_t creationTime_var;
00045     bool encaps_var;
00046 
00047   private:
00048     void copy(const SCTPSimpleMessage& other);
00049 
00050   protected:
00051     // protected and unimplemented operator==(), to prevent accidental usage
00052     bool operator==(const SCTPSimpleMessage&);
00053 
00054   public:
00055     SCTPSimpleMessage(const char *name=NULL, int kind=0);
00056     SCTPSimpleMessage(const SCTPSimpleMessage& other);
00057     virtual ~SCTPSimpleMessage();
00058     SCTPSimpleMessage& operator=(const SCTPSimpleMessage& other);
00059     virtual SCTPSimpleMessage *dup() const {return new SCTPSimpleMessage(*this);}
00060     virtual void parsimPack(cCommBuffer *b);
00061     virtual void parsimUnpack(cCommBuffer *b);
00062 
00063     // field getter/setter methods
00064     virtual uint32 getDataLen() const;
00065     virtual void setDataLen(uint32 dataLen);
00066     virtual void setDataArraySize(unsigned int size);
00067     virtual unsigned int getDataArraySize() const;
00068     virtual char getData(unsigned int k) const;
00069     virtual void setData(unsigned int k, char data);
00070     virtual simtime_t getCreationTime() const;
00071     virtual void setCreationTime(simtime_t creationTime);
00072     virtual bool getEncaps() const;
00073     virtual void setEncaps(bool encaps);
00074 };
00075 
00076 inline void doPacking(cCommBuffer *b, SCTPSimpleMessage& obj) {obj.parsimPack(b);}
00077 inline void doUnpacking(cCommBuffer *b, SCTPSimpleMessage& obj) {obj.parsimUnpack(b);}
00078 
00120 class SCTPMessage_Base : public ::cPacket
00121 {
00122   protected:
00123     uint16 srcPort_var;
00124     uint16 destPort_var;
00125     uint32 tag_var;
00126     bool checksumOk_var;
00127 
00128   private:
00129     void copy(const SCTPMessage_Base& other);
00130 
00131   protected:
00132     // protected and unimplemented operator==(), to prevent accidental usage
00133     bool operator==(const SCTPMessage_Base&);
00134     // make constructors protected to avoid instantiation
00135     SCTPMessage_Base(const char *name=NULL, int kind=0);
00136     SCTPMessage_Base(const SCTPMessage_Base& other);
00137     // make assignment operator protected to force the user override it
00138     SCTPMessage_Base& operator=(const SCTPMessage_Base& other);
00139 
00140   public:
00141     virtual ~SCTPMessage_Base();
00142     virtual SCTPMessage_Base *dup() const {throw cRuntimeError("You forgot to manually add a dup() function to class SCTPMessage");}
00143     virtual void parsimPack(cCommBuffer *b);
00144     virtual void parsimUnpack(cCommBuffer *b);
00145 
00146     // field getter/setter methods
00147     virtual uint16 getSrcPort() const;
00148     virtual void setSrcPort(uint16 srcPort);
00149     virtual uint16 getDestPort() const;
00150     virtual void setDestPort(uint16 destPort);
00151     virtual uint32 getTag() const;
00152     virtual void setTag(uint32 tag);
00153     virtual bool getChecksumOk() const;
00154     virtual void setChecksumOk(bool checksumOk);
00155     virtual void setChunksArraySize(unsigned int size) = 0;
00156     virtual unsigned int getChunksArraySize() const = 0;
00157     virtual cPacketPtr& getChunks(unsigned int k) = 0;
00158     virtual const cPacketPtr& getChunks(unsigned int k) const {return const_cast<SCTPMessage_Base*>(this)->getChunks(k);}
00159     virtual void setChunks(unsigned int k, const cPacketPtr& chunks) = 0;
00160 };
00161 
00173 class SCTPChunk : public ::cPacket
00174 {
00175   protected:
00176     uint8 chunkType_var;
00177 
00178   private:
00179     void copy(const SCTPChunk& other);
00180 
00181   protected:
00182     // protected and unimplemented operator==(), to prevent accidental usage
00183     bool operator==(const SCTPChunk&);
00184 
00185   public:
00186     SCTPChunk(const char *name=NULL, int kind=0);
00187     SCTPChunk(const SCTPChunk& other);
00188     virtual ~SCTPChunk();
00189     SCTPChunk& operator=(const SCTPChunk& other);
00190     virtual SCTPChunk *dup() const {return new SCTPChunk(*this);}
00191     virtual void parsimPack(cCommBuffer *b);
00192     virtual void parsimUnpack(cCommBuffer *b);
00193 
00194     // field getter/setter methods
00195     virtual uint8 getChunkType() const;
00196     virtual void setChunkType(uint8 chunkType);
00197 };
00198 
00199 inline void doPacking(cCommBuffer *b, SCTPChunk& obj) {obj.parsimPack(b);}
00200 inline void doUnpacking(cCommBuffer *b, SCTPChunk& obj) {obj.parsimUnpack(b);}
00201 
00223 class SCTPInitChunk : public ::SCTPChunk
00224 {
00225   protected:
00226     uint32 initTag_var;
00227     uint32 a_rwnd_var;
00228     uint16 noOutStreams_var;
00229     uint16 noInStreams_var;
00230     uint32 initTSN_var;
00231     bool forwardTsn_var;
00232     IPvXAddress *addresses_var; // array ptr
00233     unsigned int addresses_arraysize;
00234     uint8 *unrecognizedParameters_var; // array ptr
00235     unsigned int unrecognizedParameters_arraysize;
00236 
00237   private:
00238     void copy(const SCTPInitChunk& other);
00239 
00240   protected:
00241     // protected and unimplemented operator==(), to prevent accidental usage
00242     bool operator==(const SCTPInitChunk&);
00243 
00244   public:
00245     SCTPInitChunk(const char *name=NULL, int kind=0);
00246     SCTPInitChunk(const SCTPInitChunk& other);
00247     virtual ~SCTPInitChunk();
00248     SCTPInitChunk& operator=(const SCTPInitChunk& other);
00249     virtual SCTPInitChunk *dup() const {return new SCTPInitChunk(*this);}
00250     virtual void parsimPack(cCommBuffer *b);
00251     virtual void parsimUnpack(cCommBuffer *b);
00252 
00253     // field getter/setter methods
00254     virtual uint32 getInitTag() const;
00255     virtual void setInitTag(uint32 initTag);
00256     virtual uint32 getA_rwnd() const;
00257     virtual void setA_rwnd(uint32 a_rwnd);
00258     virtual uint16 getNoOutStreams() const;
00259     virtual void setNoOutStreams(uint16 noOutStreams);
00260     virtual uint16 getNoInStreams() const;
00261     virtual void setNoInStreams(uint16 noInStreams);
00262     virtual uint32 getInitTSN() const;
00263     virtual void setInitTSN(uint32 initTSN);
00264     virtual bool getForwardTsn() const;
00265     virtual void setForwardTsn(bool forwardTsn);
00266     virtual void setAddressesArraySize(unsigned int size);
00267     virtual unsigned int getAddressesArraySize() const;
00268     virtual IPvXAddress& getAddresses(unsigned int k);
00269     virtual const IPvXAddress& getAddresses(unsigned int k) const {return const_cast<SCTPInitChunk*>(this)->getAddresses(k);}
00270     virtual void setAddresses(unsigned int k, const IPvXAddress& addresses);
00271     virtual void setUnrecognizedParametersArraySize(unsigned int size);
00272     virtual unsigned int getUnrecognizedParametersArraySize() const;
00273     virtual uint8 getUnrecognizedParameters(unsigned int k) const;
00274     virtual void setUnrecognizedParameters(unsigned int k, uint8 unrecognizedParameters);
00275 };
00276 
00277 inline void doPacking(cCommBuffer *b, SCTPInitChunk& obj) {obj.parsimPack(b);}
00278 inline void doUnpacking(cCommBuffer *b, SCTPInitChunk& obj) {obj.parsimUnpack(b);}
00279 
00303 class SCTPInitAckChunk : public ::SCTPChunk
00304 {
00305   protected:
00306     uint32 initTag_var;
00307     uint32 a_rwnd_var;
00308     uint16 noOutStreams_var;
00309     uint16 noInStreams_var;
00310     uint32 initTSN_var;
00311     bool forwardTsn_var;
00312     IPvXAddress *addresses_var; // array ptr
00313     unsigned int addresses_arraysize;
00314     char *cookie_var; // array ptr
00315     unsigned int cookie_arraysize;
00316     uint8 *unrecognizedParameters_var; // array ptr
00317     unsigned int unrecognizedParameters_arraysize;
00318     cPacketPtr stateCookie_var;
00319 
00320   private:
00321     void copy(const SCTPInitAckChunk& other);
00322 
00323   protected:
00324     // protected and unimplemented operator==(), to prevent accidental usage
00325     bool operator==(const SCTPInitAckChunk&);
00326 
00327   public:
00328     SCTPInitAckChunk(const char *name=NULL, int kind=0);
00329     SCTPInitAckChunk(const SCTPInitAckChunk& other);
00330     virtual ~SCTPInitAckChunk();
00331     SCTPInitAckChunk& operator=(const SCTPInitAckChunk& other);
00332     virtual SCTPInitAckChunk *dup() const {return new SCTPInitAckChunk(*this);}
00333     virtual void parsimPack(cCommBuffer *b);
00334     virtual void parsimUnpack(cCommBuffer *b);
00335 
00336     // field getter/setter methods
00337     virtual uint32 getInitTag() const;
00338     virtual void setInitTag(uint32 initTag);
00339     virtual uint32 getA_rwnd() const;
00340     virtual void setA_rwnd(uint32 a_rwnd);
00341     virtual uint16 getNoOutStreams() const;
00342     virtual void setNoOutStreams(uint16 noOutStreams);
00343     virtual uint16 getNoInStreams() const;
00344     virtual void setNoInStreams(uint16 noInStreams);
00345     virtual uint32 getInitTSN() const;
00346     virtual void setInitTSN(uint32 initTSN);
00347     virtual bool getForwardTsn() const;
00348     virtual void setForwardTsn(bool forwardTsn);
00349     virtual void setAddressesArraySize(unsigned int size);
00350     virtual unsigned int getAddressesArraySize() const;
00351     virtual IPvXAddress& getAddresses(unsigned int k);
00352     virtual const IPvXAddress& getAddresses(unsigned int k) const {return const_cast<SCTPInitAckChunk*>(this)->getAddresses(k);}
00353     virtual void setAddresses(unsigned int k, const IPvXAddress& addresses);
00354     virtual void setCookieArraySize(unsigned int size);
00355     virtual unsigned int getCookieArraySize() const;
00356     virtual char getCookie(unsigned int k) const;
00357     virtual void setCookie(unsigned int k, char cookie);
00358     virtual void setUnrecognizedParametersArraySize(unsigned int size);
00359     virtual unsigned int getUnrecognizedParametersArraySize() const;
00360     virtual uint8 getUnrecognizedParameters(unsigned int k) const;
00361     virtual void setUnrecognizedParameters(unsigned int k, uint8 unrecognizedParameters);
00362     virtual cPacketPtr& getStateCookie();
00363     virtual const cPacketPtr& getStateCookie() const {return const_cast<SCTPInitAckChunk*>(this)->getStateCookie();}
00364     virtual void setStateCookie(const cPacketPtr& stateCookie);
00365 };
00366 
00367 inline void doPacking(cCommBuffer *b, SCTPInitAckChunk& obj) {obj.parsimPack(b);}
00368 inline void doUnpacking(cCommBuffer *b, SCTPInitAckChunk& obj) {obj.parsimUnpack(b);}
00369 
00381 class SCTPCookieEchoChunk : public ::SCTPChunk
00382 {
00383   protected:
00384     char *cookie_var; // array ptr
00385     unsigned int cookie_arraysize;
00386     cPacketPtr stateCookie_var;
00387     uint8 *unrecognizedParameters_var; // array ptr
00388     unsigned int unrecognizedParameters_arraysize;
00389 
00390   private:
00391     void copy(const SCTPCookieEchoChunk& other);
00392 
00393   protected:
00394     // protected and unimplemented operator==(), to prevent accidental usage
00395     bool operator==(const SCTPCookieEchoChunk&);
00396 
00397   public:
00398     SCTPCookieEchoChunk(const char *name=NULL, int kind=0);
00399     SCTPCookieEchoChunk(const SCTPCookieEchoChunk& other);
00400     virtual ~SCTPCookieEchoChunk();
00401     SCTPCookieEchoChunk& operator=(const SCTPCookieEchoChunk& other);
00402     virtual SCTPCookieEchoChunk *dup() const {return new SCTPCookieEchoChunk(*this);}
00403     virtual void parsimPack(cCommBuffer *b);
00404     virtual void parsimUnpack(cCommBuffer *b);
00405 
00406     // field getter/setter methods
00407     virtual void setCookieArraySize(unsigned int size);
00408     virtual unsigned int getCookieArraySize() const;
00409     virtual char getCookie(unsigned int k) const;
00410     virtual void setCookie(unsigned int k, char cookie);
00411     virtual cPacketPtr& getStateCookie();
00412     virtual const cPacketPtr& getStateCookie() const {return const_cast<SCTPCookieEchoChunk*>(this)->getStateCookie();}
00413     virtual void setStateCookie(const cPacketPtr& stateCookie);
00414     virtual void setUnrecognizedParametersArraySize(unsigned int size);
00415     virtual unsigned int getUnrecognizedParametersArraySize() const;
00416     virtual uint8 getUnrecognizedParameters(unsigned int k) const;
00417     virtual void setUnrecognizedParameters(unsigned int k, uint8 unrecognizedParameters);
00418 };
00419 
00420 inline void doPacking(cCommBuffer *b, SCTPCookieEchoChunk& obj) {obj.parsimPack(b);}
00421 inline void doUnpacking(cCommBuffer *b, SCTPCookieEchoChunk& obj) {obj.parsimUnpack(b);}
00422 
00436 class SCTPCookie : public ::cPacket
00437 {
00438   protected:
00439     simtime_t creationTime_var;
00440     uint32 localTag_var;
00441     uint32 peerTag_var;
00442     uint8 *localTieTag_var; // array ptr
00443     unsigned int localTieTag_arraysize;
00444     uint8 *peerTieTag_var; // array ptr
00445     unsigned int peerTieTag_arraysize;
00446 
00447   private:
00448     void copy(const SCTPCookie& other);
00449 
00450   protected:
00451     // protected and unimplemented operator==(), to prevent accidental usage
00452     bool operator==(const SCTPCookie&);
00453 
00454   public:
00455     SCTPCookie(const char *name=NULL, int kind=0);
00456     SCTPCookie(const SCTPCookie& other);
00457     virtual ~SCTPCookie();
00458     SCTPCookie& operator=(const SCTPCookie& other);
00459     virtual SCTPCookie *dup() const {return new SCTPCookie(*this);}
00460     virtual void parsimPack(cCommBuffer *b);
00461     virtual void parsimUnpack(cCommBuffer *b);
00462 
00463     // field getter/setter methods
00464     virtual simtime_t getCreationTime() const;
00465     virtual void setCreationTime(simtime_t creationTime);
00466     virtual uint32 getLocalTag() const;
00467     virtual void setLocalTag(uint32 localTag);
00468     virtual uint32 getPeerTag() const;
00469     virtual void setPeerTag(uint32 peerTag);
00470     virtual void setLocalTieTagArraySize(unsigned int size);
00471     virtual unsigned int getLocalTieTagArraySize() const;
00472     virtual uint8 getLocalTieTag(unsigned int k) const;
00473     virtual void setLocalTieTag(unsigned int k, uint8 localTieTag);
00474     virtual void setPeerTieTagArraySize(unsigned int size);
00475     virtual unsigned int getPeerTieTagArraySize() const;
00476     virtual uint8 getPeerTieTag(unsigned int k) const;
00477     virtual void setPeerTieTag(unsigned int k, uint8 peerTieTag);
00478 };
00479 
00480 inline void doPacking(cCommBuffer *b, SCTPCookie& obj) {obj.parsimPack(b);}
00481 inline void doUnpacking(cCommBuffer *b, SCTPCookie& obj) {obj.parsimUnpack(b);}
00482 
00491 class SCTPCookieAckChunk : public ::SCTPChunk
00492 {
00493   protected:
00494 
00495   private:
00496     void copy(const SCTPCookieAckChunk& other);
00497 
00498   protected:
00499     // protected and unimplemented operator==(), to prevent accidental usage
00500     bool operator==(const SCTPCookieAckChunk&);
00501 
00502   public:
00503     SCTPCookieAckChunk(const char *name=NULL, int kind=0);
00504     SCTPCookieAckChunk(const SCTPCookieAckChunk& other);
00505     virtual ~SCTPCookieAckChunk();
00506     SCTPCookieAckChunk& operator=(const SCTPCookieAckChunk& other);
00507     virtual SCTPCookieAckChunk *dup() const {return new SCTPCookieAckChunk(*this);}
00508     virtual void parsimPack(cCommBuffer *b);
00509     virtual void parsimUnpack(cCommBuffer *b);
00510 
00511     // field getter/setter methods
00512 };
00513 
00514 inline void doPacking(cCommBuffer *b, SCTPCookieAckChunk& obj) {obj.parsimPack(b);}
00515 inline void doUnpacking(cCommBuffer *b, SCTPCookieAckChunk& obj) {obj.parsimUnpack(b);}
00516 
00538 class SCTPDataMsg : public ::cPacket
00539 {
00540   protected:
00541     bool eBit_var;
00542     bool bBit_var;
00543     simtime_t enqueuingTime_var;
00544     simtime_t expiryTime_var;
00545     uint32 ppid_var;
00546     IPvXAddress initialDestination_var;
00547     uint32 msgNum_var;
00548     uint16 sid_var;
00549     bool ordered_var;
00550     uint32 booksize_var;
00551     uint32 rtx_var;
00552     bool fragment_var;
00553 
00554   private:
00555     void copy(const SCTPDataMsg& other);
00556 
00557   protected:
00558     // protected and unimplemented operator==(), to prevent accidental usage
00559     bool operator==(const SCTPDataMsg&);
00560 
00561   public:
00562     SCTPDataMsg(const char *name=NULL, int kind=0);
00563     SCTPDataMsg(const SCTPDataMsg& other);
00564     virtual ~SCTPDataMsg();
00565     SCTPDataMsg& operator=(const SCTPDataMsg& other);
00566     virtual SCTPDataMsg *dup() const {return new SCTPDataMsg(*this);}
00567     virtual void parsimPack(cCommBuffer *b);
00568     virtual void parsimUnpack(cCommBuffer *b);
00569 
00570     // field getter/setter methods
00571     virtual bool getEBit() const;
00572     virtual void setEBit(bool eBit);
00573     virtual bool getBBit() const;
00574     virtual void setBBit(bool bBit);
00575     virtual simtime_t getEnqueuingTime() const;
00576     virtual void setEnqueuingTime(simtime_t enqueuingTime);
00577     virtual simtime_t getExpiryTime() const;
00578     virtual void setExpiryTime(simtime_t expiryTime);
00579     virtual uint32 getPpid() const;
00580     virtual void setPpid(uint32 ppid);
00581     virtual IPvXAddress& getInitialDestination();
00582     virtual const IPvXAddress& getInitialDestination() const {return const_cast<SCTPDataMsg*>(this)->getInitialDestination();}
00583     virtual void setInitialDestination(const IPvXAddress& initialDestination);
00584     virtual uint32 getMsgNum() const;
00585     virtual void setMsgNum(uint32 msgNum);
00586     virtual uint16 getSid() const;
00587     virtual void setSid(uint16 sid);
00588     virtual bool getOrdered() const;
00589     virtual void setOrdered(bool ordered);
00590     virtual uint32 getBooksize() const;
00591     virtual void setBooksize(uint32 booksize);
00592     virtual uint32 getRtx() const;
00593     virtual void setRtx(uint32 rtx);
00594     virtual bool getFragment() const;
00595     virtual void setFragment(bool fragment);
00596 };
00597 
00598 inline void doPacking(cCommBuffer *b, SCTPDataMsg& obj) {obj.parsimPack(b);}
00599 inline void doUnpacking(cCommBuffer *b, SCTPDataMsg& obj) {obj.parsimUnpack(b);}
00600 
00622 class SCTPDataChunk : public ::SCTPChunk
00623 {
00624   protected:
00625     bool eBit_var;
00626     bool bBit_var;
00627     bool uBit_var;
00628     uint32 tsn_var;
00629     uint16 sid_var;
00630     uint16 ssn_var;
00631     uint32 ppid_var;
00632     simtime_t enqueuingTime_var;
00633 
00634   private:
00635     void copy(const SCTPDataChunk& other);
00636 
00637   protected:
00638     // protected and unimplemented operator==(), to prevent accidental usage
00639     bool operator==(const SCTPDataChunk&);
00640 
00641   public:
00642     SCTPDataChunk(const char *name=NULL, int kind=0);
00643     SCTPDataChunk(const SCTPDataChunk& other);
00644     virtual ~SCTPDataChunk();
00645     SCTPDataChunk& operator=(const SCTPDataChunk& other);
00646     virtual SCTPDataChunk *dup() const {return new SCTPDataChunk(*this);}
00647     virtual void parsimPack(cCommBuffer *b);
00648     virtual void parsimUnpack(cCommBuffer *b);
00649 
00650     // field getter/setter methods
00651     virtual bool getEBit() const;
00652     virtual void setEBit(bool eBit);
00653     virtual bool getBBit() const;
00654     virtual void setBBit(bool bBit);
00655     virtual bool getUBit() const;
00656     virtual void setUBit(bool uBit);
00657     virtual uint32 getTsn() const;
00658     virtual void setTsn(uint32 tsn);
00659     virtual uint16 getSid() const;
00660     virtual void setSid(uint16 sid);
00661     virtual uint16 getSsn() const;
00662     virtual void setSsn(uint16 ssn);
00663     virtual uint32 getPpid() const;
00664     virtual void setPpid(uint32 ppid);
00665     virtual simtime_t getEnqueuingTime() const;
00666     virtual void setEnqueuingTime(simtime_t enqueuingTime);
00667 };
00668 
00669 inline void doPacking(cCommBuffer *b, SCTPDataChunk& obj) {obj.parsimPack(b);}
00670 inline void doUnpacking(cCommBuffer *b, SCTPDataChunk& obj) {obj.parsimUnpack(b);}
00671 
00683 class SCTPForwardTsnChunk : public ::SCTPChunk
00684 {
00685   protected:
00686     uint32 newCumTsn_var;
00687     uint16 *sid_var; // array ptr
00688     unsigned int sid_arraysize;
00689     short *ssn_var; // array ptr
00690     unsigned int ssn_arraysize;
00691 
00692   private:
00693     void copy(const SCTPForwardTsnChunk& other);
00694 
00695   protected:
00696     // protected and unimplemented operator==(), to prevent accidental usage
00697     bool operator==(const SCTPForwardTsnChunk&);
00698 
00699   public:
00700     SCTPForwardTsnChunk(const char *name=NULL, int kind=0);
00701     SCTPForwardTsnChunk(const SCTPForwardTsnChunk& other);
00702     virtual ~SCTPForwardTsnChunk();
00703     SCTPForwardTsnChunk& operator=(const SCTPForwardTsnChunk& other);
00704     virtual SCTPForwardTsnChunk *dup() const {return new SCTPForwardTsnChunk(*this);}
00705     virtual void parsimPack(cCommBuffer *b);
00706     virtual void parsimUnpack(cCommBuffer *b);
00707 
00708     // field getter/setter methods
00709     virtual uint32 getNewCumTsn() const;
00710     virtual void setNewCumTsn(uint32 newCumTsn);
00711     virtual void setSidArraySize(unsigned int size);
00712     virtual unsigned int getSidArraySize() const;
00713     virtual uint16 getSid(unsigned int k) const;
00714     virtual void setSid(unsigned int k, uint16 sid);
00715     virtual void setSsnArraySize(unsigned int size);
00716     virtual unsigned int getSsnArraySize() const;
00717     virtual short getSsn(unsigned int k) const;
00718     virtual void setSsn(unsigned int k, short ssn);
00719 };
00720 
00721 inline void doPacking(cCommBuffer *b, SCTPForwardTsnChunk& obj) {obj.parsimPack(b);}
00722 inline void doUnpacking(cCommBuffer *b, SCTPForwardTsnChunk& obj) {obj.parsimUnpack(b);}
00723 
00745 class SCTPSackChunk : public ::SCTPChunk
00746 {
00747   protected:
00748     uint32 cumTsnAck_var;
00749     uint32 a_rwnd_var;
00750     uint16 numGaps_var;
00751     uint16 numDupTsns_var;
00752     uint32 *gapStart_var; // array ptr
00753     unsigned int gapStart_arraysize;
00754     uint32 *gapStop_var; // array ptr
00755     unsigned int gapStop_arraysize;
00756     uint32 *dupTsns_var; // array ptr
00757     unsigned int dupTsns_arraysize;
00758     uint32 sackSeqNum_var;
00759 
00760   private:
00761     void copy(const SCTPSackChunk& other);
00762 
00763   protected:
00764     // protected and unimplemented operator==(), to prevent accidental usage
00765     bool operator==(const SCTPSackChunk&);
00766 
00767   public:
00768     SCTPSackChunk(const char *name=NULL, int kind=0);
00769     SCTPSackChunk(const SCTPSackChunk& other);
00770     virtual ~SCTPSackChunk();
00771     SCTPSackChunk& operator=(const SCTPSackChunk& other);
00772     virtual SCTPSackChunk *dup() const {return new SCTPSackChunk(*this);}
00773     virtual void parsimPack(cCommBuffer *b);
00774     virtual void parsimUnpack(cCommBuffer *b);
00775 
00776     // field getter/setter methods
00777     virtual uint32 getCumTsnAck() const;
00778     virtual void setCumTsnAck(uint32 cumTsnAck);
00779     virtual uint32 getA_rwnd() const;
00780     virtual void setA_rwnd(uint32 a_rwnd);
00781     virtual uint16 getNumGaps() const;
00782     virtual void setNumGaps(uint16 numGaps);
00783     virtual uint16 getNumDupTsns() const;
00784     virtual void setNumDupTsns(uint16 numDupTsns);
00785     virtual void setGapStartArraySize(unsigned int size);
00786     virtual unsigned int getGapStartArraySize() const;
00787     virtual uint32 getGapStart(unsigned int k) const;
00788     virtual void setGapStart(unsigned int k, uint32 gapStart);
00789     virtual void setGapStopArraySize(unsigned int size);
00790     virtual unsigned int getGapStopArraySize() const;
00791     virtual uint32 getGapStop(unsigned int k) const;
00792     virtual void setGapStop(unsigned int k, uint32 gapStop);
00793     virtual void setDupTsnsArraySize(unsigned int size);
00794     virtual unsigned int getDupTsnsArraySize() const;
00795     virtual uint32 getDupTsns(unsigned int k) const;
00796     virtual void setDupTsns(unsigned int k, uint32 dupTsns);
00797     virtual uint32 getSackSeqNum() const;
00798     virtual void setSackSeqNum(uint32 sackSeqNum);
00799 };
00800 
00801 inline void doPacking(cCommBuffer *b, SCTPSackChunk& obj) {obj.parsimPack(b);}
00802 inline void doUnpacking(cCommBuffer *b, SCTPSackChunk& obj) {obj.parsimUnpack(b);}
00803 
00814 class SCTPAbortChunk : public ::SCTPChunk
00815 {
00816   protected:
00817     bool T_Bit_var;
00818 
00819   private:
00820     void copy(const SCTPAbortChunk& other);
00821 
00822   protected:
00823     // protected and unimplemented operator==(), to prevent accidental usage
00824     bool operator==(const SCTPAbortChunk&);
00825 
00826   public:
00827     SCTPAbortChunk(const char *name=NULL, int kind=0);
00828     SCTPAbortChunk(const SCTPAbortChunk& other);
00829     virtual ~SCTPAbortChunk();
00830     SCTPAbortChunk& operator=(const SCTPAbortChunk& other);
00831     virtual SCTPAbortChunk *dup() const {return new SCTPAbortChunk(*this);}
00832     virtual void parsimPack(cCommBuffer *b);
00833     virtual void parsimUnpack(cCommBuffer *b);
00834 
00835     // field getter/setter methods
00836     virtual bool getT_Bit() const;
00837     virtual void setT_Bit(bool T_Bit);
00838 };
00839 
00840 inline void doPacking(cCommBuffer *b, SCTPAbortChunk& obj) {obj.parsimPack(b);}
00841 inline void doUnpacking(cCommBuffer *b, SCTPAbortChunk& obj) {obj.parsimUnpack(b);}
00842 
00854 class SCTPHeartbeatChunk : public ::SCTPChunk
00855 {
00856   protected:
00857     IPvXAddress remoteAddr_var;
00858     simtime_t timeField_var;
00859     char *info_var; // array ptr
00860     unsigned int info_arraysize;
00861 
00862   private:
00863     void copy(const SCTPHeartbeatChunk& other);
00864 
00865   protected:
00866     // protected and unimplemented operator==(), to prevent accidental usage
00867     bool operator==(const SCTPHeartbeatChunk&);
00868 
00869   public:
00870     SCTPHeartbeatChunk(const char *name=NULL, int kind=0);
00871     SCTPHeartbeatChunk(const SCTPHeartbeatChunk& other);
00872     virtual ~SCTPHeartbeatChunk();
00873     SCTPHeartbeatChunk& operator=(const SCTPHeartbeatChunk& other);
00874     virtual SCTPHeartbeatChunk *dup() const {return new SCTPHeartbeatChunk(*this);}
00875     virtual void parsimPack(cCommBuffer *b);
00876     virtual void parsimUnpack(cCommBuffer *b);
00877 
00878     // field getter/setter methods
00879     virtual IPvXAddress& getRemoteAddr();
00880     virtual const IPvXAddress& getRemoteAddr() const {return const_cast<SCTPHeartbeatChunk*>(this)->getRemoteAddr();}
00881     virtual void setRemoteAddr(const IPvXAddress& remoteAddr);
00882     virtual simtime_t getTimeField() const;
00883     virtual void setTimeField(simtime_t timeField);
00884     virtual void setInfoArraySize(unsigned int size);
00885     virtual unsigned int getInfoArraySize() const;
00886     virtual char getInfo(unsigned int k) const;
00887     virtual void setInfo(unsigned int k, char info);
00888 };
00889 
00890 inline void doPacking(cCommBuffer *b, SCTPHeartbeatChunk& obj) {obj.parsimPack(b);}
00891 inline void doUnpacking(cCommBuffer *b, SCTPHeartbeatChunk& obj) {obj.parsimUnpack(b);}
00892 
00904 class SCTPHeartbeatAckChunk : public ::SCTPChunk
00905 {
00906   protected:
00907     IPvXAddress remoteAddr_var;
00908     simtime_t timeField_var;
00909     char *info_var; // array ptr
00910     unsigned int info_arraysize;
00911 
00912   private:
00913     void copy(const SCTPHeartbeatAckChunk& other);
00914 
00915   protected:
00916     // protected and unimplemented operator==(), to prevent accidental usage
00917     bool operator==(const SCTPHeartbeatAckChunk&);
00918 
00919   public:
00920     SCTPHeartbeatAckChunk(const char *name=NULL, int kind=0);
00921     SCTPHeartbeatAckChunk(const SCTPHeartbeatAckChunk& other);
00922     virtual ~SCTPHeartbeatAckChunk();
00923     SCTPHeartbeatAckChunk& operator=(const SCTPHeartbeatAckChunk& other);
00924     virtual SCTPHeartbeatAckChunk *dup() const {return new SCTPHeartbeatAckChunk(*this);}
00925     virtual void parsimPack(cCommBuffer *b);
00926     virtual void parsimUnpack(cCommBuffer *b);
00927 
00928     // field getter/setter methods
00929     virtual IPvXAddress& getRemoteAddr();
00930     virtual const IPvXAddress& getRemoteAddr() const {return const_cast<SCTPHeartbeatAckChunk*>(this)->getRemoteAddr();}
00931     virtual void setRemoteAddr(const IPvXAddress& remoteAddr);
00932     virtual simtime_t getTimeField() const;
00933     virtual void setTimeField(simtime_t timeField);
00934     virtual void setInfoArraySize(unsigned int size);
00935     virtual unsigned int getInfoArraySize() const;
00936     virtual char getInfo(unsigned int k) const;
00937     virtual void setInfo(unsigned int k, char info);
00938 };
00939 
00940 inline void doPacking(cCommBuffer *b, SCTPHeartbeatAckChunk& obj) {obj.parsimPack(b);}
00941 inline void doUnpacking(cCommBuffer *b, SCTPHeartbeatAckChunk& obj) {obj.parsimUnpack(b);}
00942 
00952 class SCTPShutdownChunk : public ::SCTPChunk
00953 {
00954   protected:
00955     uint32 cumTsnAck_var;
00956 
00957   private:
00958     void copy(const SCTPShutdownChunk& other);
00959 
00960   protected:
00961     // protected and unimplemented operator==(), to prevent accidental usage
00962     bool operator==(const SCTPShutdownChunk&);
00963 
00964   public:
00965     SCTPShutdownChunk(const char *name=NULL, int kind=0);
00966     SCTPShutdownChunk(const SCTPShutdownChunk& other);
00967     virtual ~SCTPShutdownChunk();
00968     SCTPShutdownChunk& operator=(const SCTPShutdownChunk& other);
00969     virtual SCTPShutdownChunk *dup() const {return new SCTPShutdownChunk(*this);}
00970     virtual void parsimPack(cCommBuffer *b);
00971     virtual void parsimUnpack(cCommBuffer *b);
00972 
00973     // field getter/setter methods
00974     virtual uint32 getCumTsnAck() const;
00975     virtual void setCumTsnAck(uint32 cumTsnAck);
00976 };
00977 
00978 inline void doPacking(cCommBuffer *b, SCTPShutdownChunk& obj) {obj.parsimPack(b);}
00979 inline void doUnpacking(cCommBuffer *b, SCTPShutdownChunk& obj) {obj.parsimUnpack(b);}
00980 
00989 class SCTPShutdownAckChunk : public ::SCTPChunk
00990 {
00991   protected:
00992 
00993   private:
00994     void copy(const SCTPShutdownAckChunk& other);
00995 
00996   protected:
00997     // protected and unimplemented operator==(), to prevent accidental usage
00998     bool operator==(const SCTPShutdownAckChunk&);
00999 
01000   public:
01001     SCTPShutdownAckChunk(const char *name=NULL, int kind=0);
01002     SCTPShutdownAckChunk(const SCTPShutdownAckChunk& other);
01003     virtual ~SCTPShutdownAckChunk();
01004     SCTPShutdownAckChunk& operator=(const SCTPShutdownAckChunk& other);
01005     virtual SCTPShutdownAckChunk *dup() const {return new SCTPShutdownAckChunk(*this);}
01006     virtual void parsimPack(cCommBuffer *b);
01007     virtual void parsimUnpack(cCommBuffer *b);
01008 
01009     // field getter/setter methods
01010 };
01011 
01012 inline void doPacking(cCommBuffer *b, SCTPShutdownAckChunk& obj) {obj.parsimPack(b);}
01013 inline void doUnpacking(cCommBuffer *b, SCTPShutdownAckChunk& obj) {obj.parsimUnpack(b);}
01014 
01024 class SCTPShutdownCompleteChunk : public ::SCTPChunk
01025 {
01026   protected:
01027     bool TBit_var;
01028 
01029   private:
01030     void copy(const SCTPShutdownCompleteChunk& other);
01031 
01032   protected:
01033     // protected and unimplemented operator==(), to prevent accidental usage
01034     bool operator==(const SCTPShutdownCompleteChunk&);
01035 
01036   public:
01037     SCTPShutdownCompleteChunk(const char *name=NULL, int kind=0);
01038     SCTPShutdownCompleteChunk(const SCTPShutdownCompleteChunk& other);
01039     virtual ~SCTPShutdownCompleteChunk();
01040     SCTPShutdownCompleteChunk& operator=(const SCTPShutdownCompleteChunk& other);
01041     virtual SCTPShutdownCompleteChunk *dup() const {return new SCTPShutdownCompleteChunk(*this);}
01042     virtual void parsimPack(cCommBuffer *b);
01043     virtual void parsimUnpack(cCommBuffer *b);
01044 
01045     // field getter/setter methods
01046     virtual bool getTBit() const;
01047     virtual void setTBit(bool TBit);
01048 };
01049 
01050 inline void doPacking(cCommBuffer *b, SCTPShutdownCompleteChunk& obj) {obj.parsimPack(b);}
01051 inline void doUnpacking(cCommBuffer *b, SCTPShutdownCompleteChunk& obj) {obj.parsimUnpack(b);}
01052 
01089 class SCTPErrorChunk_Base : public ::SCTPChunk
01090 {
01091   protected:
01092     bool TBit_var;
01093     bool MBit_var;
01094 
01095   private:
01096     void copy(const SCTPErrorChunk_Base& other);
01097 
01098   protected:
01099     // protected and unimplemented operator==(), to prevent accidental usage
01100     bool operator==(const SCTPErrorChunk_Base&);
01101     // make constructors protected to avoid instantiation
01102     SCTPErrorChunk_Base(const char *name=NULL, int kind=0);
01103     SCTPErrorChunk_Base(const SCTPErrorChunk_Base& other);
01104     // make assignment operator protected to force the user override it
01105     SCTPErrorChunk_Base& operator=(const SCTPErrorChunk_Base& other);
01106 
01107   public:
01108     virtual ~SCTPErrorChunk_Base();
01109     virtual SCTPErrorChunk_Base *dup() const {throw cRuntimeError("You forgot to manually add a dup() function to class SCTPErrorChunk");}
01110     virtual void parsimPack(cCommBuffer *b);
01111     virtual void parsimUnpack(cCommBuffer *b);
01112 
01113     // field getter/setter methods
01114     virtual bool getTBit() const;
01115     virtual void setTBit(bool TBit);
01116     virtual bool getMBit() const;
01117     virtual void setMBit(bool MBit);
01118     virtual void setParametersArraySize(unsigned int size) = 0;
01119     virtual unsigned int getParametersArraySize() const = 0;
01120     virtual cPacketPtr& getParameters(unsigned int k) = 0;
01121     virtual const cPacketPtr& getParameters(unsigned int k) const {return const_cast<SCTPErrorChunk_Base*>(this)->getParameters(k);}
01122     virtual void setParameters(unsigned int k, const cPacketPtr& parameters) = 0;
01123 };
01124 
01134 class SCTPParameter : public ::cPacket
01135 {
01136   protected:
01137     uint16 parameterType_var;
01138 
01139   private:
01140     void copy(const SCTPParameter& other);
01141 
01142   protected:
01143     // protected and unimplemented operator==(), to prevent accidental usage
01144     bool operator==(const SCTPParameter&);
01145 
01146   public:
01147     SCTPParameter(const char *name=NULL, int kind=0);
01148     SCTPParameter(const SCTPParameter& other);
01149     virtual ~SCTPParameter();
01150     SCTPParameter& operator=(const SCTPParameter& other);
01151     virtual SCTPParameter *dup() const {return new SCTPParameter(*this);}
01152     virtual void parsimPack(cCommBuffer *b);
01153     virtual void parsimUnpack(cCommBuffer *b);
01154 
01155     // field getter/setter methods
01156     virtual uint16 getParameterType() const;
01157     virtual void setParameterType(uint16 parameterType);
01158 };
01159 
01160 inline void doPacking(cCommBuffer *b, SCTPParameter& obj) {obj.parsimPack(b);}
01161 inline void doUnpacking(cCommBuffer *b, SCTPParameter& obj) {obj.parsimUnpack(b);}
01162 
01163 
01164 #endif // _SCTPMESSAGE_M_H_