File Overlay/Pastry/PastryMessage.msg
Contains:
cplusplus {{
#include <IPvXAddress.h>
#include <NodeHandle.h>
#include <OverlayKey.h>
#include <CommonMessages_m.h>
static const int PASTRYTYPE_L = 8;
static const int PASTRYSTATETYPE_L = 8;
static const int PASTRYREQUESTTYPE_L = 0;
static const int SIZEOF_INT = 32;
#define TRANSPORTADDRESS_L (IPADDR_L + UDPPORT_L)
#define PASTRY_L(msg) (BASEOVERLAY_L(msg) + PASTRYTYPE_L)
#define PASTRYJOIN_L(msg) (PASTRY_L(msg) + TRANSPORTADDRESS_L + SIZEOF_INT)
#define PASTRYREQ_L(msg) (PASTRY_L(msg) + TRANSPORTADDRESS_L + PASTRYREQUESTTYPE_L)
#define PASTRYSTATE_L(msg) (PASTRY_L(msg) + TRANSPORTADDRESS_L \
+ NODEHANDLE_L * \
(msg->getRoutingTableArraySize() + msg->getLeafSetArraySize() \
+ msg->getNeighborhoodSetArraySize()) + 8 * SIZEOF_INT + \
8 * sizeof(bool) + 8 * sizeof(simtime_t))
static const int PASTRYFINDNODEEXTDATA_L = NODEHANDLE_L + 8 * SIZEOF_INT;
#define PASTRYNEWLEAFS_L(msg) (msg->getLeafsArraySize() * NODEHANDLE_L)
#define PASTRYLEAFSET_L(msg) (PASTRY_L(msg) + TRANSPORTADDRESS_L \
+ NODEHANDLE_L * \
msg->getLeafSetArraySize())
#define PASTRYRTREQ_L(msg) (PASTRY_L(msg) + TRANSPORTADDRESS_L)
#define PASTRYRTABLE_L(msg) (PASTRY_L(msg) + TRANSPORTADDRESS_L \
+ NODEHANDLE_L * \
msg->getRoutingTableArraySize())
}};
class noncobject IPvXAddress;
class noncobject TransportAddress;
class noncobject NodeHandle;
class noncobject OverlayKey;
class BaseOverlayMessage;
class BaseCallMessage;
class BaseResponseMessage;
class BaseAppDataMessage;
enum PastryMsgType
{
PASTRY_MSG_STD = 0;
PASTRY_MSG_JOIN = 1;
PASTRY_MSG_STATE = 2;
PASTRY_MSG_REQ = 3;
PASTRY_MSG_LEAFSET = 4;
PASTRY_MSG_ROWREQ = 5;
PASTRY_MSG_RROW = 6;
PASTRY_MSG_LEAFSET_PULL = 7;
PASTRY_REQ_REPAIR = 8;
PASTRY_REQ_STATE = 9;
PASTRY_REQ_LEAFSET = 10;
};
enum PastryStateMsgType
{
PASTRY_STATE_STD = 0;
PASTRY_STATE_JOIN = 1;
PASTRY_STATE_UPDATE = 2;
PASTRY_STATE_REPAIR = 3;
};
message PastryMessage extends BaseOverlayMessage
{
fields:
int pastryMsgType = PASTRY_MSG_STD;
};
message PastryJoinMessage extends PastryMessage
{
fields:
TransportAddress sendStateTo = TransportAddress::UNSPECIFIED_NODE;
};
message PastryStateMessage extends PastryMessage
{
fields:
int pastryStateMsgType = PASTRY_STATE_STD;
NodeHandle sender = NodeHandle::UNSPECIFIED_NODE;
NodeHandle routingTable[];
NodeHandle leafSet[];
NodeHandle neighborhoodSet[];
int joinHopCount = 0;
bool lastHop = false;
simtime_t timestamp;
};
message PastryFindNodeExtData extends cMessage
{
fields:
TransportAddress sendStateTo = TransportAddress::UNSPECIFIED_NODE;
int joinHopCount = 0;
};
message PastryNewLeafsMessage extends cMessage
{
fields:
NodeHandle leafs[];
};
message PastrySendState extends cMessage
{
fields:
TransportAddress dest = TransportAddress::UNSPECIFIED_NODE;
};
message PastryLeafsetMessage extends PastryMessage
{
fields:
NodeHandle sender = NodeHandle::UNSPECIFIED_NODE;
TransportAddress sendStateTo = TransportAddress::UNSPECIFIED_NODE;
NodeHandle leafSet[];
simtime_t timestamp = 0;
}
message PastryRoutingRowRequestMessage extends PastryMessage
{
fields:
TransportAddress sendStateTo = TransportAddress::UNSPECIFIED_NODE;
int row;
}
message PastryRoutingRowMessage extends PastryMessage
{
fields:
NodeHandle sender = NodeHandle::UNSPECIFIED_NODE;
NodeHandle routingTable[];
int row;
simtime_t timestamp = 0;
}
message PastryRequestMessage extends PastryMessage
{
fields:
TransportAddress sendStateTo = TransportAddress::UNSPECIFIED_NODE;
int pastryReqType = PASTRY_MSG_STD;
};