Exemplo n.º 1
0
 void Start()
 {
     httpListener.Prefixes.Add("http://127.0.0.1:" + port + "/");
     OnRequest = new OnRequestEvent();
     OnRequest.AddListener(HandleRequest);
     StartServer();
 }
Exemplo n.º 2
0
        /// <summary>
        ///     Запустить мониторинг изменений в MemoryMappedFile
        /// </summary>
        /// <param name="memoryMappedFile"></param>
        /// <param name="memoryMappedViewAccessor"></param>
        /// <param name="task"></param>
        public static void RunMonitor(MemoryMappedFile memoryMappedFile, MemoryMappedViewAccessor memoryMappedViewAccessor, Task task)
        {
            task = new Task(() =>
            {
                memoryMappedViewAccessor = memoryMappedFile.CreateViewAccessor(0, 8);

                while (AppData.runWatchThread)
                {
                    memoryMappedViewAccessor.Read(0, out Int16 commandIndicator);
                    if (commandIndicator == AppData.COMMAND)
                    {
                        memoryMappedViewAccessor.Read(2, out byte s0);

                        // Disabled or Enabled
                        memoryMappedViewAccessor.Read(3, out byte s1);
                        // Force mode on or off
                        memoryMappedViewAccessor.Read(4, out byte s2);

                        // This is how we reset command
                        memoryMappedViewAccessor.Write(0, (Int32)0);

                        if (s0 == AppData.SUB_COMMAND_EXIT)
                        {
                            App.Current.Dispatcher.Invoke(() => { App.Current.Shutdown(); });
                            break;
                        }
                        else
                        if (s0 == AppData.SUB_COMMAND_CHANGE)
                        {
                            if (s1 == 0)
                            {
                                AppData.SwitchToStatus = Status.sOn;
                            }
                            else
                            if (s1 == 1)
                            {
                                AppData.SwitchToStatus = Status.sOff;
                            }

                            AppData.EnforceWhileRun = s2 == 1;

                            AppData.MustSwitch = true;
                        }

                        OnRequestEvent?.Invoke();
                    }
                    Thread.Sleep(100);
                }
            });

            task.Start();
        }
Exemplo n.º 3
0
 public virtual void OnRequest(TcpClientMessageService service)
 {
     OnRequestEvent?.Invoke(this, new MessageEventArgs(this, service));
 }
Exemplo n.º 4
0
        protected void OnRequestReceived(RequestMessage message)
        {
            OnRequestEvent handler = OnRequest;

            Runner.Primary(() => handler?.Invoke(message));
        }