Exemple #1
0
 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
             });
         }
     }
 }
Exemple #2
0
 /// 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());
     }
 }
Exemple #3
0
        /// 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();
        }
Exemple #4
0
        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));
        }
Exemple #5
0
        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
                    });
                }
            }
        }
Exemple #6
0
 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);
 }