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