private void EmitEvent(string type, SCPayload payload) { _host.EmitEvent( type, EventSourceName, payload); }
/// <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)); }
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); } }
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; } } }
private static void EmitError(ISubbleHost host, string message) => host.EmitEvent(LOG, "HOST", GetErrorLog(message));
public void Log(LogLevel level, string source, string message) { var log = GetLog(level, message); _host.EmitEvent(LOG, source, log); }