Go to the documentation of this file.00001
00002
00003
00004
00005 #ifndef _GIAMESSAGE_M_H_
00006 #define _GIAMESSAGE_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 <OverlayKey.h>
00019 #include <GiaNode.h>
00020 #include <NodeHandle.h>
00021 #include <CommonMessages_m.h>
00022
00023
00024 static const int GIACOMMAND_L = 8;
00025 static const int CAPACITY_L = 32;
00026 static const int DEGREE_L = 16;
00027 static const int TOKENNR_L = 16;
00028 static const int MAXRESPONSES_L = 16;
00029 #define GIANODE_L (CAPACITY_L + DEGREE_L + NODEHANDLE_L + 2 * TOKENNR_L)
00030
00031 #define GIA_L(msg) (BASEOVERLAY_L(msg) + NODEHANDLE_L + HOPCOUNT_L + \
00032 GIACOMMAND_L + CAPACITY_L + DEGREE_L)
00033 #define GIANEIGHBOR_L(msg) (GIA_L(msg) + msg->getNeighborsArraySize() * GIANODE_L)
00034 #define TOKEN_L(msg) (GIA_L(msg) + 2 * TOKENNR_L)
00035 #define GIAID_L(msg) (GIA_L(msg) + KEY_L)
00036 #define GIAROUTE_L(msg) (GIAID_L(msg) + KEY_L + IPADDR_L + UDPPORT_L)
00037 #define KEYLIST_L(msg) (GIA_L(msg) + (msg->getKeysArraySize() * KEY_L))
00038 #define SEARCH_L(msg) (GIAID_L(msg) + KEY_L + MAXRESPONSES_L + \
00039 msg->getReversePathArraySize() * KEY_L + \
00040 msg->getFoundNodeArraySize() * KEY_L)
00041 #define SEARCHRESPONSE_L(msg) (GIAID_L(msg) + KEY_L + msg->getReversePathArraySize() * KEY_L + \
00042 GIANODE_L + HOPCOUNT_L)
00043
00044
00045
00046
00066 enum GIACommand {
00067 JOIN_REQUEST = 0,
00068 JOIN_RESPONSE = 1,
00069 JOIN_ACK = 2,
00070 JOIN_DENY = 3,
00071 DISCONNECT = 4,
00072 ROUTE = 5,
00073 SEARCH = 6,
00074 ANSWER = 7,
00075 UPDATE = 8,
00076 TOKEN = 9,
00077 KEYLIST = 10
00078 };
00079
00093 class GiaMessage : public ::BaseOverlayMessage
00094 {
00095 protected:
00096 ::NodeHandle srcNode_var;
00097 int hopCount_var;
00098 int command_var;
00099 double srcCapacity_var;
00100 int srcDegree_var;
00101
00102
00103 bool operator==(const GiaMessage&);
00104
00105 public:
00106 GiaMessage(const char *name=NULL, int kind=0);
00107 GiaMessage(const GiaMessage& other);
00108 virtual ~GiaMessage();
00109 GiaMessage& operator=(const GiaMessage& other);
00110 virtual GiaMessage *dup() const {return new GiaMessage(*this);}
00111 virtual void parsimPack(cCommBuffer *b);
00112 virtual void parsimUnpack(cCommBuffer *b);
00113
00114
00115 virtual NodeHandle& getSrcNode();
00116 virtual const NodeHandle& getSrcNode() const {return const_cast<GiaMessage*>(this)->getSrcNode();}
00117 virtual void setSrcNode(const NodeHandle& srcNode_var);
00118 virtual int getHopCount() const;
00119 virtual void setHopCount(int hopCount_var);
00120 virtual int getCommand() const;
00121 virtual void setCommand(int command_var);
00122 virtual double getSrcCapacity() const;
00123 virtual void setSrcCapacity(double srcCapacity_var);
00124 virtual int getSrcDegree() const;
00125 virtual void setSrcDegree(int srcDegree_var);
00126 };
00127
00128 inline void doPacking(cCommBuffer *b, GiaMessage& obj) {obj.parsimPack(b);}
00129 inline void doUnpacking(cCommBuffer *b, GiaMessage& obj) {obj.parsimUnpack(b);}
00130
00140 class GiaNeighborMessage : public ::GiaMessage
00141 {
00142 protected:
00143 ::GiaNode *neighbors_var;
00144 unsigned int neighbors_arraysize;
00145
00146
00147 bool operator==(const GiaNeighborMessage&);
00148
00149 public:
00150 GiaNeighborMessage(const char *name=NULL, int kind=0);
00151 GiaNeighborMessage(const GiaNeighborMessage& other);
00152 virtual ~GiaNeighborMessage();
00153 GiaNeighborMessage& operator=(const GiaNeighborMessage& other);
00154 virtual GiaNeighborMessage *dup() const {return new GiaNeighborMessage(*this);}
00155 virtual void parsimPack(cCommBuffer *b);
00156 virtual void parsimUnpack(cCommBuffer *b);
00157
00158
00159 virtual void setNeighborsArraySize(unsigned int size);
00160 virtual unsigned int getNeighborsArraySize() const;
00161 virtual GiaNode& getNeighbors(unsigned int k);
00162 virtual const GiaNode& getNeighbors(unsigned int k) const {return const_cast<GiaNeighborMessage*>(this)->getNeighbors(k);}
00163 virtual void setNeighbors(unsigned int k, const GiaNode& neighbors_var);
00164 };
00165
00166 inline void doPacking(cCommBuffer *b, GiaNeighborMessage& obj) {obj.parsimPack(b);}
00167 inline void doUnpacking(cCommBuffer *b, GiaNeighborMessage& obj) {obj.parsimUnpack(b);}
00168
00179 class TokenMessage : public ::GiaMessage
00180 {
00181 protected:
00182 int srcTokenNr_var;
00183 int dstTokenNr_var;
00184
00185
00186 bool operator==(const TokenMessage&);
00187
00188 public:
00189 TokenMessage(const char *name=NULL, int kind=0);
00190 TokenMessage(const TokenMessage& other);
00191 virtual ~TokenMessage();
00192 TokenMessage& operator=(const TokenMessage& other);
00193 virtual TokenMessage *dup() const {return new TokenMessage(*this);}
00194 virtual void parsimPack(cCommBuffer *b);
00195 virtual void parsimUnpack(cCommBuffer *b);
00196
00197
00198 virtual int getSrcTokenNr() const;
00199 virtual void setSrcTokenNr(int srcTokenNr_var);
00200 virtual int getDstTokenNr() const;
00201 virtual void setDstTokenNr(int dstTokenNr_var);
00202 };
00203
00204 inline void doPacking(cCommBuffer *b, TokenMessage& obj) {obj.parsimPack(b);}
00205 inline void doUnpacking(cCommBuffer *b, TokenMessage& obj) {obj.parsimUnpack(b);}
00206
00217 class GiaIDMessage : public ::GiaMessage
00218 {
00219 protected:
00220 ::OverlayKey destKey_var;
00221 ::OverlayKey ID_var;
00222
00223
00224 bool operator==(const GiaIDMessage&);
00225
00226 public:
00227 GiaIDMessage(const char *name=NULL, int kind=0);
00228 GiaIDMessage(const GiaIDMessage& other);
00229 virtual ~GiaIDMessage();
00230 GiaIDMessage& operator=(const GiaIDMessage& other);
00231 virtual GiaIDMessage *dup() const {return new GiaIDMessage(*this);}
00232 virtual void parsimPack(cCommBuffer *b);
00233 virtual void parsimUnpack(cCommBuffer *b);
00234
00235
00236 virtual OverlayKey& getDestKey();
00237 virtual const OverlayKey& getDestKey() const {return const_cast<GiaIDMessage*>(this)->getDestKey();}
00238 virtual void setDestKey(const OverlayKey& destKey_var);
00239 virtual OverlayKey& getID();
00240 virtual const OverlayKey& getID() const {return const_cast<GiaIDMessage*>(this)->getID();}
00241 virtual void setID(const OverlayKey& ID_var);
00242 };
00243
00244 inline void doPacking(cCommBuffer *b, GiaIDMessage& obj) {obj.parsimPack(b);}
00245 inline void doUnpacking(cCommBuffer *b, GiaIDMessage& obj) {obj.parsimUnpack(b);}
00246
00258 class GiaRouteMessage : public ::GiaIDMessage
00259 {
00260 protected:
00261 ::OverlayKey originatorKey_var;
00262 ::IPvXAddress originatorIP_var;
00263 int originatorPort_var;
00264
00265
00266 bool operator==(const GiaRouteMessage&);
00267
00268 public:
00269 GiaRouteMessage(const char *name=NULL, int kind=0);
00270 GiaRouteMessage(const GiaRouteMessage& other);
00271 virtual ~GiaRouteMessage();
00272 GiaRouteMessage& operator=(const GiaRouteMessage& other);
00273 virtual GiaRouteMessage *dup() const {return new GiaRouteMessage(*this);}
00274 virtual void parsimPack(cCommBuffer *b);
00275 virtual void parsimUnpack(cCommBuffer *b);
00276
00277
00278 virtual OverlayKey& getOriginatorKey();
00279 virtual const OverlayKey& getOriginatorKey() const {return const_cast<GiaRouteMessage*>(this)->getOriginatorKey();}
00280 virtual void setOriginatorKey(const OverlayKey& originatorKey_var);
00281 virtual IPvXAddress& getOriginatorIP();
00282 virtual const IPvXAddress& getOriginatorIP() const {return const_cast<GiaRouteMessage*>(this)->getOriginatorIP();}
00283 virtual void setOriginatorIP(const IPvXAddress& originatorIP_var);
00284 virtual int getOriginatorPort() const;
00285 virtual void setOriginatorPort(int originatorPort_var);
00286 };
00287
00288 inline void doPacking(cCommBuffer *b, GiaRouteMessage& obj) {obj.parsimPack(b);}
00289 inline void doUnpacking(cCommBuffer *b, GiaRouteMessage& obj) {obj.parsimUnpack(b);}
00290
00300 class KeyListMessage : public ::GiaMessage
00301 {
00302 protected:
00303 ::OverlayKey *keys_var;
00304 unsigned int keys_arraysize;
00305
00306
00307 bool operator==(const KeyListMessage&);
00308
00309 public:
00310 KeyListMessage(const char *name=NULL, int kind=0);
00311 KeyListMessage(const KeyListMessage& other);
00312 virtual ~KeyListMessage();
00313 KeyListMessage& operator=(const KeyListMessage& other);
00314 virtual KeyListMessage *dup() const {return new KeyListMessage(*this);}
00315 virtual void parsimPack(cCommBuffer *b);
00316 virtual void parsimUnpack(cCommBuffer *b);
00317
00318
00319 virtual void setKeysArraySize(unsigned int size);
00320 virtual unsigned int getKeysArraySize() const;
00321 virtual OverlayKey& getKeys(unsigned int k);
00322 virtual const OverlayKey& getKeys(unsigned int k) const {return const_cast<KeyListMessage*>(this)->getKeys(k);}
00323 virtual void setKeys(unsigned int k, const OverlayKey& keys_var);
00324 };
00325
00326 inline void doPacking(cCommBuffer *b, KeyListMessage& obj) {obj.parsimPack(b);}
00327 inline void doUnpacking(cCommBuffer *b, KeyListMessage& obj) {obj.parsimUnpack(b);}
00328
00341 class SearchMessage : public ::GiaIDMessage
00342 {
00343 protected:
00344 ::OverlayKey searchKey_var;
00345 int maxResponses_var;
00346 ::OverlayKey *reversePath_var;
00347 unsigned int reversePath_arraysize;
00348 ::OverlayKey *foundNode_var;
00349 unsigned int foundNode_arraysize;
00350
00351
00352 bool operator==(const SearchMessage&);
00353
00354 public:
00355 SearchMessage(const char *name=NULL, int kind=0);
00356 SearchMessage(const SearchMessage& other);
00357 virtual ~SearchMessage();
00358 SearchMessage& operator=(const SearchMessage& other);
00359 virtual SearchMessage *dup() const {return new SearchMessage(*this);}
00360 virtual void parsimPack(cCommBuffer *b);
00361 virtual void parsimUnpack(cCommBuffer *b);
00362
00363
00364 virtual OverlayKey& getSearchKey();
00365 virtual const OverlayKey& getSearchKey() const {return const_cast<SearchMessage*>(this)->getSearchKey();}
00366 virtual void setSearchKey(const OverlayKey& searchKey_var);
00367 virtual int getMaxResponses() const;
00368 virtual void setMaxResponses(int maxResponses_var);
00369 virtual void setReversePathArraySize(unsigned int size);
00370 virtual unsigned int getReversePathArraySize() const;
00371 virtual OverlayKey& getReversePath(unsigned int k);
00372 virtual const OverlayKey& getReversePath(unsigned int k) const {return const_cast<SearchMessage*>(this)->getReversePath(k);}
00373 virtual void setReversePath(unsigned int k, const OverlayKey& reversePath_var);
00374 virtual void setFoundNodeArraySize(unsigned int size);
00375 virtual unsigned int getFoundNodeArraySize() const;
00376 virtual OverlayKey& getFoundNode(unsigned int k);
00377 virtual const OverlayKey& getFoundNode(unsigned int k) const {return const_cast<SearchMessage*>(this)->getFoundNode(k);}
00378 virtual void setFoundNode(unsigned int k, const OverlayKey& foundNode_var);
00379 };
00380
00381 inline void doPacking(cCommBuffer *b, SearchMessage& obj) {obj.parsimPack(b);}
00382 inline void doUnpacking(cCommBuffer *b, SearchMessage& obj) {obj.parsimUnpack(b);}
00383
00396 class SearchResponseMessage : public ::GiaIDMessage
00397 {
00398 protected:
00399 ::OverlayKey searchKey_var;
00400 ::OverlayKey *reversePath_var;
00401 unsigned int reversePath_arraysize;
00402 ::GiaNode foundNode_var;
00403 int searchHopCount_var;
00404
00405
00406 bool operator==(const SearchResponseMessage&);
00407
00408 public:
00409 SearchResponseMessage(const char *name=NULL, int kind=0);
00410 SearchResponseMessage(const SearchResponseMessage& other);
00411 virtual ~SearchResponseMessage();
00412 SearchResponseMessage& operator=(const SearchResponseMessage& other);
00413 virtual SearchResponseMessage *dup() const {return new SearchResponseMessage(*this);}
00414 virtual void parsimPack(cCommBuffer *b);
00415 virtual void parsimUnpack(cCommBuffer *b);
00416
00417
00418 virtual OverlayKey& getSearchKey();
00419 virtual const OverlayKey& getSearchKey() const {return const_cast<SearchResponseMessage*>(this)->getSearchKey();}
00420 virtual void setSearchKey(const OverlayKey& searchKey_var);
00421 virtual void setReversePathArraySize(unsigned int size);
00422 virtual unsigned int getReversePathArraySize() const;
00423 virtual OverlayKey& getReversePath(unsigned int k);
00424 virtual const OverlayKey& getReversePath(unsigned int k) const {return const_cast<SearchResponseMessage*>(this)->getReversePath(k);}
00425 virtual void setReversePath(unsigned int k, const OverlayKey& reversePath_var);
00426 virtual GiaNode& getFoundNode();
00427 virtual const GiaNode& getFoundNode() const {return const_cast<SearchResponseMessage*>(this)->getFoundNode();}
00428 virtual void setFoundNode(const GiaNode& foundNode_var);
00429 virtual int getSearchHopCount() const;
00430 virtual void setSearchHopCount(int searchHopCount_var);
00431 };
00432
00433 inline void doPacking(cCommBuffer *b, SearchResponseMessage& obj) {obj.parsimPack(b);}
00434 inline void doUnpacking(cCommBuffer *b, SearchResponseMessage& obj) {obj.parsimUnpack(b);}
00435
00436
00437 #endif // _GIAMESSAGE_M_H_