Esempio n. 1
0
 private void EmitEvent(string type, SCPayload payload)
 {
     _host.EmitEvent(
         type,
         EventSourceName,
         payload);
 }
Esempio n. 2
0
        /// <summary>
        /// Logs to the system a warning
        /// </summary>
        /// <param name="message">the message to warn</param>
        private void LogWarning(string message)
        {
            void DefaultLog() => _host.EmitEvent <ILog>(LOG, "IConfigManager", GetWarningLog(message));

            _logger
            .None(DefaultLog)
            .Some(l => l.LogWarning("IConfigManager", message));
        }
Esempio n. 3
0
        private static void InitialisePlugins(IEnumerable <ISubblePlugin> plugins, ISubbleHost host, bool ignoreDependencies = false)
        {
            var pluginQueue     = new Queue <ISubblePlugin>(plugins.OrderBy(p => p.LoadPriority));
            var skippedPlugins  = new List <ISubblePlugin>();
            var initPluginCount = 0;

            while (pluginQueue.Count > 0)
            {
                var plugin = pluginQueue.Dequeue();

                if (!ignoreDependencies && !CheckDependencies(host, plugin))
                {
                    skippedPlugins.Add(plugin);
                    continue;
                }

                if (!plugin.Initialize(host))
                {
                    EmitError(host,
                              $"Error loading plugin '{plugin.Info.Name}' with guid: {plugin.Info.GUID}");
                    continue;
                }

                host.EmitEvent(NEW_PLUGIN, "HOST", plugin.Info);
                initPluginCount++;
            }

            if (skippedPlugins.Count > 0 && initPluginCount > 0)
            {
                InitialisePlugins(skippedPlugins, host);
            }
            else if (skippedPlugins.Count > 0)
            {
                EmitWarning(host, "Failed to load dependencies for some plugins");
                InitialisePlugins(skippedPlugins, host, true);
            }
        }
Esempio n. 4
0
        private static void AwaitUserInput(ISubbleHost host)
        {
            while (true)
            {
                var input = Console.ReadLine();

                switch (input)
                {
                case "exit":
                    return;

                case "clear":
                    Console.Clear();
                    break;

                case "":
                    break;

                default:
                    host.EmitEvent(EventsType.Core.INPUT, "USER", input);
                    break;
                }
            }
        }
Esempio n. 5
0
 private static void EmitError(ISubbleHost host, string message)
 => host.EmitEvent(LOG, "HOST", GetErrorLog(message));
Esempio n. 6
0
        public void Log(LogLevel level, string source, string message)
        {
            var log = GetLog(level, message);

            _host.EmitEvent(LOG, source, log);
        }