Go to the documentation of this file.00001
00002
00003
00004
00005 #ifndef _NICEMESSAGE_M_H_
00006 #define _NICEMESSAGE_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 <CommonMessages_m.h>
00018 #include <NodeHandle.h>
00019
00020 #define TRANSPORTADDRESS_L (IPADDR_L + UDPPORT_L)
00021
00022 static const int NICECOMMAND_L = 8;
00023 static const int LAYER_L = 16;
00024 static const int INT_L = 32;
00025 static const int SIMTIME_L = 32;
00026 static const int BOOL_L = 8;
00027 static const int DOUBLE_L = 64;
00028 static const int SHORT_L = 16;
00029
00030 #define NICEMESSAGE_L(msg) (BASEOVERLAY_L(msg) + NICECOMMAND_L + TRANSPORTADDRESS_L + LAYER_L)
00031 #define NICEMEMBERMESSAGE_L(msg) (NICEMESSAGE_L(msg) + (msg->getMembersArraySize() * TRANSPORTADDRESS_L))
00032 #define NICECLUSTERMERGE_L(msg) (NICEMEMBERMESSAGE_L(msg) + TRANSPORTADDRESS_L)
00033 #define NICEHEARTBEAT_L(msg) (NICEMEMBERMESSAGE_L(msg) + (msg->getDistancesArraySize() * SIMTIME_L) + INT_L + INT_L + SIMTIME_L + INT_L)
00034 #define NICELEADERHEARTBEAT_L(msg) (NICEHEARTBEAT_L(msg) + TRANSPORTADDRESS_L + (msg->getSupercluster_membersArraySize() * TRANSPORTADDRESS_L) + INT_L)
00035 #define NICEMULTICAST_L(msg) (NICEMESSAGE_L(msg) + TRANSPORTADDRESS_L + DOUBLE_L + INT_L + INT_L)
00036
00037
00038
00039
00066 enum NICECommand {
00067 NICE_QUERY = 0,
00068 NICE_QUERY_RESPONSE = 1,
00069 NICE_JOIN_CLUSTER = 2,
00070 NICE_HEARTBEAT = 3,
00071 NICE_LEADERHEARTBEAT = 4,
00072 NICE_LEADERTRANSFER = 5,
00073 NICE_JOINEVAL = 6,
00074 NICE_JOINEVAL_RESPONSE = 7,
00075 NICE_REMOVE = 8,
00076 NICE_PING_PROBE = 9,
00077 NICE_PING_PROBE_RESPONSE = 10,
00078 NICE_CLUSTER_MERGE_REQUEST = 11,
00079 NICE_PEER_TEMPORARY = 12,
00080 NICE_PEER_TEMPORARY_RELEASE = 13,
00081 NICE_POLL_RP = 14,
00082 NICE_POLL_RP_RESPONSE = 15,
00083 NICE_FORCE_MERGE = 16,
00084 NICE_MULTICAST = 17
00085 };
00086
00098 class NiceMessage : public ::BaseOverlayMessage
00099 {
00100 protected:
00101 int command_var;
00102 ::TransportAddress srcNode_var;
00103 short layer_var;
00104
00105
00106 bool operator==(const NiceMessage&);
00107
00108 public:
00109 NiceMessage(const char *name=NULL, int kind=0);
00110 NiceMessage(const NiceMessage& other);
00111 virtual ~NiceMessage();
00112 NiceMessage& operator=(const NiceMessage& other);
00113 virtual NiceMessage *dup() const {return new NiceMessage(*this);}
00114 virtual void parsimPack(cCommBuffer *b);
00115 virtual void parsimUnpack(cCommBuffer *b);
00116
00117
00118 virtual int getCommand() const;
00119 virtual void setCommand(int command_var);
00120 virtual TransportAddress& getSrcNode();
00121 virtual const TransportAddress& getSrcNode() const {return const_cast<NiceMessage*>(this)->getSrcNode();}
00122 virtual void setSrcNode(const TransportAddress& srcNode_var);
00123 virtual short getLayer() const;
00124 virtual void setLayer(short layer_var);
00125 };
00126
00127 inline void doPacking(cCommBuffer *b, NiceMessage& obj) {obj.parsimPack(b);}
00128 inline void doUnpacking(cCommBuffer *b, NiceMessage& obj) {obj.parsimUnpack(b);}
00129
00139 class NiceMemberMessage : public ::NiceMessage
00140 {
00141 protected:
00142 ::TransportAddress *members_var;
00143 unsigned int members_arraysize;
00144
00145
00146 bool operator==(const NiceMemberMessage&);
00147
00148 public:
00149 NiceMemberMessage(const char *name=NULL, int kind=0);
00150 NiceMemberMessage(const NiceMemberMessage& other);
00151 virtual ~NiceMemberMessage();
00152 NiceMemberMessage& operator=(const NiceMemberMessage& other);
00153 virtual NiceMemberMessage *dup() const {return new NiceMemberMessage(*this);}
00154 virtual void parsimPack(cCommBuffer *b);
00155 virtual void parsimUnpack(cCommBuffer *b);
00156
00157
00158 virtual void setMembersArraySize(unsigned int size);
00159 virtual unsigned int getMembersArraySize() const;
00160 virtual TransportAddress& getMembers(unsigned int k);
00161 virtual const TransportAddress& getMembers(unsigned int k) const {return const_cast<NiceMemberMessage*>(this)->getMembers(k);}
00162 virtual void setMembers(unsigned int k, const TransportAddress& members_var);
00163 };
00164
00165 inline void doPacking(cCommBuffer *b, NiceMemberMessage& obj) {obj.parsimPack(b);}
00166 inline void doUnpacking(cCommBuffer *b, NiceMemberMessage& obj) {obj.parsimUnpack(b);}
00167
00177 class NiceClusterMerge : public ::NiceMemberMessage
00178 {
00179 protected:
00180 ::TransportAddress newClusterLeader_var;
00181
00182
00183 bool operator==(const NiceClusterMerge&);
00184
00185 public:
00186 NiceClusterMerge(const char *name=NULL, int kind=0);
00187 NiceClusterMerge(const NiceClusterMerge& other);
00188 virtual ~NiceClusterMerge();
00189 NiceClusterMerge& operator=(const NiceClusterMerge& other);
00190 virtual NiceClusterMerge *dup() const {return new NiceClusterMerge(*this);}
00191 virtual void parsimPack(cCommBuffer *b);
00192 virtual void parsimUnpack(cCommBuffer *b);
00193
00194
00195 virtual TransportAddress& getNewClusterLeader();
00196 virtual const TransportAddress& getNewClusterLeader() const {return const_cast<NiceClusterMerge*>(this)->getNewClusterLeader();}
00197 virtual void setNewClusterLeader(const TransportAddress& newClusterLeader_var);
00198 };
00199
00200 inline void doPacking(cCommBuffer *b, NiceClusterMerge& obj) {obj.parsimPack(b);}
00201 inline void doUnpacking(cCommBuffer *b, NiceClusterMerge& obj) {obj.parsimUnpack(b);}
00202
00217 class NiceHeartbeat : public ::NiceMemberMessage
00218 {
00219 protected:
00220 unsigned int seqNo_var;
00221 unsigned int seqRspNo_var;
00222 double hb_delay_var;
00223 double *distances_var;
00224 unsigned int distances_arraysize;
00225 double one_hop_distance_var;
00226 unsigned int sublayermembers_var;
00227
00228
00229 bool operator==(const NiceHeartbeat&);
00230
00231 public:
00232 NiceHeartbeat(const char *name=NULL, int kind=0);
00233 NiceHeartbeat(const NiceHeartbeat& other);
00234 virtual ~NiceHeartbeat();
00235 NiceHeartbeat& operator=(const NiceHeartbeat& other);
00236 virtual NiceHeartbeat *dup() const {return new NiceHeartbeat(*this);}
00237 virtual void parsimPack(cCommBuffer *b);
00238 virtual void parsimUnpack(cCommBuffer *b);
00239
00240
00241 virtual unsigned int getSeqNo() const;
00242 virtual void setSeqNo(unsigned int seqNo_var);
00243 virtual unsigned int getSeqRspNo() const;
00244 virtual void setSeqRspNo(unsigned int seqRspNo_var);
00245 virtual double getHb_delay() const;
00246 virtual void setHb_delay(double hb_delay_var);
00247 virtual void setDistancesArraySize(unsigned int size);
00248 virtual unsigned int getDistancesArraySize() const;
00249 virtual double getDistances(unsigned int k) const;
00250 virtual void setDistances(unsigned int k, double distances_var);
00251 virtual double getOne_hop_distance() const;
00252 virtual void setOne_hop_distance(double one_hop_distance_var);
00253 virtual unsigned int getSublayermembers() const;
00254 virtual void setSublayermembers(unsigned int sublayermembers_var);
00255 };
00256
00257 inline void doPacking(cCommBuffer *b, NiceHeartbeat& obj) {obj.parsimPack(b);}
00258 inline void doUnpacking(cCommBuffer *b, NiceHeartbeat& obj) {obj.parsimUnpack(b);}
00259
00272 class NiceLeaderHeartbeat : public ::NiceHeartbeat
00273 {
00274 protected:
00275 ::TransportAddress supercluster_leader_var;
00276 ::TransportAddress *supercluster_members_var;
00277 unsigned int supercluster_members_arraysize;
00278 unsigned int k_var;
00279 unsigned int sc_tolerance_var;
00280
00281
00282 bool operator==(const NiceLeaderHeartbeat&);
00283
00284 public:
00285 NiceLeaderHeartbeat(const char *name=NULL, int kind=0);
00286 NiceLeaderHeartbeat(const NiceLeaderHeartbeat& other);
00287 virtual ~NiceLeaderHeartbeat();
00288 NiceLeaderHeartbeat& operator=(const NiceLeaderHeartbeat& other);
00289 virtual NiceLeaderHeartbeat *dup() const {return new NiceLeaderHeartbeat(*this);}
00290 virtual void parsimPack(cCommBuffer *b);
00291 virtual void parsimUnpack(cCommBuffer *b);
00292
00293
00294 virtual TransportAddress& getSupercluster_leader();
00295 virtual const TransportAddress& getSupercluster_leader() const {return const_cast<NiceLeaderHeartbeat*>(this)->getSupercluster_leader();}
00296 virtual void setSupercluster_leader(const TransportAddress& supercluster_leader_var);
00297 virtual void setSupercluster_membersArraySize(unsigned int size);
00298 virtual unsigned int getSupercluster_membersArraySize() const;
00299 virtual TransportAddress& getSupercluster_members(unsigned int k);
00300 virtual const TransportAddress& getSupercluster_members(unsigned int k) const {return const_cast<NiceLeaderHeartbeat*>(this)->getSupercluster_members(k);}
00301 virtual void setSupercluster_members(unsigned int k, const TransportAddress& supercluster_members_var);
00302 virtual unsigned int getK() const;
00303 virtual void setK(unsigned int k_var);
00304 virtual unsigned int getSc_tolerance() const;
00305 virtual void setSc_tolerance(unsigned int sc_tolerance_var);
00306 };
00307
00308 inline void doPacking(cCommBuffer *b, NiceLeaderHeartbeat& obj) {obj.parsimPack(b);}
00309 inline void doUnpacking(cCommBuffer *b, NiceLeaderHeartbeat& obj) {obj.parsimUnpack(b);}
00310
00323 class NiceMulticastMessage : public ::NiceMessage
00324 {
00325 protected:
00326 ::TransportAddress lastHop_var;
00327 double sendTime_var;
00328 unsigned int seqNo_var;
00329 unsigned int hopCount_var;
00330
00331
00332 bool operator==(const NiceMulticastMessage&);
00333
00334 public:
00335 NiceMulticastMessage(const char *name=NULL, int kind=0);
00336 NiceMulticastMessage(const NiceMulticastMessage& other);
00337 virtual ~NiceMulticastMessage();
00338 NiceMulticastMessage& operator=(const NiceMulticastMessage& other);
00339 virtual NiceMulticastMessage *dup() const {return new NiceMulticastMessage(*this);}
00340 virtual void parsimPack(cCommBuffer *b);
00341 virtual void parsimUnpack(cCommBuffer *b);
00342
00343
00344 virtual TransportAddress& getLastHop();
00345 virtual const TransportAddress& getLastHop() const {return const_cast<NiceMulticastMessage*>(this)->getLastHop();}
00346 virtual void setLastHop(const TransportAddress& lastHop_var);
00347 virtual double getSendTime() const;
00348 virtual void setSendTime(double sendTime_var);
00349 virtual unsigned int getSeqNo() const;
00350 virtual void setSeqNo(unsigned int seqNo_var);
00351 virtual unsigned int getHopCount() const;
00352 virtual void setHopCount(unsigned int hopCount_var);
00353 };
00354
00355 inline void doPacking(cCommBuffer *b, NiceMulticastMessage& obj) {obj.parsimPack(b);}
00356 inline void doUnpacking(cCommBuffer *b, NiceMulticastMessage& obj) {obj.parsimUnpack(b);}
00357
00358
00359 #endif // _NICEMESSAGE_M_H_