PastryTypes.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00026 #ifndef __PASTRY_TYPES_H_
00027 #define __PASTRY_TYPES_H_
00028
00029 #include <map>
00030 #include <OverlayKey.h>
00031 #include <NodeHandle.h>
00032
00033 #include "PastryMessage_m.h"
00034
00038 #define PASTRY_PROX_INFINITE -1
00039
00043 #define PASTRY_PROX_UNDEF -2
00044
00048 #define PASTRY_PROX_PENDING -3
00049
00053 struct PastryStateMsgProximity
00054 {
00055 std::vector<simtime_t> pr_rt;
00056 std::vector<simtime_t> pr_ls;
00057 std::vector<simtime_t> pr_ns;
00058 };
00059
00063 struct PastryStateMsgHandle
00064 {
00065 PastryStateMessage* msg;
00066 PastryStateMsgProximity* prox;
00067 bool outdatedUpdate;
00068 uint32_t nonce;
00069
00070 PastryStateMsgHandle() : msg(NULL), prox(NULL), outdatedUpdate(false) {};
00071 PastryStateMsgHandle(PastryStateMessage* msg)
00072 : msg(msg), prox(NULL), outdatedUpdate(false)
00073 {
00074 nonce = intuniform(0, 0x7FFFFF);
00075 };
00076 };
00077
00082 struct PastryExtendedNode
00083 {
00084 NodeHandle node;
00085 simtime_t rtt;
00086 simtime_t timestamp;
00087
00088 PastryExtendedNode() : node(), rtt(-2), timestamp(0) {};
00089 PastryExtendedNode(const NodeHandle& node, simtime_t rtt,
00090 simtime_t timestamp = 0)
00091 : node(node), rtt(rtt), timestamp(timestamp) {};
00092 };
00093
00094
00095 #endif