Go to the documentation of this file.00001
00002
00003
00004
00005 #ifndef _QUON_M_H_
00006 #define _QUON_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 <NodeHandle.h>
00018 #include <QuonDefs.h>
00019 #include <QuonHelper.h>
00020 #include <CommonMessages_m.h>
00021
00022
00023 static const int QUONCOMMAND_L = 8;
00024 static const int QUONPOSITION_L = 128;
00025 static const int QUONAOI_L = 64;
00026 static const int QUONENTRYCOUNT_L = 32;
00027 static const int QUONFLAG_L = 1;
00028
00029 #define QUON_L(msg) (QUONCOMMAND_L + QUONENTRY_L + KEY_L + QUONAOI_L)
00030 #define QUONLIST_L(msg) (QUON_L(msg) + QUONENTRYCOUNT_L + msg->getNeighborHandleArraySize() * QUONENTRY_L)
00031 #define QUONMOVE_L(msg) (QUONLIST_L(msg) + QUONPOSITION_L + QUONFLAG_L)
00032 #define QUONENTRY_L (NODEHANDLE_L + QUONPOSITION_L)
00033
00034
00035
00036
00051 enum QUONCommand {
00052 JOIN_REQUEST = 0,
00053 JOIN_ACKNOWLEDGE = 1,
00054 NODE_MOVE = 2,
00055 NEW_NEIGHBORS = 3,
00056 NODE_LEAVE = 4,
00057 QUON_EVENT = 5
00058 };
00059
00069 class QuonSelfMessage : public ::cMessage
00070 {
00071 protected:
00072 ::OverlayKey key_var;
00073
00074
00075 bool operator==(const QuonSelfMessage&);
00076
00077 public:
00078 QuonSelfMessage(const char *name=NULL, int kind=0);
00079 QuonSelfMessage(const QuonSelfMessage& other);
00080 virtual ~QuonSelfMessage();
00081 QuonSelfMessage& operator=(const QuonSelfMessage& other);
00082 virtual QuonSelfMessage *dup() const {return new QuonSelfMessage(*this);}
00083 virtual void parsimPack(cCommBuffer *b);
00084 virtual void parsimUnpack(cCommBuffer *b);
00085
00086
00087 virtual OverlayKey& getKey();
00088 virtual const OverlayKey& getKey() const {return const_cast<QuonSelfMessage*>(this)->getKey();}
00089 virtual void setKey(const OverlayKey& key_var);
00090 };
00091
00092 inline void doPacking(cCommBuffer *b, QuonSelfMessage& obj) {obj.parsimPack(b);}
00093 inline void doUnpacking(cCommBuffer *b, QuonSelfMessage& obj) {obj.parsimUnpack(b);}
00094
00107 class QuonMessage : public ::BaseOverlayMessage
00108 {
00109 protected:
00110 int command_var;
00111 ::NodeHandle sender_var;
00112 ::Vector2D position_var;
00113 double AOIsize_var;
00114
00115
00116 bool operator==(const QuonMessage&);
00117
00118 public:
00119 QuonMessage(const char *name=NULL, int kind=0);
00120 QuonMessage(const QuonMessage& other);
00121 virtual ~QuonMessage();
00122 QuonMessage& operator=(const QuonMessage& other);
00123 virtual QuonMessage *dup() const {return new QuonMessage(*this);}
00124 virtual void parsimPack(cCommBuffer *b);
00125 virtual void parsimUnpack(cCommBuffer *b);
00126
00127
00128 virtual int getCommand() const;
00129 virtual void setCommand(int command_var);
00130 virtual NodeHandle& getSender();
00131 virtual const NodeHandle& getSender() const {return const_cast<QuonMessage*>(this)->getSender();}
00132 virtual void setSender(const NodeHandle& sender_var);
00133 virtual Vector2D& getPosition();
00134 virtual const Vector2D& getPosition() const {return const_cast<QuonMessage*>(this)->getPosition();}
00135 virtual void setPosition(const Vector2D& position_var);
00136 virtual double getAOIsize() const;
00137 virtual void setAOIsize(double AOIsize_var);
00138 };
00139
00140 inline void doPacking(cCommBuffer *b, QuonMessage& obj) {obj.parsimPack(b);}
00141 inline void doUnpacking(cCommBuffer *b, QuonMessage& obj) {obj.parsimUnpack(b);}
00142
00153 class QuonListMessage : public ::QuonMessage
00154 {
00155 protected:
00156 ::NodeHandle *neighborHandle_var;
00157 unsigned int neighborHandle_arraysize;
00158 ::Vector2D *neighborPosition_var;
00159 unsigned int neighborPosition_arraysize;
00160
00161
00162 bool operator==(const QuonListMessage&);
00163
00164 public:
00165 QuonListMessage(const char *name=NULL, int kind=0);
00166 QuonListMessage(const QuonListMessage& other);
00167 virtual ~QuonListMessage();
00168 QuonListMessage& operator=(const QuonListMessage& other);
00169 virtual QuonListMessage *dup() const {return new QuonListMessage(*this);}
00170 virtual void parsimPack(cCommBuffer *b);
00171 virtual void parsimUnpack(cCommBuffer *b);
00172
00173
00174 virtual void setNeighborHandleArraySize(unsigned int size);
00175 virtual unsigned int getNeighborHandleArraySize() const;
00176 virtual NodeHandle& getNeighborHandle(unsigned int k);
00177 virtual const NodeHandle& getNeighborHandle(unsigned int k) const {return const_cast<QuonListMessage*>(this)->getNeighborHandle(k);}
00178 virtual void setNeighborHandle(unsigned int k, const NodeHandle& neighborHandle_var);
00179 virtual void setNeighborPositionArraySize(unsigned int size);
00180 virtual unsigned int getNeighborPositionArraySize() const;
00181 virtual Vector2D& getNeighborPosition(unsigned int k);
00182 virtual const Vector2D& getNeighborPosition(unsigned int k) const {return const_cast<QuonListMessage*>(this)->getNeighborPosition(k);}
00183 virtual void setNeighborPosition(unsigned int k, const Vector2D& neighborPosition_var);
00184 };
00185
00186 inline void doPacking(cCommBuffer *b, QuonListMessage& obj) {obj.parsimPack(b);}
00187 inline void doUnpacking(cCommBuffer *b, QuonListMessage& obj) {obj.parsimUnpack(b);}
00188
00199 class QuonMoveMessage : public ::QuonListMessage
00200 {
00201 protected:
00202 ::Vector2D newPosition_var;
00203 bool isBinding_var;
00204
00205
00206 bool operator==(const QuonMoveMessage&);
00207
00208 public:
00209 QuonMoveMessage(const char *name=NULL, int kind=0);
00210 QuonMoveMessage(const QuonMoveMessage& other);
00211 virtual ~QuonMoveMessage();
00212 QuonMoveMessage& operator=(const QuonMoveMessage& other);
00213 virtual QuonMoveMessage *dup() const {return new QuonMoveMessage(*this);}
00214 virtual void parsimPack(cCommBuffer *b);
00215 virtual void parsimUnpack(cCommBuffer *b);
00216
00217
00218 virtual Vector2D& getNewPosition();
00219 virtual const Vector2D& getNewPosition() const {return const_cast<QuonMoveMessage*>(this)->getNewPosition();}
00220 virtual void setNewPosition(const Vector2D& newPosition_var);
00221 virtual bool getIsBinding() const;
00222 virtual void setIsBinding(bool isBinding_var);
00223 };
00224
00225 inline void doPacking(cCommBuffer *b, QuonMoveMessage& obj) {obj.parsimPack(b);}
00226 inline void doUnpacking(cCommBuffer *b, QuonMoveMessage& obj) {obj.parsimUnpack(b);}
00227
00236 class QuonEventMessage : public ::QuonMessage
00237 {
00238 protected:
00239
00240
00241 bool operator==(const QuonEventMessage&);
00242
00243 public:
00244 QuonEventMessage(const char *name=NULL, int kind=0);
00245 QuonEventMessage(const QuonEventMessage& other);
00246 virtual ~QuonEventMessage();
00247 QuonEventMessage& operator=(const QuonEventMessage& other);
00248 virtual QuonEventMessage *dup() const {return new QuonEventMessage(*this);}
00249 virtual void parsimPack(cCommBuffer *b);
00250 virtual void parsimUnpack(cCommBuffer *b);
00251
00252
00253 };
00254
00255 inline void doPacking(cCommBuffer *b, QuonEventMessage& obj) {obj.parsimPack(b);}
00256 inline void doUnpacking(cCommBuffer *b, QuonEventMessage& obj) {obj.parsimUnpack(b);}
00257
00258
00259 #endif // _QUON_M_H_