00001
00002
00003
00004
00005 #ifndef _PASTRYMESSAGE_M_H_
00006 #define _PASTRYMESSAGE_M_H_
00007
00008 #include <omnetpp.h>
00009
00010
00011 #define MSGC_VERSION 0x0401
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
00017 #include <IPvXAddress.h>
00018 #include <NodeHandle.h>
00019 #include <OverlayKey.h>
00020 #include <CommonMessages_m.h>
00021
00022
00023 static const int PASTRYTYPE_L = 8;
00024 static const int PASTRYSTATETYPE_L = 8;
00025 static const int PASTRYREQUESTTYPE_L = 0;
00026 static const int LASTHOPFLAG_L = 8;
00027 static const int TIMESTAMP_L = 32;
00028 static const int PASTRYFINDNODEEXTDATA_L = NODEHANDLE_L + HOPCOUNT_L;
00029
00030 #define PASTRY_L(msg) (BASEOVERLAY_L(msg) + PASTRYTYPE_L)
00031 #define PASTRYJOIN_L(msg) (PASTRY_L(msg) + TRANSPORTADDRESS_L + HOPCOUNT_L)
00032 #define PASTRYREQ_L(msg) (PASTRY_L(msg) + TRANSPORTADDRESS_L + PASTRYREQUESTTYPE_L)
00033 #define PASTRYSTATE_L(msg) (PASTRY_L(msg) + TRANSPORTADDRESS_L \
00034 + NODEHANDLE_L * \
00035 (msg->getRoutingTableArraySize() + msg->getLeafSetArraySize() \
00036 + msg->getNeighborhoodSetArraySize()) + ARRAYSIZE_L + HOPCOUNT_L + \
00037 LASTHOPFLAG_L + TIMESTAMP_L)
00038 #define PASTRYNEWLEAFS_L(msg) (msg->getLeafsArraySize() * NODEHANDLE_L + \
00039 ARRAYSIZE_L)
00040 #define PASTRYLEAFSET_L(msg) (PASTRY_L(msg) + TRANSPORTADDRESS_L \
00041 + NODEHANDLE_L * msg->getLeafSetArraySize() + ARRAYSIZE_L)
00042 #define PASTRYRTREQ_L(msg) (PASTRY_L(msg) + TRANSPORTADDRESS_L)
00043 #define PASTRYRTABLE_L(msg) (PASTRY_L(msg) + TRANSPORTADDRESS_L \
00044 + NODEHANDLE_L * msg->getRoutingTableArraySize() + ARRAYSIZE_L)
00045
00046
00047
00048
00068 enum PastryMsgType {
00069 PASTRY_MSG_STD = 0,
00070 PASTRY_MSG_JOIN = 1,
00071 PASTRY_MSG_STATE = 2,
00072 PASTRY_MSG_REQ = 3,
00073 PASTRY_MSG_LEAFSET = 4,
00074 PASTRY_MSG_ROWREQ = 5,
00075 PASTRY_MSG_RROW = 6,
00076 PASTRY_MSG_LEAFSET_PULL = 7,
00077 PASTRY_REQ_REPAIR = 8,
00078 PASTRY_REQ_STATE = 9,
00079 PASTRY_REQ_LEAFSET = 10
00080 };
00081
00096 enum PastryStateMsgType {
00097 PASTRY_STATE_STD = 0,
00098 PASTRY_STATE_JOIN = 1,
00099 PASTRY_STATE_MINJOIN = 2,
00100 PASTRY_STATE_UPDATE = 3,
00101 PASTRY_STATE_REPAIR = 4,
00102 PASTRY_STATE_JOINUPDATE = 5
00103 };
00104
00114 class PastryMessage : public ::BaseOverlayMessage
00115 {
00116 protected:
00117 int pastryMsgType_var;
00118
00119
00120 bool operator==(const PastryMessage&);
00121
00122 public:
00123 PastryMessage(const char *name=NULL, int kind=0);
00124 PastryMessage(const PastryMessage& other);
00125 virtual ~PastryMessage();
00126 PastryMessage& operator=(const PastryMessage& other);
00127 virtual PastryMessage *dup() const {return new PastryMessage(*this);}
00128 virtual void parsimPack(cCommBuffer *b);
00129 virtual void parsimUnpack(cCommBuffer *b);
00130
00131
00132 virtual int getPastryMsgType() const;
00133 virtual void setPastryMsgType(int pastryMsgType_var);
00134 };
00135
00136 inline void doPacking(cCommBuffer *b, PastryMessage& obj) {obj.parsimPack(b);}
00137 inline void doUnpacking(cCommBuffer *b, PastryMessage& obj) {obj.parsimUnpack(b);}
00138
00148 class PastryJoinMessage : public ::PastryMessage
00149 {
00150 protected:
00151 ::TransportAddress sendStateTo_var;
00152
00153
00154 bool operator==(const PastryJoinMessage&);
00155
00156 public:
00157 PastryJoinMessage(const char *name=NULL, int kind=0);
00158 PastryJoinMessage(const PastryJoinMessage& other);
00159 virtual ~PastryJoinMessage();
00160 PastryJoinMessage& operator=(const PastryJoinMessage& other);
00161 virtual PastryJoinMessage *dup() const {return new PastryJoinMessage(*this);}
00162 virtual void parsimPack(cCommBuffer *b);
00163 virtual void parsimUnpack(cCommBuffer *b);
00164
00165
00166 virtual TransportAddress& getSendStateTo();
00167 virtual const TransportAddress& getSendStateTo() const {return const_cast<PastryJoinMessage*>(this)->getSendStateTo();}
00168 virtual void setSendStateTo(const TransportAddress& sendStateTo_var);
00169 };
00170
00171 inline void doPacking(cCommBuffer *b, PastryJoinMessage& obj) {obj.parsimPack(b);}
00172 inline void doUnpacking(cCommBuffer *b, PastryJoinMessage& obj) {obj.parsimUnpack(b);}
00173
00190 class PastryStateMessage : public ::PastryMessage
00191 {
00192 protected:
00193 int pastryStateMsgType_var;
00194 ::NodeHandle sender_var;
00195 ::NodeHandle *routingTable_var;
00196 unsigned int routingTable_arraysize;
00197 ::NodeHandle *leafSet_var;
00198 unsigned int leafSet_arraysize;
00199 ::NodeHandle *neighborhoodSet_var;
00200 unsigned int neighborhoodSet_arraysize;
00201 int joinHopCount_var;
00202 bool lastHop_var;
00203 simtime_t timestamp_var;
00204
00205
00206 bool operator==(const PastryStateMessage&);
00207
00208 public:
00209 PastryStateMessage(const char *name=NULL, int kind=0);
00210 PastryStateMessage(const PastryStateMessage& other);
00211 virtual ~PastryStateMessage();
00212 PastryStateMessage& operator=(const PastryStateMessage& other);
00213 virtual PastryStateMessage *dup() const {return new PastryStateMessage(*this);}
00214 virtual void parsimPack(cCommBuffer *b);
00215 virtual void parsimUnpack(cCommBuffer *b);
00216
00217
00218 virtual int getPastryStateMsgType() const;
00219 virtual void setPastryStateMsgType(int pastryStateMsgType_var);
00220 virtual NodeHandle& getSender();
00221 virtual const NodeHandle& getSender() const {return const_cast<PastryStateMessage*>(this)->getSender();}
00222 virtual void setSender(const NodeHandle& sender_var);
00223 virtual void setRoutingTableArraySize(unsigned int size);
00224 virtual unsigned int getRoutingTableArraySize() const;
00225 virtual NodeHandle& getRoutingTable(unsigned int k);
00226 virtual const NodeHandle& getRoutingTable(unsigned int k) const {return const_cast<PastryStateMessage*>(this)->getRoutingTable(k);}
00227 virtual void setRoutingTable(unsigned int k, const NodeHandle& routingTable_var);
00228 virtual void setLeafSetArraySize(unsigned int size);
00229 virtual unsigned int getLeafSetArraySize() const;
00230 virtual NodeHandle& getLeafSet(unsigned int k);
00231 virtual const NodeHandle& getLeafSet(unsigned int k) const {return const_cast<PastryStateMessage*>(this)->getLeafSet(k);}
00232 virtual void setLeafSet(unsigned int k, const NodeHandle& leafSet_var);
00233 virtual void setNeighborhoodSetArraySize(unsigned int size);
00234 virtual unsigned int getNeighborhoodSetArraySize() const;
00235 virtual NodeHandle& getNeighborhoodSet(unsigned int k);
00236 virtual const NodeHandle& getNeighborhoodSet(unsigned int k) const {return const_cast<PastryStateMessage*>(this)->getNeighborhoodSet(k);}
00237 virtual void setNeighborhoodSet(unsigned int k, const NodeHandle& neighborhoodSet_var);
00238 virtual int getJoinHopCount() const;
00239 virtual void setJoinHopCount(int joinHopCount_var);
00240 virtual bool getLastHop() const;
00241 virtual void setLastHop(bool lastHop_var);
00242 virtual simtime_t getTimestamp() const;
00243 virtual void setTimestamp(simtime_t timestamp_var);
00244 };
00245
00246 inline void doPacking(cCommBuffer *b, PastryStateMessage& obj) {obj.parsimPack(b);}
00247 inline void doUnpacking(cCommBuffer *b, PastryStateMessage& obj) {obj.parsimUnpack(b);}
00248
00259 class PastryFindNodeExtData : public ::cPacket
00260 {
00261 protected:
00262 ::TransportAddress sendStateTo_var;
00263 int joinHopCount_var;
00264
00265
00266 bool operator==(const PastryFindNodeExtData&);
00267
00268 public:
00269 PastryFindNodeExtData(const char *name=NULL, int kind=0);
00270 PastryFindNodeExtData(const PastryFindNodeExtData& other);
00271 virtual ~PastryFindNodeExtData();
00272 PastryFindNodeExtData& operator=(const PastryFindNodeExtData& other);
00273 virtual PastryFindNodeExtData *dup() const {return new PastryFindNodeExtData(*this);}
00274 virtual void parsimPack(cCommBuffer *b);
00275 virtual void parsimUnpack(cCommBuffer *b);
00276
00277
00278 virtual TransportAddress& getSendStateTo();
00279 virtual const TransportAddress& getSendStateTo() const {return const_cast<PastryFindNodeExtData*>(this)->getSendStateTo();}
00280 virtual void setSendStateTo(const TransportAddress& sendStateTo_var);
00281 virtual int getJoinHopCount() const;
00282 virtual void setJoinHopCount(int joinHopCount_var);
00283 };
00284
00285 inline void doPacking(cCommBuffer *b, PastryFindNodeExtData& obj) {obj.parsimPack(b);}
00286 inline void doUnpacking(cCommBuffer *b, PastryFindNodeExtData& obj) {obj.parsimUnpack(b);}
00287
00297 class PastryNewLeafsMessage : public ::cPacket
00298 {
00299 protected:
00300 ::NodeHandle *leafs_var;
00301 unsigned int leafs_arraysize;
00302
00303
00304 bool operator==(const PastryNewLeafsMessage&);
00305
00306 public:
00307 PastryNewLeafsMessage(const char *name=NULL, int kind=0);
00308 PastryNewLeafsMessage(const PastryNewLeafsMessage& other);
00309 virtual ~PastryNewLeafsMessage();
00310 PastryNewLeafsMessage& operator=(const PastryNewLeafsMessage& other);
00311 virtual PastryNewLeafsMessage *dup() const {return new PastryNewLeafsMessage(*this);}
00312 virtual void parsimPack(cCommBuffer *b);
00313 virtual void parsimUnpack(cCommBuffer *b);
00314
00315
00316 virtual void setLeafsArraySize(unsigned int size);
00317 virtual unsigned int getLeafsArraySize() const;
00318 virtual NodeHandle& getLeafs(unsigned int k);
00319 virtual const NodeHandle& getLeafs(unsigned int k) const {return const_cast<PastryNewLeafsMessage*>(this)->getLeafs(k);}
00320 virtual void setLeafs(unsigned int k, const NodeHandle& leafs_var);
00321 };
00322
00323 inline void doPacking(cCommBuffer *b, PastryNewLeafsMessage& obj) {obj.parsimPack(b);}
00324 inline void doUnpacking(cCommBuffer *b, PastryNewLeafsMessage& obj) {obj.parsimUnpack(b);}
00325
00335 class PastrySendState : public ::cPacket
00336 {
00337 protected:
00338 ::TransportAddress dest_var;
00339
00340
00341 bool operator==(const PastrySendState&);
00342
00343 public:
00344 PastrySendState(const char *name=NULL, int kind=0);
00345 PastrySendState(const PastrySendState& other);
00346 virtual ~PastrySendState();
00347 PastrySendState& operator=(const PastrySendState& other);
00348 virtual PastrySendState *dup() const {return new PastrySendState(*this);}
00349 virtual void parsimPack(cCommBuffer *b);
00350 virtual void parsimUnpack(cCommBuffer *b);
00351
00352
00353 virtual TransportAddress& getDest();
00354 virtual const TransportAddress& getDest() const {return const_cast<PastrySendState*>(this)->getDest();}
00355 virtual void setDest(const TransportAddress& dest_var);
00356 };
00357
00358 inline void doPacking(cCommBuffer *b, PastrySendState& obj) {obj.parsimPack(b);}
00359 inline void doUnpacking(cCommBuffer *b, PastrySendState& obj) {obj.parsimUnpack(b);}
00360
00373 class PastryLeafsetMessage : public ::PastryMessage
00374 {
00375 protected:
00376 ::NodeHandle sender_var;
00377 ::TransportAddress sendStateTo_var;
00378 ::NodeHandle *leafSet_var;
00379 unsigned int leafSet_arraysize;
00380 simtime_t timestamp_var;
00381
00382
00383 bool operator==(const PastryLeafsetMessage&);
00384
00385 public:
00386 PastryLeafsetMessage(const char *name=NULL, int kind=0);
00387 PastryLeafsetMessage(const PastryLeafsetMessage& other);
00388 virtual ~PastryLeafsetMessage();
00389 PastryLeafsetMessage& operator=(const PastryLeafsetMessage& other);
00390 virtual PastryLeafsetMessage *dup() const {return new PastryLeafsetMessage(*this);}
00391 virtual void parsimPack(cCommBuffer *b);
00392 virtual void parsimUnpack(cCommBuffer *b);
00393
00394
00395 virtual NodeHandle& getSender();
00396 virtual const NodeHandle& getSender() const {return const_cast<PastryLeafsetMessage*>(this)->getSender();}
00397 virtual void setSender(const NodeHandle& sender_var);
00398 virtual TransportAddress& getSendStateTo();
00399 virtual const TransportAddress& getSendStateTo() const {return const_cast<PastryLeafsetMessage*>(this)->getSendStateTo();}
00400 virtual void setSendStateTo(const TransportAddress& sendStateTo_var);
00401 virtual void setLeafSetArraySize(unsigned int size);
00402 virtual unsigned int getLeafSetArraySize() const;
00403 virtual NodeHandle& getLeafSet(unsigned int k);
00404 virtual const NodeHandle& getLeafSet(unsigned int k) const {return const_cast<PastryLeafsetMessage*>(this)->getLeafSet(k);}
00405 virtual void setLeafSet(unsigned int k, const NodeHandle& leafSet_var);
00406 virtual simtime_t getTimestamp() const;
00407 virtual void setTimestamp(simtime_t timestamp_var);
00408 };
00409
00410 inline void doPacking(cCommBuffer *b, PastryLeafsetMessage& obj) {obj.parsimPack(b);}
00411 inline void doUnpacking(cCommBuffer *b, PastryLeafsetMessage& obj) {obj.parsimUnpack(b);}
00412
00424 class PastryRoutingRowRequestMessage : public ::PastryMessage
00425 {
00426 protected:
00427 ::TransportAddress sendStateTo_var;
00428 int row_var;
00429
00430
00431 bool operator==(const PastryRoutingRowRequestMessage&);
00432
00433 public:
00434 PastryRoutingRowRequestMessage(const char *name=NULL, int kind=0);
00435 PastryRoutingRowRequestMessage(const PastryRoutingRowRequestMessage& other);
00436 virtual ~PastryRoutingRowRequestMessage();
00437 PastryRoutingRowRequestMessage& operator=(const PastryRoutingRowRequestMessage& other);
00438 virtual PastryRoutingRowRequestMessage *dup() const {return new PastryRoutingRowRequestMessage(*this);}
00439 virtual void parsimPack(cCommBuffer *b);
00440 virtual void parsimUnpack(cCommBuffer *b);
00441
00442
00443 virtual TransportAddress& getSendStateTo();
00444 virtual const TransportAddress& getSendStateTo() const {return const_cast<PastryRoutingRowRequestMessage*>(this)->getSendStateTo();}
00445 virtual void setSendStateTo(const TransportAddress& sendStateTo_var);
00446 virtual int getRow() const;
00447 virtual void setRow(int row_var);
00448 };
00449
00450 inline void doPacking(cCommBuffer *b, PastryRoutingRowRequestMessage& obj) {obj.parsimPack(b);}
00451 inline void doUnpacking(cCommBuffer *b, PastryRoutingRowRequestMessage& obj) {obj.parsimUnpack(b);}
00452
00465 class PastryRoutingRowMessage : public ::PastryMessage
00466 {
00467 protected:
00468 ::NodeHandle sender_var;
00469 ::NodeHandle *routingTable_var;
00470 unsigned int routingTable_arraysize;
00471 int row_var;
00472 simtime_t timestamp_var;
00473
00474
00475 bool operator==(const PastryRoutingRowMessage&);
00476
00477 public:
00478 PastryRoutingRowMessage(const char *name=NULL, int kind=0);
00479 PastryRoutingRowMessage(const PastryRoutingRowMessage& other);
00480 virtual ~PastryRoutingRowMessage();
00481 PastryRoutingRowMessage& operator=(const PastryRoutingRowMessage& other);
00482 virtual PastryRoutingRowMessage *dup() const {return new PastryRoutingRowMessage(*this);}
00483 virtual void parsimPack(cCommBuffer *b);
00484 virtual void parsimUnpack(cCommBuffer *b);
00485
00486
00487 virtual NodeHandle& getSender();
00488 virtual const NodeHandle& getSender() const {return const_cast<PastryRoutingRowMessage*>(this)->getSender();}
00489 virtual void setSender(const NodeHandle& sender_var);
00490 virtual void setRoutingTableArraySize(unsigned int size);
00491 virtual unsigned int getRoutingTableArraySize() const;
00492 virtual NodeHandle& getRoutingTable(unsigned int k);
00493 virtual const NodeHandle& getRoutingTable(unsigned int k) const {return const_cast<PastryRoutingRowMessage*>(this)->getRoutingTable(k);}
00494 virtual void setRoutingTable(unsigned int k, const NodeHandle& routingTable_var);
00495 virtual int getRow() const;
00496 virtual void setRow(int row_var);
00497 virtual simtime_t getTimestamp() const;
00498 virtual void setTimestamp(simtime_t timestamp_var);
00499 };
00500
00501 inline void doPacking(cCommBuffer *b, PastryRoutingRowMessage& obj) {obj.parsimPack(b);}
00502 inline void doUnpacking(cCommBuffer *b, PastryRoutingRowMessage& obj) {obj.parsimUnpack(b);}
00503
00514 class PastryRequestMessage : public ::PastryMessage
00515 {
00516 protected:
00517 ::TransportAddress sendStateTo_var;
00518 int pastryReqType_var;
00519
00520
00521 bool operator==(const PastryRequestMessage&);
00522
00523 public:
00524 PastryRequestMessage(const char *name=NULL, int kind=0);
00525 PastryRequestMessage(const PastryRequestMessage& other);
00526 virtual ~PastryRequestMessage();
00527 PastryRequestMessage& operator=(const PastryRequestMessage& other);
00528 virtual PastryRequestMessage *dup() const {return new PastryRequestMessage(*this);}
00529 virtual void parsimPack(cCommBuffer *b);
00530 virtual void parsimUnpack(cCommBuffer *b);
00531
00532
00533 virtual TransportAddress& getSendStateTo();
00534 virtual const TransportAddress& getSendStateTo() const {return const_cast<PastryRequestMessage*>(this)->getSendStateTo();}
00535 virtual void setSendStateTo(const TransportAddress& sendStateTo_var);
00536 virtual int getPastryReqType() const;
00537 virtual void setPastryReqType(int pastryReqType_var);
00538 };
00539
00540 inline void doPacking(cCommBuffer *b, PastryRequestMessage& obj) {obj.parsimPack(b);}
00541 inline void doUnpacking(cCommBuffer *b, PastryRequestMessage& obj) {obj.parsimUnpack(b);}
00542
00543
00544 #endif // _PASTRYMESSAGE_M_H_