public static void ActorLifecycle(Actor actor, ActorLifecycle status) { if (status == Events.ActorLifecycle.Created) { Instance().Active.Add(actor); EventHandler.Trigger(new ActorLifecycleEvent() { Actor = actor, Status = status }); } else if (status == Events.ActorLifecycle.Destroyed) { var instance = Instance(true); if (instance != null) { instance.Active.RemoveAll(i => i == actor); EventHandler.Trigger(new ActorLifecycleEvent() { Actor = actor, Status = status }); } } }
/// Block on the stream forever, reading data as soon as we can. private void ReadStreamData() { using (var streamReader = new StreamReader(_stream)) { try { while (!streamReader.EndOfStream) { var line = streamReader.ReadLine(); lock (this) { EventHandler.Trigger(new DataReceivedEvent(line)); } } } catch (IOException) { } } lock (this) { _state = TcpTransportState.Idle; _writer = null; _stream = null; EventHandler.Trigger(new ConnectionClosedEvent()); } }
/// Open a connection to the remote host or dispatch an error event. private void Connect() { lock (this) { _client = new TcpClient(); try { _client.Connect(_host, _port); } catch (Exception error) { EventHandler.Trigger(new ErrorEvent { Exception = error }); _state = TcpTransportState.Idle; return; } _state = TcpTransportState.Connected; EventHandler.Trigger(new ConnectionOpenedEvent()); } _stream = _client.GetStream(); _writer = new StreamWriter(_stream); ReadStreamData(); }
public JsonBridge(ITransport transport) { _eventHandler = new EventHandler(); _internalHandler = new EventHandler(); _transport = transport; _transport.EventHandler = _internalHandler; _eventCache = new Queue <INetworkEvent>(); // Setup internal event batching _internalHandler.AddEventHandler <ConnectionOpenedEvent>(ep => _eventCache.Enqueue(ep)); _internalHandler.AddEventHandler <ConnectionClosedEvent>(ep => _eventCache.Enqueue(ep)); _internalHandler.AddEventHandler <DataReceivedEvent>(ep => _eventCache.Enqueue(ep)); }
public void Write <T>(T target) { lock (this) { if (_state != TcpTransportState.Connected) { throw new TcpTransportException(TcpTransportErrors.NotConencted, "No active connection"); } var output = JsonUtility.ToJson(target); try { _writer.WriteLine(output); _writer.Flush(); } catch (Exception error) { EventHandler.Trigger(new ErrorEvent() { Exception = error }); } } }
public GenericMotionTracker(IGenericMotion motion, EventHandler eventHandler) { _motion = motion; _eventHandler = eventHandler; _direction = new GenericMotionValue(); }
/// Register self on the animation input handler protected AnimationManagerBase() { _valid = true; _events = new EventHandler(); AnimationHandler.Default.Add(this); }
/// Register self on the animation input handler and set events protected AnimationManagerBase(EventHandler events) { _valid = true; _events = events; AnimationHandler.Default.Add(this); }