public PlanCalculator( IPluginDiscoverer discoverer, Predicate<IPluginInfo> isPluginRunning ) { _discoverer = discoverer; _mappingArray = new List<PluginData>(); _mappingDic = new Dictionary<IPluginInfo, PluginData>(); IsPluginRunning = isPluginRunning; }
public PlanCalculator(IPluginDiscoverer discoverer, Predicate <IPluginInfo> isPluginRunning) { _discoverer = discoverer; _mappingArray = new List <PluginData>(); _mappingDic = new Dictionary <IPluginInfo, PluginData>(); IsPluginRunning = isPluginRunning; }
/// <summary> /// Searches for plugins in the specified path, and loads /// any plugins that are found into a registry. /// </summary> /// <param name="p_pftFactory">The factory to use to create <see cref="Plugin"/>s.</param> /// <param name="p_pdvDiscoverer">The discoverer to use to search for plugins.</param> /// <returns>A registry containing all of the discovered plugin formats.</returns> public static PluginRegistry DiscoverManagedPlugins(IPluginFactory p_pftFactory, IPluginDiscoverer p_pdvDiscoverer) { Trace.TraceInformation("Discovering Managed Plugins..."); Trace.Indent(); PluginRegistry pgrRegistry = new PluginRegistry(p_pftFactory); if (p_pdvDiscoverer != null) foreach (string strPlugin in p_pdvDiscoverer.FindPlugins()) { Trace.TraceInformation("Found: {0}", strPlugin); if (pgrRegistry.RegisterPlugin(strPlugin)) { Trace.Indent(); Trace.TraceInformation("Registered."); Trace.Unindent(); } } Trace.Unindent(); return pgrRegistry; }
/// <summary> /// Determines if the given path points at a plugin. /// </summary> /// <param name="p_strPath">The path to the file to be idecntified.</param> /// <returns><c>true</c> if the given path represents a plugin file; /// <c>false</c> otherwise.</returns> public bool IsPlugin(string p_strPath) { if (m_pdvDiscoverer == null) m_pdvDiscoverer = GameMode.GetPluginDiscoverer(); return m_pdvDiscoverer.IsPlugin(p_strPath); }
public bool UpdatePlugin(Guid pluginId, bool runnerDisabled, ISolvedPluginConfiguration config, IEnumerable <RequirementLayer> layers, IPluginDiscoverer d) { SolvedConfigStatus s; Info = d.FindPlugin(pluginId); bool isAvailable = !(Info == null || Info.HasError || RunningError != null); if (isAvailable) { if (runnerDisabled) { s = SolvedConfigStatus.Disabled; } else { s = config.GetStatus(pluginId); foreach (RequirementLayer l in layers) { PluginRequirement r = l.PluginRequirements.Find(pluginId); if (r != null && (int)r.Requirement > (int)s) { s = (SolvedConfigStatus)r.Requirement; } } } } else { s = SolvedConfigStatus.Disabled; } return(DoUpdateStatus(isAvailable, s)); }
public bool UpdateService(string serviceFullName, bool runnerDisabled, IEnumerable <RequirementLayer> layers, IPluginDiscoverer d) { Debug.Assert(RunningError == null, "A service can not be in running error."); SolvedConfigStatus s; Info = d.FindService(serviceFullName); bool isAvailable = !(Info == null || Info.HasError); if (isAvailable) { if (runnerDisabled) { s = SolvedConfigStatus.Disabled; } else { s = SolvedConfigStatus.Optional; foreach (RequirementLayer l in layers) { ServiceRequirement r = l.ServiceRequirements.Find(serviceFullName); if (r != null && (int)r.Requirement > (int)s) { s = (SolvedConfigStatus)r.Requirement; } } } } else { s = SolvedConfigStatus.Disabled; } return(DoUpdateStatus(isAvailable, s)); }
/// <summary> /// Searches for plugins in the specified path, and loads /// any plugins that are found into a registry. /// </summary> /// <param name="p_pftFactory">The factory to use to create <see cref="Plugin"/>s.</param> /// <param name="p_pdvDiscoverer">The discoverer to use to search for plugins.</param> /// <returns>A registry containing all of the discovered plugin formats.</returns> public static PluginRegistry DiscoverManagedPlugins(IPluginFactory p_pftFactory, IPluginDiscoverer p_pdvDiscoverer) { Trace.TraceInformation("Discovering Managed Plugins..."); Trace.Indent(); PluginRegistry pgrRegistry = new PluginRegistry(p_pftFactory); if (p_pdvDiscoverer != null) { foreach (string strPlugin in p_pdvDiscoverer.FindPlugins()) { Trace.TraceInformation("Found: {0}", strPlugin); if (pgrRegistry.RegisterPlugin(strPlugin)) { Trace.Indent(); Trace.TraceInformation("Registered."); Trace.Unindent(); } } } Trace.Unindent(); return(pgrRegistry); }