[common] udpate proto
This commit is contained in:
@@ -1,16 +1,17 @@
|
||||
package ru.m.connect;
|
||||
|
||||
import promhx.Deferred;
|
||||
import hxsignal.impl.Signal1;
|
||||
import haxe.io.Bytes;
|
||||
import promhx.Deferred;
|
||||
import promhx.Promise;
|
||||
import protohx.Message;
|
||||
import ru.m.connect.IConnection;
|
||||
import ru.m.signal.Signal;
|
||||
|
||||
|
||||
class BaseConnection<O:Message, I:Message> implements IConnection<O, I> {
|
||||
public var handler(default, default):Signal1<ConnectionEvent>;
|
||||
public var packetHandler(default, default):Signal1<I>;
|
||||
public var handler(default, null):Signal<ConnectionEvent>;
|
||||
public var sendHandler(default, null):Signal<O>;
|
||||
public var receiveHandler(default, null):Signal<I>;
|
||||
public var connected(default, null):Bool;
|
||||
public var queue(default, null):PacketQueue<I>;
|
||||
|
||||
@@ -18,8 +19,9 @@ class BaseConnection<O:Message, I:Message> implements IConnection<O, I> {
|
||||
|
||||
public function new(i:Class<I>) {
|
||||
queue = new PacketQueue<I>(i);
|
||||
handler = new Signal1<ConnectionEvent>();
|
||||
packetHandler = new Signal1<I>();
|
||||
handler = new Signal<ConnectionEvent>();
|
||||
sendHandler = new Signal<O>();
|
||||
receiveHandler = new Signal<I>();
|
||||
connectDeferred = new Deferred();
|
||||
}
|
||||
|
||||
@@ -32,14 +34,21 @@ class BaseConnection<O:Message, I:Message> implements IConnection<O, I> {
|
||||
}
|
||||
|
||||
public function pushData(bytes:Bytes):Void {
|
||||
#if proto_debug L.d('Proto', 'pushData: ${bytes.length}'); #end
|
||||
queue.addBytes(bytes);
|
||||
while (queue.hasMsg()) {
|
||||
var packet:I = queue.popMsg();
|
||||
packetHandler.emit(packet);
|
||||
receive(packet);
|
||||
}
|
||||
}
|
||||
|
||||
public function send(packet:O):Void {
|
||||
#if proto_debug L.d("Send", Type.getClassName(Type.getClass(packet)).split(".").pop()); #end
|
||||
#if proto_debug L.d('Proto', 'send: ${packet}'); #end
|
||||
sendHandler.emit(packet);
|
||||
}
|
||||
|
||||
public function receive(packet:I):Void {
|
||||
#if proto_debug L.d('Proto', 'receive: ${packet}'); #end
|
||||
receiveHandler.emit(packet);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user