[common] udpate proto
This commit is contained in:
27
src/common/haxe/ru/m/signal/Signal.hx
Normal file
27
src/common/haxe/ru/m/signal/Signal.hx
Normal file
@@ -0,0 +1,27 @@
|
||||
package ru.m.signal;
|
||||
|
||||
|
||||
typedef Receiver<T> = T -> Void;
|
||||
|
||||
class Signal<T> {
|
||||
|
||||
private var receivers:Array<Receiver<T>>;
|
||||
|
||||
public function new() {
|
||||
receivers = [];
|
||||
}
|
||||
|
||||
public function connect(receiver:Receiver<T>):Void {
|
||||
receivers.push(receiver);
|
||||
}
|
||||
|
||||
public function disconnect(receiver:Receiver<T>):Void {
|
||||
receivers.remove(receiver);
|
||||
}
|
||||
|
||||
public function emit(value:T):Void {
|
||||
for (receiver in receivers) {
|
||||
receiver(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user