Пример #1
0
        private static void PrintAvailableInterfaces()
        {
            var interfaces = NetworkInterface.GetAllNetworkInterfaces();

            foreach (NetworkInterface ni in interfaces)
            {
                if (ni.OperationalStatus == OperationalStatus.Up)
                {
                    Talk.Info("Network interface found: \n{0}", new NetworkInterfaceData(ni).ToString());
                }
            }
        }
Пример #2
0
 private void Save(object sender, ElapsedEventArgs args)
 {
     try
     {
         var filename = SettingManager.Instance.Settings.CurrentProject.Replace(".json", string.Empty).ToLower();
         StateManager.Instance.SaveStateBackup(filename, getNextFileIndex());
         Talk.Info("'" + filename + "' backup saved.");
     }
     catch (Exception e)
     {
         Talk.Error("Backup save failed, error message: " + e.Message);
     }
 }
Пример #3
0
        protected void WriteServerSentEvent(
            HttpListenerContext context,
            int status,
            string eventType,
            Dictionary <string, string> data)
        {
            var response = context.Response;

            // Check if connection isn't dead.


            if (!response.OutputStream.CanWrite)
            {
                Talk.Error("The '" + context.Request.RemoteEndPoint
                           + "' has died for some reason. Removing this client.");
                CloseConnection(context);
                return;
            }

            // All good.. write some response.
            response.AddHeader("Access-Control-Allow-Origin", "*");
            response.AddHeader("Cache-Control", "no-cache");
            response.KeepAlive   = true;
            response.StatusCode  = status;
            response.ContentType = "text/event-stream";
            if (data != null)
            {
                var eventData = Encoding.UTF8.GetBytes("event:" + eventType + "\n");
                var dataData  = Encoding.UTF8.GetBytes("data:" + GetSSEDataString(data));
                var endData   = Encoding.UTF8.GetBytes("\n\n");
                response.OutputStream.Write(eventData, 0, eventData.Length);
                response.OutputStream.Write(dataData, 0, dataData.Length);
                response.OutputStream.Write(endData, 0, endData.Length);
                Talk.Info(String.Format("Sending event -> type: {0}, data: {1}",
                                        eventType,
                                        StringUtil.MapToString(data).Replace("\r", "").Replace("\n", "").Replace("\"", "").Replace("{", "\r\n{").Replace(",", ""))
                          );
            }
            else
            {
                response.OutputStream.Write(new byte[0], 0, 0);
                Talk.Info("Sending 'keep-alive' event stream to: " + context.Request.RemoteEndPoint.Address);
            }
        }
Пример #4
0
        public void Start()
        {
            if (server != null)
            {
                try
                {
                    server.Start();
                    Talk.Info("Started on port " + port);
                }
                catch (Exception e) {
                    Talk.Error("Failed to start on port " + port + ". " + e.ToString());
                    return;
                }

                isRunning = true;
                new Thread(() =>
                {
                    while (isRunning)
                    {
                        var context = server.GetContext();
                        IHttpRequestHandler handler = null;

                        Talk.Info("From: '" + context.Request.RemoteEndPoint.Address + ", Request => " + context.Request.Url);

                        // get relative url cause handlers are sotred by relative keys
                        var url = GetRealtiveUrl(context.Request.Url.ToString());

                        if (requestHandlers.TryGetValue(url, out handler))
                        {
                            handler.HandleRequest(context);
                        }
                        else
                        {
                            new RestPrefixNotRegistredHandler().HandleRequest(context);
                        }
                    }
                }).Start();
            }
            else
            {
                Talk.Warning("Not initialized. Server not started.");
            }
        }
Пример #5
0
        public void Start()
        {
            if (socket == null)
            {
                InitSocket();
            }

            try
            {
                if (TryGetIp(out IPAddress ip) && TryGetSubnetmask(out IPAddress subnet))
                {
                    socket.Open(ip, subnet);
                    Talk.Info("Socket sucessfully binded to " + ip + " / " + subnet);
                }
                else
                {
                    throw new ArgumentException("Ip or subnet mask is currupt");
                }
            }
Пример #6
0
 public static void HandleFatalException(Exception e)
 {
     Talk.Fatal("No joke. The app crashed successfully!");
     Talk.Fatal("If you want to know why -> pelase press 'y' -> othervise press anything you like.");
     switch (Console.ReadKey(true).Key)
     {
     case ConsoleKey.Y:
     {
         Talk.Fatal("Error message: " + e.Message);
         Talk.Fatal("Stacktrace:" + e.StackTrace);
         break;
     }
     }
     Talk.Info("If you think this is no big deal -> please press 'y' to continue.. or any other key to restart the app.");
     if (Console.ReadKey().Key == ConsoleKey.Y)
     {
         return;
     }
     Cmd.RestartProcess(false);
 }
Пример #7
0
        public static void WriteFile(string path, bool relative, string data)
        {
            var dir = Path.GetDirectoryName(GetRelativePath() + path);

            if (!Directory.Exists(dir))
            {
                Directory.CreateDirectory(dir);
            }
            if (relative)
            {
                path = GetRelativePath() + path;
            }
            try
            {
                File.WriteAllText(path, data);
                Talk.Info(path + " written successfully.");
            }
            catch (Exception e) {
                Talk.Error(path + "write error => " + e.ToString());
            }
        }
Пример #8
0
 public void Stop()
 {
     trackingThread.Abort();
     trackingThread = null;
     Talk.Info("Dmx sgnal trcking stoped.");
 }
Пример #9
0
 public void Start()
 {
     StartTracking();
     Talk.Info("Dmx sgnal trcking started.");
 }