BrooseMessage_m.h
Go to the documentation of this file.00001
00002
00003
00004
00005 #ifndef _BROOSEMESSAGE_M_H_
00006 #define _BROOSEMESSAGE_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 <NodeHandle.h>
00020 #include <CommonMessages_m.h>
00021 #include <OverlayKey.h>
00022
00023
00024 static const int INDEX_L = 8;
00025 static const int BUCKETTYPE_L = 2;
00026 static const int PROTOSTATE_L = 2;
00027 static const int STEP_L = 8;
00028 static const int RIGHTSHIFTING_L = 1;
00029 static const int NODENUM_L = 8;
00030
00031 #define BUCKETCALL_L(msg) (BASECALL_L(msg) + INDEX_L + BUCKETTYPE_L + PROTOSTATE_L)
00032 #define BUCKETRESPONSE_L(msg) (BASERESPONSE_L(msg) + NODENUM_L \
00033 + msg->getNodesArraySize() * NODEHANDLE_L)
00034 #define BROOSEFINDNODEEXTMESSAGE_L (KEY_L + STEP_L + RIGHTSHIFTING_L + NODEHANDLE_L)
00035
00036
00037
00038
00039
00052 enum BucketType {
00053 RIGHT = 0,
00054 LEFT = 1,
00055 BROTHER = 2
00056 };
00057
00071 enum ProState {
00072 PINIT = 0,
00073 PRSET = 1,
00074 PBSET = 2,
00075 PREADY = 3
00076 };
00077
00089 class BucketCall : public BaseCallMessage
00090 {
00091 protected:
00092 int bucketType_var;
00093 int bucketIndex_var;
00094 int proState_var;
00095
00096
00097 bool operator==(const BucketCall&);
00098
00099 public:
00100 BucketCall(const char *name=NULL, int kind=0);
00101 BucketCall(const BucketCall& other);
00102 virtual ~BucketCall();
00103 BucketCall& operator=(const BucketCall& other);
00104 virtual BucketCall *dup() const {return new BucketCall(*this);}
00105 virtual void parsimPack(cCommBuffer *b);
00106 virtual void parsimUnpack(cCommBuffer *b);
00107
00108
00109 virtual int getBucketType() const;
00110 virtual void setBucketType(int bucketType_var);
00111 virtual int getBucketIndex() const;
00112 virtual void setBucketIndex(int bucketIndex_var);
00113 virtual int getProState() const;
00114 virtual void setProState(int proState_var);
00115 };
00116
00117 inline void doPacking(cCommBuffer *b, BucketCall& obj) {obj.parsimPack(b);}
00118 inline void doUnpacking(cCommBuffer *b, BucketCall& obj) {obj.parsimUnpack(b);}
00119
00129 class BucketResponse : public BaseResponseMessage
00130 {
00131 protected:
00132 NodeHandle *nodes_var;
00133 unsigned int nodes_arraysize;
00134
00135
00136 bool operator==(const BucketResponse&);
00137
00138 public:
00139 BucketResponse(const char *name=NULL, int kind=0);
00140 BucketResponse(const BucketResponse& other);
00141 virtual ~BucketResponse();
00142 BucketResponse& operator=(const BucketResponse& other);
00143 virtual BucketResponse *dup() const {return new BucketResponse(*this);}
00144 virtual void parsimPack(cCommBuffer *b);
00145 virtual void parsimUnpack(cCommBuffer *b);
00146
00147
00148 virtual void setNodesArraySize(unsigned int size);
00149 virtual unsigned int getNodesArraySize() const;
00150 virtual NodeHandle& getNodes(unsigned int k);
00151 virtual const NodeHandle& getNodes(unsigned int k) const {return const_cast<BucketResponse*>(this)->getNodes(k);}
00152 virtual void setNodes(unsigned int k, const NodeHandle& nodes_var);
00153 };
00154
00155 inline void doPacking(cCommBuffer *b, BucketResponse& obj) {obj.parsimPack(b);}
00156 inline void doUnpacking(cCommBuffer *b, BucketResponse& obj) {obj.parsimUnpack(b);}
00157
00171 class BrooseFindNodeExtMessage : public cPacket
00172 {
00173 protected:
00174 OverlayKey routeKey_var;
00175 int step_var;
00176 int maxDistance_var;
00177 bool rightShifting_var;
00178 NodeHandle lastNode_var;
00179
00180
00181 bool operator==(const BrooseFindNodeExtMessage&);
00182
00183 public:
00184 BrooseFindNodeExtMessage(const char *name=NULL, int kind=0);
00185 BrooseFindNodeExtMessage(const BrooseFindNodeExtMessage& other);
00186 virtual ~BrooseFindNodeExtMessage();
00187 BrooseFindNodeExtMessage& operator=(const BrooseFindNodeExtMessage& other);
00188 virtual BrooseFindNodeExtMessage *dup() const {return new BrooseFindNodeExtMessage(*this);}
00189 virtual void parsimPack(cCommBuffer *b);
00190 virtual void parsimUnpack(cCommBuffer *b);
00191
00192
00193 virtual OverlayKey& getRouteKey();
00194 virtual const OverlayKey& getRouteKey() const {return const_cast<BrooseFindNodeExtMessage*>(this)->getRouteKey();}
00195 virtual void setRouteKey(const OverlayKey& routeKey_var);
00196 virtual int getStep() const;
00197 virtual void setStep(int step_var);
00198 virtual int getMaxDistance() const;
00199 virtual void setMaxDistance(int maxDistance_var);
00200 virtual bool getRightShifting() const;
00201 virtual void setRightShifting(bool rightShifting_var);
00202 virtual NodeHandle& getLastNode();
00203 virtual const NodeHandle& getLastNode() const {return const_cast<BrooseFindNodeExtMessage*>(this)->getLastNode();}
00204 virtual void setLastNode(const NodeHandle& lastNode_var);
00205 };
00206
00207 inline void doPacking(cCommBuffer *b, BrooseFindNodeExtMessage& obj) {obj.parsimPack(b);}
00208 inline void doUnpacking(cCommBuffer *b, BrooseFindNodeExtMessage& obj) {obj.parsimUnpack(b);}
00209
00210
00211 #endif // _BROOSEMESSAGE_M_H_