Files
tankz/src/common/haxe/ru/m/connect/IConnection.hx
2019-05-21 17:44:48 +03:00

25 lines
662 B
Haxe
Executable File

package ru.m.connect;
import haxework.signal.Signal;
import haxe.io.Bytes;
import promhx.Promise;
import protohx.Message;
enum ConnectionEvent {
CONNECTED;
DISCONNECTED;
ERROR(error:Dynamic);
}
interface IConnection<O:Message, I:Message> {
public var connected(default, null):Bool;
public var handler(default, null):Signal<ConnectionEvent>;
public var sendHandler(default, null):Signal<O>;
public var receiveHandler(default, null):Signal<I>;
public function connect():Promise<IConnection<O, I>>;
public function disconnect():Void;
public function send(packet:O):Void;
public function pushData(bytes:Bytes):Void;
}