File Common/CommonMessages.msg
Contains:
cplusplus {{
#include <OverlayKey.h>
#include <NodeHandle.h>
#include <IPvXAddress.h>
#include <TransportAddress.h>
#include <BinaryValue.h>
#include <Vector2D.h>
#define KEY_L OverlayKey::getLength()
static const int TYPE_L = 8;
static const int IPADDR_L = 32;
static const int UDPPORT_L = 16;
static const int HOPCOUNT_L = 16;
static const int NONCE_L = 32;
static const int COMP_L = 16;
static const int NUMSIBLINGS_L = 8;
static const int NEIGHBORSFLAG_L = 8;
static const int RESPONSEFLAG_L = 8;
static const int TRYAGAINFLAG_L = 8;
static const int TIER_L = 8;
#define NODEHANDLE_L (IPADDR_L + UDPPORT_L + KEY_L)
#define BASEOVERLAY_L(msg) TYPE_L
#define BASEROUTE_L(msg) (BASEOVERLAY_L(msg) + NODEHANDLE_L + KEY_L + \
HOPCOUNT_L)
#define BASEAPPDATA_L(msg) (BASEOVERLAY_L(msg) + 2*COMP_L)
#define BASERPC_L(msg) (BASEOVERLAY_L(msg) + NONCE_L + NODEHANDLE_L + \
TIER_L)
#define BASECALL_L(msg) BASERPC_L(msg)
#define BASERESPONSE_L(msg) BASERPC_L(msg)
#define FINDNODECALL_L(msg) (BASECALL_L(msg) + KEY_L)
#define FINDNODERESPONSE_L(msg) (BASERESPONSE_L(msg) + NEIGHBORSFLAG_L + \
(msg->getClosestNodesArraySize() * NODEHANDLE_L))
#define FAILEDNODECALL_L(msg) (BASECALL_L(msg) + IPADDR_L + UDPPORT_L)
#define FAILEDNODERESPONSE_L(msg) (BASERESPONSE_L(msg) + TRYAGAINFLAG_L)
#define PINGCALL_L(msg) BASECALL_L(msg)
#define PINGRESPONSE_L(msg) BASERESPONSE_L(msg)
#define NEXTHOPCALL_L(msg) BASECALL_L(msg)
#define NEXTHOPRESPONSE_L(msg) BASERESPONSE_L(msg)
}};
class CommonAPIMessage;
class BaseOverlayMessage;
class BaseRpcMessage;
class BaseCallMessage;
class BaseResponseMessage;
class noncobject NodeHandle;
class noncobject TransportAddress;
class noncobject OverlayKey;
class noncobject IPvXAddress;
class noncobject Vector2D;
class noncobject BinaryValue;
class noncobject CompType;
enum BaseOverlayMessageType
{
OVERLAYSIGNALING = 0;
RPC = 1;
APPDATA = 2;
OVERLAYROUTE = 3;
};
enum CompType
{
INVALID_COMP = 0;
OVERLAY_COMP = 1;
TIER1_COMP = 2;
TIER2_COMP = 3;
TIER3_COMP = 4;
BOOTSTRAPLIST_COMP = 5;
};
enum TransportType
{
INVALID_TRANSPORT = 0;
INTERNAL_TRANSPORT = 1;
UDP_TRANSPORT = 2;
ROUTE_TRANSPORT = 3;
};
enum CommonAPIMessageType
{
COMMON_API_UNDEFINED = 0;
KBR_ROUTE = 1;
KBR_DELIVER = 2;
KBR_FORWARD = 3;
KBR_FORWARD_RESPONSE = 4;
KBR_UPDATE = 5;
DHT_PUT = 6;
DHT_PUT_RESPONSE = 7;
DHT_GET = 8;
DHT_GET_RESPONSE = 9;
DHT_REMOVE = 10;
DHT_REMOVE_RESPONSE = 11;
};
message BaseOverlayMessage {
fields:
int type enum(BaseOverlayMessageType) = OVERLAYSIGNALING;
bool signaling = true;
};
message BaseRouteMessage extends BaseOverlayMessage {
fields:
OverlayKey destKey;
NodeHandle srcNode;
int hopCount = 0;
simtime_t hopStamp;
simtime_t hopDelay[];
};
message BaseAppDataMessage extends BaseOverlayMessage {
fields:
int destComp enum(CompType);
int srcComp enum(CompType);
};
message BaseRpcMessage extends BaseOverlayMessage {
fields:
unsigned int nonce;
NodeHandle srcNode;
};
message BaseCallMessage extends BaseRpcMessage {
};
message BaseResponseMessage extends BaseRpcMessage {
};
message RpcTimeoutMessage extends BaseRpcMessage {
};
message FindNodeCall extends BaseCallMessage {
fields:
OverlayKey lookupKey;
int numRedundantNodes;
int numSiblings;
};
message FindNodeResponse extends BaseResponseMessage {
fields:
bool siblings;
NodeHandle closestNodes[];
};
message FailedNodeCall extends BaseCallMessage {
fields:
TransportAddress failedNode;
};
message FailedNodeResponse extends BaseResponseMessage {
fields:
bool tryAgain;
};
message PingCall extends BaseCallMessage {
};
message PingResponse extends BaseResponseMessage {
};
message TierReadyMessage extends cMessage {
fields:
bool ready;
NodeHandle thisNode;
};
message BootstrapLookupMessage extends BaseOverlayMessage {
};
message NextHopCall extends BaseCallMessage {
};
message NextHopResponse extends BaseResponseMessage {
};
message CommonAPIMessage
{
fields:
int type enum(CommonAPIMessageType) = COMMON_API_UNDEFINED;
};
message KBRroute extends CommonAPIMessage
{
fields:
OverlayKey destKey;
int destComp enum(CompType);
int srcComp enum(CompType);
TransportAddress hint;
};
message KBRforward extends CommonAPIMessage
{
fields:
OverlayKey destKey;
NodeHandle nextHopNode;
};
message KBRdeliver extends CommonAPIMessage
{
fields:
OverlayKey destKey;
};
message KBRupdate extends CommonAPIMessage
{
fields:
NodeHandle node;
bool joined;
};
message DHTputCAPICall extends BaseCallMessage
{
fields:
OverlayKey key;
BinaryValue value;
int ttl;
bool isModifiable;
};
message DHTgetCAPICall extends BaseCallMessage
{
fields:
OverlayKey key;
};
message DHTputCAPIResponse extends BaseResponseMessage
{
fields:
OverlayKey key;
BinaryValue value;
bool isSuccess;
};
message DHTgetCAPIResponse extends BaseResponseMessage
{
fields:
OverlayKey key;
BinaryValue value;
bool isSuccess;
};
message LookupCall extends BaseCallMessage {
fields:
OverlayKey key;
int numSiblings;
};
message LookupResponse extends BaseResponseMessage {
fields:
OverlayKey key;
bool isValid;
NodeHandle siblings[];
};
message P2pnsRegisterCall extends BaseCallMessage
{
fields:
BinaryValue name;
BinaryValue address;
int ttl;
};
message P2pnsRegisterResponse extends BaseResponseMessage
{
fields:
BinaryValue name;
BinaryValue address;
bool isSuccess;
};
message P2pnsResolveCall extends BaseCallMessage
{
fields:
BinaryValue name;
};
message P2pnsResolveResponse extends BaseResponseMessage
{
fields:
BinaryValue name;
BinaryValue address;
bool isSuccess;
};
class OverlayCtrlInfo
{
fields:
IPvXAddress lastHopAddr;
int lastHopPort;
NodeHandle srcNode;
int hopCount = 0;
int srcComp enum(CompType);
int destComp enum(CompType);
int transportType enum(TransportType) = INVALID_TRANSPORT;
};
message ALMMessage {
fields:
OverlayKey groupId;
};
message ALMCreateMessage extends ALMMessage {
};
message ALMDeleteMessage extends ALMMessage {
};
message ALMSubscribeMessage extends ALMMessage {
};
message ALMLeaveMessage extends ALMMessage {
};
message ALMMulticastMessage extends ALMMessage {
};
message ALMAnycastMessage extends ALMMessage {
};
enum GameAPIMessageCommand
{
MOVEMENT_INDICATION = 0;
MOVEMENT_REQUEST = 1;
NEIGHBOR_UPDATE = 2;
};
message GameAPIMessage extends BaseOverlayMessage
{
fields:
int command enum(GameAPIMessageCommand);
};
message GameAPIListMessage extends GameAPIMessage
{
fields:
NodeHandle removeNeighbor[];
NodeHandle addNeighbor[];
Vector2D neighborPosition[];
};
message GameAPIPositionMessage extends GameAPIMessage
{
fields:
Vector2D position;
};