00001 // 00002 // Generated file, do not edit! Created by opp_msgc 4.1 from overlay/kademlia/KademliaMessage.msg. 00003 // 00004 00005 #ifndef _KADEMLIAMESSAGE_M_H_ 00006 #define _KADEMLIAMESSAGE_M_H_ 00007 00008 #include <omnetpp.h> 00009 00010 // opp_msgc version check 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 // cplusplus {{ 00017 #include <KademliaNodeHandle.h> 00018 #include <OverlayKey.h> 00019 #include <CommonMessages_m.h> 00020 00021 static const int ALIVEFLAG_L = 8; 00022 #define MARKEDNODEHANDLE_L (NODEHANDLE_L + ALIVEFLAG_L) 00023 00024 #define KADEMLIAROUTINGINFO_L(msg) (BASEOVERLAY_L(msg) + NODEHANDLE_L + \ 00025 KEY_L + \ 00026 msg->getNextHopsArraySize() * \ 00027 MARKEDNODEHANDLE_L) 00028 // }} 00029 00030 00031 00043 class KademliaRoutingInfoMessage : public ::BaseOverlayMessage 00044 { 00045 protected: 00046 ::NodeHandle srcNode_var; 00047 ::OverlayKey destKey_var; 00048 ::MarkedNodeHandle *nextHops_var; // array ptr 00049 unsigned int nextHops_arraysize; 00050 00051 // protected and unimplemented operator==(), to prevent accidental usage 00052 bool operator==(const KademliaRoutingInfoMessage&); 00053 00054 public: 00055 KademliaRoutingInfoMessage(const char *name=NULL, int kind=0); 00056 KademliaRoutingInfoMessage(const KademliaRoutingInfoMessage& other); 00057 virtual ~KademliaRoutingInfoMessage(); 00058 KademliaRoutingInfoMessage& operator=(const KademliaRoutingInfoMessage& other); 00059 virtual KademliaRoutingInfoMessage *dup() const {return new KademliaRoutingInfoMessage(*this);} 00060 virtual void parsimPack(cCommBuffer *b); 00061 virtual void parsimUnpack(cCommBuffer *b); 00062 00063 // field getter/setter methods 00064 virtual NodeHandle& getSrcNode(); 00065 virtual const NodeHandle& getSrcNode() const {return const_cast<KademliaRoutingInfoMessage*>(this)->getSrcNode();} 00066 virtual void setSrcNode(const NodeHandle& srcNode_var); 00067 virtual OverlayKey& getDestKey(); 00068 virtual const OverlayKey& getDestKey() const {return const_cast<KademliaRoutingInfoMessage*>(this)->getDestKey();} 00069 virtual void setDestKey(const OverlayKey& destKey_var); 00070 virtual void setNextHopsArraySize(unsigned int size); 00071 virtual unsigned int getNextHopsArraySize() const; 00072 virtual MarkedNodeHandle& getNextHops(unsigned int k); 00073 virtual const MarkedNodeHandle& getNextHops(unsigned int k) const {return const_cast<KademliaRoutingInfoMessage*>(this)->getNextHops(k);} 00074 virtual void setNextHops(unsigned int k, const MarkedNodeHandle& nextHops_var); 00075 }; 00076 00077 inline void doPacking(cCommBuffer *b, KademliaRoutingInfoMessage& obj) {obj.parsimPack(b);} 00078 inline void doUnpacking(cCommBuffer *b, KademliaRoutingInfoMessage& obj) {obj.parsimUnpack(b);} 00079 00080 00081 #endif // _KADEMLIAMESSAGE_M_H_