File Common/CommonMessages.msg
Contains:
cplusplus {{
#include <OverlayKey.h>
#include <NodeHandle.h>
#include <IPvXAddress.h>
#include <TransportAddress.h>
#include <BinaryValue.h>
#include <Vector2D.h>
#include <DHTDataStorage.h>
#include <OverSimMessage.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;
static const int ARRAYSIZE_L = 8;
static const int ROUTINGTYPE_L = 8;
#define NODEHANDLE_L (IPADDR_L + UDPPORT_L + KEY_L)
#define TRANSPORTADDRESS_L (IPADDR_L + UDPPORT_L)
#define BASEOVERLAY_L(msg) TYPE_L
#define BASEROUTE_L(msg) (BASEOVERLAY_L(msg) + NODEHANDLE_L + KEY_L + \
HOPCOUNT_L + ROUTINGTYPE_L +\
ARRAYSIZE_L + (msg->getVisitedHopsArraySize() *\
TRANSPORTADDRESS_L) +\
ARRAYSIZE_L + (msg->getNextHopsArraySize() *\
TRANSPORTADDRESS_L) +\
ARRAYSIZE_L + (msg->getHintsArraySize() *\
NODEHANDLE_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 BOOTSTRAPPINGCALL_L(msg) BASECALL_L(msg)
#define BOOTSTRAPPINGRESPONSE_L(msg) BASERESPONSE_L(msg)
#define NEXTHOPCALL_L(msg) BASECALL_L(msg)
#define NEXTHOPRESPONSE_L(msg) BASERESPONSE_L(msg)
}};
class OverSimMessage;
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;
class noncobject DhtDumpEntry;
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 RoutingType
{
NO_OVERLAY_ROUTING = 0;
DEFAULT_ROUTING = 1;
ITERATIVE_ROUTING = 2;
EXHAUSTIVE_ITERATIVE_ROUTING = 3;
SEMI_RECURSIVE_ROUTING = 4;
FULL_RECURSIVE_ROUTING = 5;
RECURSIVE_SOURCE_ROUTING = 6;
};
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;
};
enum StatType
{
MAINTENANCE_STAT = 0;
APP_DATA_STAT = 1;
APP_LOOKUP_STAT = 2;
};
message BaseOverlayMessage {
fields:
int type enum(BaseOverlayMessageType) = OVERLAYSIGNALING;
int statType enum(StatType) = MAINTENANCE_STAT;
};
message BaseRouteMessage extends BaseOverlayMessage {
fields:
OverlayKey destKey;
NodeHandle srcNode;
int routingType enum(RoutingType);
int hopCount = 0;
TransportAddress visitedHops[];
TransportAddress nextHops[];
NodeHandle hints[];
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 CompReadyMessage extends cMessage {
fields:
bool ready;
int comp enum(CompType);
};
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 sourceRoute[];
int routingType enum(RoutingType);
};
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 DHTdumpCall extends BaseCallMessage
{
};
message DHTdumpResponse extends BaseResponseMessage
{
fields:
DhtDumpEntry record[];
};
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 p2pName;
BinaryValue address;
int ttl;
};
message P2pnsRegisterResponse extends BaseResponseMessage
{
fields:
BinaryValue p2pName;
BinaryValue address;
bool isSuccess;
};
message P2pnsResolveCall extends BaseCallMessage
{
fields:
BinaryValue p2pName;
};
message P2pnsResolveResponse extends BaseResponseMessage
{
fields:
BinaryValue p2pName;
BinaryValue address;
bool isSuccess;
};
class OverlayCtrlInfo
{
fields:
TransportAddress lastHop;
NodeHandle srcNode;
int hopCount = 0;
TransportAddress visitedHops[];
int srcComp enum(CompType);
int destComp enum(CompType);
int transportType enum(TransportType) = INVALID_TRANSPORT;
int routingType enum(RoutingType);
};
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;
RESIZE_AOI = 3;
GAMEEVENT_CHAT = 4;
GAMEEVENT_SNOW = 5;
GAMEEVENT_FROZEN = 6;
};
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;
};
message GameAPIResizeAOIMessage extends GameAPIMessage
{
fields:
double AOIsize;
};
message GameAPIChatMessage extends GameAPIMessage
{
fields:
NodeHandle src;
string msg;
};
message GameAPISnowMessage extends GameAPIMessage
{
fields:
NodeHandle src;
Vector2D start;
Vector2D end;
int timeSec;
int timeUsec;
}
message GameAPIFrozenMessage extends GameAPIMessage
{
fields:
NodeHandle src;
int timeSec;
int timeUsec;
}