File Overlay/Gia/GiaMessage.msg
Contains:
cplusplus {{
#include <IPvXAddress.h>
#include <OverlayKey.h>
#include <GiaNode.h>
#include <NodeHandle.h>
#include <BaseOverlayMessage_m.h>
static const int GIACOMMAND_L = 8;
static const int CAPACITY_L = 32;
static const int DEGREE_L = 16;
static const int TOKENNR_L = 16;
static const int MAXRESPONSES_L = 16;
#define GIANODE_L (CAPACITY_L + DEGREE_L + NODEHANDLE_L + 2 * TOKENNR_L)
#define GIA_L(msg) (BASEOVERLAY_L(msg) + NODEHANDLE_L + HOPCOUNT_L + \
GIACOMMAND_L + CAPACITY_L + DEGREE_L)
#define GIANEIGHBOR_L(msg) (GIA_L(msg) + msg->getNeighborsArraySize() * GIANODE_L)
#define TOKEN_L(msg) (GIA_L(msg) + 2 * TOKENNR_L)
#define GIAID_L(msg) (GIA_L(msg) + KEY_L)
#define GIAROUTE_L(msg) (GIAID_L(msg) + KEY_L + IPADDR_L + UDPPORT_L)
#define KEYLIST_L(msg) (GIA_L(msg) + (msg->getKeysArraySize() * KEY_L))
#define SEARCH_L(msg) (GIAID_L(msg) + KEY_L + MAXRESPONSES_L + \
msg->getReversePathArraySize() * KEY_L + \
msg->getFoundNodeArraySize() * KEY_L)
#define SEARCHRESPONSE_L(msg) (GIAID_L(msg) + KEY_L + msg->getReversePathArraySize() * KEY_L + \
GIANODE_L + HOPCOUNT_L)
}};
class noncobject IPvXAddress;
class noncobject OverlayKey;
class noncobject GiaNode;
class noncobject NodeHandle;
class BaseOverlayMessage;
enum GIACommand
{
JOIN_REQUEST = 0;
JOIN_RESPONSE = 1;
JOIN_ACK = 2;
JOIN_DENY = 3;
DISCONNECT = 4;
ROUTE = 5;
SEARCH = 6;
ANSWER = 7;
UPDATE = 8;
TOKEN = 9;
KEYLIST= 10;
};
message GiaMessage extends BaseOverlayMessage
{
fields:
NodeHandle srcNode;
int hopCount = 0;
int command enum(GIACommand);
double srcCapacity;
int srcDegree;
};
message GiaNeighborMessage extends GiaMessage
{
fields:
GiaNode neighbors[];
};
message TokenMessage extends GiaMessage
{
fields:
int srcTokenNr;
int dstTokenNr;
};
message GiaIDMessage extends GiaMessage
{
fields:
OverlayKey destKey;
OverlayKey ID;
};
message GiaRouteMessage extends GiaIDMessage
{
fields:
OverlayKey originatorKey;
IPvXAddress originatorIP;
int originatorPort;
};
message KeyListMessage extends GiaMessage
{
fields:
OverlayKey keys[];
};
message SearchMessage extends GiaIDMessage
{
fields:
OverlayKey searchKey;
int maxResponses;
OverlayKey reversePath[];
OverlayKey foundNode[];
};
message SearchResponseMessage extends GiaIDMessage
{
fields:
OverlayKey searchKey;
OverlayKey reversePath[];
GiaNode foundNode;
int searchHopCount;
};