[client] update proto

This commit is contained in:
2018-02-28 22:06:00 +03:00
parent 336896b37e
commit 34e5ac2b9e
10 changed files with 249 additions and 343 deletions

View File

@@ -6,37 +6,19 @@ import promhx.Promise;
import protohx.Message;
interface IConnection {
enum ConnectionEvent {
CONNECTED;
DISCONNECTED;
ERROR(error:Dynamic);
}
interface IConnection<O:Message, I:Message> {
public var connected(default, null):Bool;
public var handler(default, default):Signal1<IConnectionHandler>;
public var packetHandler(default, default):Signal1<IPacketHandler>;
public var handler(default, null):Signal1<ConnectionEvent>;
public var packetHandler(default, null):Signal1<I>;
public var builder(default, null):IPacketBuilder;
public function connect():Promise<IConnection>;
public function connect():Promise<IConnection<O, I>>;
public function disconnect():Void;
public function send(packet:Message):Void;
public function send(packet:O):Void;
public function pushData(bytes:Bytes):Void;
public function receive(packet:Message):Void;
}
interface IConnectionHandler {
public function onConnected():Void;
public function onDisconnected():Void;
public function onError(error:Dynamic):Void;
}
interface IPacketHandler {
public function onPacket(packet:Message):Void;
}
typedef PacketMeta = {
var family:Int;
var id:Int;
}
interface IPacketBuilder {
public function packetMeta(packet:Message):PacketMeta;
public function buildPacket(meta:PacketMeta):Message;
}