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 0x0400
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
00018 #include <IPvXAddress.h>
00019 #include <NodeHandle.h>
00020 #include <OverlayKey.h>
00021 #include <CommonMessages_m.h>
00022
00023
00024 static const int PASTRYTYPE_L = 8;
00025 static const int PASTRYSTATETYPE_L = 8;
00026 static const int PASTRYREQUESTTYPE_L = 0;
00027 static const int SIZEOF_INT = 32;
00028
00029 #define TRANSPORTADDRESS_L (IPADDR_L + UDPPORT_L)
00030
00031 #define PASTRY_L(msg) (BASEOVERLAY_L(msg) + PASTRYTYPE_L)
00032 #define PASTRYJOIN_L(msg) (PASTRY_L(msg) + TRANSPORTADDRESS_L + SIZEOF_INT)
00033 #define PASTRYREQ_L(msg) (PASTRY_L(msg) + TRANSPORTADDRESS_L + PASTRYREQUESTTYPE_L)
00034 #define PASTRYSTATE_L(msg) (PASTRY_L(msg) + TRANSPORTADDRESS_L \
00035 + NODEHANDLE_L * \
00036 (msg->getRoutingTableArraySize() + msg->getLeafSetArraySize() \
00037 + msg->getNeighborhoodSetArraySize()) + 8 * SIZEOF_INT + \
00038 8 * sizeof(bool) + 8 * sizeof(simtime_t))
00039 static const int PASTRYFINDNODEEXTDATA_L = NODEHANDLE_L + 8 * SIZEOF_INT;
00040 #define PASTRYNEWLEAFS_L(msg) (msg->getLeafsArraySize() * NODEHANDLE_L)
00041
00042 #define PASTRYLEAFSET_L(msg) (PASTRY_L(msg) + TRANSPORTADDRESS_L \
00043 + NODEHANDLE_L * \
00044 msg->getLeafSetArraySize())
00045 #define PASTRYRTREQ_L(msg) (PASTRY_L(msg) + TRANSPORTADDRESS_L)
00046 #define PASTRYRTABLE_L(msg) (PASTRY_L(msg) + TRANSPORTADDRESS_L \
00047 + NODEHANDLE_L * \
00048 msg->getRoutingTableArraySize())
00049
00050
00051
00052
00053
00074 enum PastryMsgType {
00075 PASTRY_MSG_STD = 0,
00076 PASTRY_MSG_JOIN = 1,
00077 PASTRY_MSG_STATE = 2,
00078 PASTRY_MSG_REQ = 3,
00079 PASTRY_MSG_LEAFSET = 4,
00080 PASTRY_MSG_ROWREQ = 5,
00081 PASTRY_MSG_RROW = 6,
00082 PASTRY_MSG_LEAFSET_PULL = 7,
00083 PASTRY_REQ_REPAIR = 8,
00084 PASTRY_REQ_STATE = 9,
00085 PASTRY_REQ_LEAFSET = 10
00086 };
00087
00102 enum PastryStateMsgType {
00103 PASTRY_STATE_STD = 0,
00104 PASTRY_STATE_JOIN = 1,
00105 PASTRY_STATE_UPDATE = 2,
00106 PASTRY_STATE_REPAIR = 3,
00107 PASTRY_STATE_JOINUPDATE = 4
00108 };
00109
00119 class PastryMessage : public BaseOverlayMessage
00120 {
00121 protected:
00122 int pastryMsgType_var;
00123
00124
00125 bool operator==(const PastryMessage&);
00126
00127 public:
00128 PastryMessage(const char *name=NULL, int kind=0);
00129 PastryMessage(const PastryMessage& other);
00130 virtual ~PastryMessage();
00131 PastryMessage& operator=(const PastryMessage& other);
00132 virtual PastryMessage *dup() const {return new PastryMessage(*this);}
00133 virtual void parsimPack(cCommBuffer *b);
00134 virtual void parsimUnpack(cCommBuffer *b);
00135
00136
00137 virtual int getPastryMsgType() const;
00138 virtual void setPastryMsgType(int pastryMsgType_var);
00139 };
00140
00141 inline void doPacking(cCommBuffer *b, PastryMessage& obj) {obj.parsimPack(b);}
00142 inline void doUnpacking(cCommBuffer *b, PastryMessage& obj) {obj.parsimUnpack(b);}
00143
00154 class PastryJoinMessage : public PastryMessage
00155 {
00156 protected:
00157 TransportAddress sendStateTo_var;
00158
00159
00160 bool operator==(const PastryJoinMessage&);
00161
00162 public:
00163 PastryJoinMessage(const char *name=NULL, int kind=0);
00164 PastryJoinMessage(const PastryJoinMessage& other);
00165 virtual ~PastryJoinMessage();
00166 PastryJoinMessage& operator=(const PastryJoinMessage& other);
00167 virtual PastryJoinMessage *dup() const {return new PastryJoinMessage(*this);}
00168 virtual void parsimPack(cCommBuffer *b);
00169 virtual void parsimUnpack(cCommBuffer *b);
00170
00171
00172 virtual TransportAddress& getSendStateTo();
00173 virtual const TransportAddress& getSendStateTo() const {return const_cast<PastryJoinMessage*>(this)->getSendStateTo();}
00174 virtual void setSendStateTo(const TransportAddress& sendStateTo_var);
00175 };
00176
00177 inline void doPacking(cCommBuffer *b, PastryJoinMessage& obj) {obj.parsimPack(b);}
00178 inline void doUnpacking(cCommBuffer *b, PastryJoinMessage& obj) {obj.parsimUnpack(b);}
00179
00196 class PastryStateMessage : public PastryMessage
00197 {
00198 protected:
00199 int pastryStateMsgType_var;
00200 NodeHandle sender_var;
00201 NodeHandle *routingTable_var;
00202 unsigned int routingTable_arraysize;
00203 NodeHandle *leafSet_var;
00204 unsigned int leafSet_arraysize;
00205 NodeHandle *neighborhoodSet_var;
00206 unsigned int neighborhoodSet_arraysize;
00207 int joinHopCount_var;
00208 bool lastHop_var;
00209 simtime_t timestamp_var;
00210
00211
00212 bool operator==(const PastryStateMessage&);
00213
00214 public:
00215 PastryStateMessage(const char *name=NULL, int kind=0);
00216 PastryStateMessage(const PastryStateMessage& other);
00217 virtual ~PastryStateMessage();
00218 PastryStateMessage& operator=(const PastryStateMessage& other);
00219 virtual PastryStateMessage *dup() const {return new PastryStateMessage(*this);}
00220 virtual void parsimPack(cCommBuffer *b);
00221 virtual void parsimUnpack(cCommBuffer *b);
00222
00223
00224 virtual int getPastryStateMsgType() const;
00225 virtual void setPastryStateMsgType(int pastryStateMsgType_var);
00226 virtual NodeHandle& getSender();
00227 virtual const NodeHandle& getSender() const {return const_cast<PastryStateMessage*>(this)->getSender();}
00228 virtual void setSender(const NodeHandle& sender_var);
00229 virtual void setRoutingTableArraySize(unsigned int size);
00230 virtual unsigned int getRoutingTableArraySize() const;
00231 virtual NodeHandle& getRoutingTable(unsigned int k);
00232 virtual const NodeHandle& getRoutingTable(unsigned int k) const {return const_cast<PastryStateMessage*>(this)->getRoutingTable(k);}
00233 virtual void setRoutingTable(unsigned int k, const NodeHandle& routingTable_var);
00234 virtual void setLeafSetArraySize(unsigned int size);
00235 virtual unsigned int getLeafSetArraySize() const;
00236 virtual NodeHandle& getLeafSet(unsigned int k);
00237 virtual const NodeHandle& getLeafSet(unsigned int k) const {return const_cast<PastryStateMessage*>(this)->getLeafSet(k);}
00238 virtual void setLeafSet(unsigned int k, const NodeHandle& leafSet_var);
00239 virtual void setNeighborhoodSetArraySize(unsigned int size);
00240 virtual unsigned int getNeighborhoodSetArraySize() const;
00241 virtual NodeHandle& getNeighborhoodSet(unsigned int k);
00242 virtual const NodeHandle& getNeighborhoodSet(unsigned int k) const {return const_cast<PastryStateMessage*>(this)->getNeighborhoodSet(k);}
00243 virtual void setNeighborhoodSet(unsigned int k, const NodeHandle& neighborhoodSet_var);
00244 virtual int getJoinHopCount() const;
00245 virtual void setJoinHopCount(int joinHopCount_var);
00246 virtual bool getLastHop() const;
00247 virtual void setLastHop(bool lastHop_var);
00248 virtual simtime_t getTimestamp() const;
00249 virtual void setTimestamp(simtime_t timestamp_var);
00250 };
00251
00252 inline void doPacking(cCommBuffer *b, PastryStateMessage& obj) {obj.parsimPack(b);}
00253 inline void doUnpacking(cCommBuffer *b, PastryStateMessage& obj) {obj.parsimUnpack(b);}
00254
00265 class PastryFindNodeExtData : public cPacket
00266 {
00267 protected:
00268 TransportAddress sendStateTo_var;
00269 int joinHopCount_var;
00270
00271
00272 bool operator==(const PastryFindNodeExtData&);
00273
00274 public:
00275 PastryFindNodeExtData(const char *name=NULL, int kind=0);
00276 PastryFindNodeExtData(const PastryFindNodeExtData& other);
00277 virtual ~PastryFindNodeExtData();
00278 PastryFindNodeExtData& operator=(const PastryFindNodeExtData& other);
00279 virtual PastryFindNodeExtData *dup() const {return new PastryFindNodeExtData(*this);}
00280 virtual void parsimPack(cCommBuffer *b);
00281 virtual void parsimUnpack(cCommBuffer *b);
00282
00283
00284 virtual TransportAddress& getSendStateTo();
00285 virtual const TransportAddress& getSendStateTo() const {return const_cast<PastryFindNodeExtData*>(this)->getSendStateTo();}
00286 virtual void setSendStateTo(const TransportAddress& sendStateTo_var);
00287 virtual int getJoinHopCount() const;
00288 virtual void setJoinHopCount(int joinHopCount_var);
00289 };
00290
00291 inline void doPacking(cCommBuffer *b, PastryFindNodeExtData& obj) {obj.parsimPack(b);}
00292 inline void doUnpacking(cCommBuffer *b, PastryFindNodeExtData& obj) {obj.parsimUnpack(b);}
00293
00303 class PastryNewLeafsMessage : public cPacket
00304 {
00305 protected:
00306 NodeHandle *leafs_var;
00307 unsigned int leafs_arraysize;
00308
00309
00310 bool operator==(const PastryNewLeafsMessage&);
00311
00312 public:
00313 PastryNewLeafsMessage(const char *name=NULL, int kind=0);
00314 PastryNewLeafsMessage(const PastryNewLeafsMessage& other);
00315 virtual ~PastryNewLeafsMessage();
00316 PastryNewLeafsMessage& operator=(const PastryNewLeafsMessage& other);
00317 virtual PastryNewLeafsMessage *dup() const {return new PastryNewLeafsMessage(*this);}
00318 virtual void parsimPack(cCommBuffer *b);
00319 virtual void parsimUnpack(cCommBuffer *b);
00320
00321
00322 virtual void setLeafsArraySize(unsigned int size);
00323 virtual unsigned int getLeafsArraySize() const;
00324 virtual NodeHandle& getLeafs(unsigned int k);
00325 virtual const NodeHandle& getLeafs(unsigned int k) const {return const_cast<PastryNewLeafsMessage*>(this)->getLeafs(k);}
00326 virtual void setLeafs(unsigned int k, const NodeHandle& leafs_var);
00327 };
00328
00329 inline void doPacking(cCommBuffer *b, PastryNewLeafsMessage& obj) {obj.parsimPack(b);}
00330 inline void doUnpacking(cCommBuffer *b, PastryNewLeafsMessage& obj) {obj.parsimUnpack(b);}
00331
00341 class PastrySendState : public cPacket
00342 {
00343 protected:
00344 TransportAddress dest_var;
00345
00346
00347 bool operator==(const PastrySendState&);
00348
00349 public:
00350 PastrySendState(const char *name=NULL, int kind=0);
00351 PastrySendState(const PastrySendState& other);
00352 virtual ~PastrySendState();
00353 PastrySendState& operator=(const PastrySendState& other);
00354 virtual PastrySendState *dup() const {return new PastrySendState(*this);}
00355 virtual void parsimPack(cCommBuffer *b);
00356 virtual void parsimUnpack(cCommBuffer *b);
00357
00358
00359 virtual TransportAddress& getDest();
00360 virtual const TransportAddress& getDest() const {return const_cast<PastrySendState*>(this)->getDest();}
00361 virtual void setDest(const TransportAddress& dest_var);
00362 };
00363
00364 inline void doPacking(cCommBuffer *b, PastrySendState& obj) {obj.parsimPack(b);}
00365 inline void doUnpacking(cCommBuffer *b, PastrySendState& obj) {obj.parsimUnpack(b);}
00366
00380 class PastryLeafsetMessage : public PastryMessage
00381 {
00382 protected:
00383 NodeHandle sender_var;
00384 TransportAddress sendStateTo_var;
00385 NodeHandle *leafSet_var;
00386 unsigned int leafSet_arraysize;
00387 simtime_t timestamp_var;
00388
00389
00390 bool operator==(const PastryLeafsetMessage&);
00391
00392 public:
00393 PastryLeafsetMessage(const char *name=NULL, int kind=0);
00394 PastryLeafsetMessage(const PastryLeafsetMessage& other);
00395 virtual ~PastryLeafsetMessage();
00396 PastryLeafsetMessage& operator=(const PastryLeafsetMessage& other);
00397 virtual PastryLeafsetMessage *dup() const {return new PastryLeafsetMessage(*this);}
00398 virtual void parsimPack(cCommBuffer *b);
00399 virtual void parsimUnpack(cCommBuffer *b);
00400
00401
00402 virtual NodeHandle& getSender();
00403 virtual const NodeHandle& getSender() const {return const_cast<PastryLeafsetMessage*>(this)->getSender();}
00404 virtual void setSender(const NodeHandle& sender_var);
00405 virtual TransportAddress& getSendStateTo();
00406 virtual const TransportAddress& getSendStateTo() const {return const_cast<PastryLeafsetMessage*>(this)->getSendStateTo();}
00407 virtual void setSendStateTo(const TransportAddress& sendStateTo_var);
00408 virtual void setLeafSetArraySize(unsigned int size);
00409 virtual unsigned int getLeafSetArraySize() const;
00410 virtual NodeHandle& getLeafSet(unsigned int k);
00411 virtual const NodeHandle& getLeafSet(unsigned int k) const {return const_cast<PastryLeafsetMessage*>(this)->getLeafSet(k);}
00412 virtual void setLeafSet(unsigned int k, const NodeHandle& leafSet_var);
00413 virtual simtime_t getTimestamp() const;
00414 virtual void setTimestamp(simtime_t timestamp_var);
00415 };
00416
00417 inline void doPacking(cCommBuffer *b, PastryLeafsetMessage& obj) {obj.parsimPack(b);}
00418 inline void doUnpacking(cCommBuffer *b, PastryLeafsetMessage& obj) {obj.parsimUnpack(b);}
00419
00431 class PastryRoutingRowRequestMessage : public PastryMessage
00432 {
00433 protected:
00434 TransportAddress sendStateTo_var;
00435 int row_var;
00436
00437
00438 bool operator==(const PastryRoutingRowRequestMessage&);
00439
00440 public:
00441 PastryRoutingRowRequestMessage(const char *name=NULL, int kind=0);
00442 PastryRoutingRowRequestMessage(const PastryRoutingRowRequestMessage& other);
00443 virtual ~PastryRoutingRowRequestMessage();
00444 PastryRoutingRowRequestMessage& operator=(const PastryRoutingRowRequestMessage& other);
00445 virtual PastryRoutingRowRequestMessage *dup() const {return new PastryRoutingRowRequestMessage(*this);}
00446 virtual void parsimPack(cCommBuffer *b);
00447 virtual void parsimUnpack(cCommBuffer *b);
00448
00449
00450 virtual TransportAddress& getSendStateTo();
00451 virtual const TransportAddress& getSendStateTo() const {return const_cast<PastryRoutingRowRequestMessage*>(this)->getSendStateTo();}
00452 virtual void setSendStateTo(const TransportAddress& sendStateTo_var);
00453 virtual int getRow() const;
00454 virtual void setRow(int row_var);
00455 };
00456
00457 inline void doPacking(cCommBuffer *b, PastryRoutingRowRequestMessage& obj) {obj.parsimPack(b);}
00458 inline void doUnpacking(cCommBuffer *b, PastryRoutingRowRequestMessage& obj) {obj.parsimUnpack(b);}
00459
00473 class PastryRoutingRowMessage : public PastryMessage
00474 {
00475 protected:
00476 NodeHandle sender_var;
00477 NodeHandle *routingTable_var;
00478 unsigned int routingTable_arraysize;
00479 int row_var;
00480 simtime_t timestamp_var;
00481
00482
00483 bool operator==(const PastryRoutingRowMessage&);
00484
00485 public:
00486 PastryRoutingRowMessage(const char *name=NULL, int kind=0);
00487 PastryRoutingRowMessage(const PastryRoutingRowMessage& other);
00488 virtual ~PastryRoutingRowMessage();
00489 PastryRoutingRowMessage& operator=(const PastryRoutingRowMessage& other);
00490 virtual PastryRoutingRowMessage *dup() const {return new PastryRoutingRowMessage(*this);}
00491 virtual void parsimPack(cCommBuffer *b);
00492 virtual void parsimUnpack(cCommBuffer *b);
00493
00494
00495 virtual NodeHandle& getSender();
00496 virtual const NodeHandle& getSender() const {return const_cast<PastryRoutingRowMessage*>(this)->getSender();}
00497 virtual void setSender(const NodeHandle& sender_var);
00498 virtual void setRoutingTableArraySize(unsigned int size);
00499 virtual unsigned int getRoutingTableArraySize() const;
00500 virtual NodeHandle& getRoutingTable(unsigned int k);
00501 virtual const NodeHandle& getRoutingTable(unsigned int k) const {return const_cast<PastryRoutingRowMessage*>(this)->getRoutingTable(k);}
00502 virtual void setRoutingTable(unsigned int k, const NodeHandle& routingTable_var);
00503 virtual int getRow() const;
00504 virtual void setRow(int row_var);
00505 virtual simtime_t getTimestamp() const;
00506 virtual void setTimestamp(simtime_t timestamp_var);
00507 };
00508
00509 inline void doPacking(cCommBuffer *b, PastryRoutingRowMessage& obj) {obj.parsimPack(b);}
00510 inline void doUnpacking(cCommBuffer *b, PastryRoutingRowMessage& obj) {obj.parsimUnpack(b);}
00511
00522 class PastryRequestMessage : public PastryMessage
00523 {
00524 protected:
00525 TransportAddress sendStateTo_var;
00526 int pastryReqType_var;
00527
00528
00529 bool operator==(const PastryRequestMessage&);
00530
00531 public:
00532 PastryRequestMessage(const char *name=NULL, int kind=0);
00533 PastryRequestMessage(const PastryRequestMessage& other);
00534 virtual ~PastryRequestMessage();
00535 PastryRequestMessage& operator=(const PastryRequestMessage& other);
00536 virtual PastryRequestMessage *dup() const {return new PastryRequestMessage(*this);}
00537 virtual void parsimPack(cCommBuffer *b);
00538 virtual void parsimUnpack(cCommBuffer *b);
00539
00540
00541 virtual TransportAddress& getSendStateTo();
00542 virtual const TransportAddress& getSendStateTo() const {return const_cast<PastryRequestMessage*>(this)->getSendStateTo();}
00543 virtual void setSendStateTo(const TransportAddress& sendStateTo_var);
00544 virtual int getPastryReqType() const;
00545 virtual void setPastryReqType(int pastryReqType_var);
00546 };
00547
00548 inline void doPacking(cCommBuffer *b, PastryRequestMessage& obj) {obj.parsimPack(b);}
00549 inline void doUnpacking(cCommBuffer *b, PastryRequestMessage& obj) {obj.parsimUnpack(b);}
00550
00551
00552 #endif // _PASTRYMESSAGE_M_H_