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