File Overlay/YMMOG/YMMOGMessage.msg

Contains:

cplusplus {{
#include <vector>
#include "SubSpace.h"
#include "Event.h"
#include "PlayerNode.h"
#include <IPvXAddress.h>
#include "GameState.h"
#include "TreeNode.h"
}};

struct IPAddress;
struct SubSpace;
struct Event;
struct PlayerNode;
struct GameState;
struct TreeNode;

enum Command
{
	LOGIN = 0;
	LOGOUT = 1;
        SUBSCRIBE = 2;
        UNSUBSCRIBE = 3;
	PUBLISH	= 4;
	CREATE = 5;
	REQUESTIP = 6;
	UPDATERESPIP =7;
	PUBLISHEVENTLIST = 8;
	PING = 9;
	PLAYERLIST = 10;
	REQUESTNODE = 11;
	REPLACEMENT = 12;
	DELAY = 13;
	REPLACEINT = 14;
	STABILIZE = 15;
};

enum NodeClass
{
	RESPONSIBLENODE = 0;
	BACKUPNODE = 1;
	INTERMEDIATENODE = 2;
};

enum ServiceType
{
        REQUEST = 0;
        RESPONSE = 1;
        CONFIRMATION = 2;
        FORWARD = 3;
};

enum JobType
{
	CREATENODE = 0;
	DELETENODE = 1;
}
enum Action
{
	COMPLETE = 0;
	ADD = 1;
	REMOVE = 2;
}

message YMMOGMessage {
    fields:
    	double timeStamp;
    	int failed;
	int command;
	int ServiceType;
	IPAddress destip;
	IPAddress srcip;
};

message LoginMessage extends YMMOGMessage {
	fields:
		int id;
		int bandwith;
		int cpu;
		int xpos;
		int ypos;
		int subSpaceSize;
		int gameSpaceSize;
		SubSpace responsibleNodes[];
}

message LogoutMessage extends YMMOGMessage {
	fields:
		int id;
		bool successfull;
}

message CreateNodeMessage extends YMMOGMessage {
	fields:
		int nodeType;
		int jobType;
		bool creationSuccessfull;
		SubSpace subSpaceToCreate;
}

message SubscribeMessage extends YMMOGMessage {
	fields:
		int playerId;
		IPAddress playerIp;
		int subSpaceId;
		GameState gameState;
}
message UnSubscribeMessage extends YMMOGMessage {
	fields:
		int playerId;
		IPAddress playerIp;
		int subSpaceId;
}

message PublishMessage extends YMMOGMessage {
	fields:
		int playerId;
		int subSpaceId;
		Event publishedEvent;
 }
message PublishEventListMessage extends YMMOGMessage {
	fields:
		int timeSlot;
		double sent;
		IPAddress sender;
		int subSpaceId;
		Event eventList[];
}
message RequestIpMessage extends YMMOGMessage {
	fields:
		int subSpaceId;
		int nodeType;
		IPAddress requestedIp;
} 
message UpdateRespIpMessage extends YMMOGMessage {
	fields:
		int subSpaceId;
		int direction;
		IPAddress updatedIp;
}

message PingMessage extends YMMOGMessage {
	fields:
		double sent;
}
message PlayerListMessage extends YMMOGMessage {
	fields:
		double timeStamp;
		int subSpaceId;
		int action;
		TreeNode tree[];
}
message RequestNodeMessage extends YMMOGMessage {
	fields:
		int subSpaceId;
		int nodeType;
}
message ReplacementMessage extends YMMOGMessage {
	fields:
		int subSpaceId;
		int sendGameState;
		GameState gameState;
}
message DelayMessage extends YMMOGMessage {
	fields:
		double delay;
		int subSpaceId;
		IPAddress fromIp;
}
message ReplaceIntermediateNodeMessage extends YMMOGMessage {
	fields:
		int subSpaceId;
		SubSpace subSpace;
		IPAddress toReplace;
		IPAddress ipList[];
}	
	
message ClientLogin extends YMMOGMessage {
	fields:
		int playerId;
		int xpos;
		int ypos;
		int gameSpaceSize;
}

message ClientEvent extends YMMOGMessage {
	fields:
		Event event;
}
message ClientEventList extends YMMOGMessage {
	fields:
		Event eventList[];
}
message StabilizeMessage extends YMMOGMessage {
	fields:
		int subSpaceId;
		int nodeType;
		bool correct;
		SubSpace subSpace;
}