Some more plugin stuff, lovely commit messages ikr

This commit is contained in:
SpoinkyNL committed 2018-01-08 11:20:21 +01:00
1 parent ede07722eb
commit f7fe57676d
16 files changed
+216 -108

No files matched your search

@@ -1,16 +1,44 @@
using System;
using System.Collections.ObjectModel;
using System.Threading.Tasks;
using Artemis.Core.Events;
using Artemis.Core.Models;
using Artemis.Plugins.Interfaces;
namespace Artemis.Core.Services.Interfaces
{
public interface IPluginService : IArtemisService, IDisposable
{
Task LoadModules();
Task ReloadModule(IPlugin plugin);
bool LoadingPlugins { get; }
ReadOnlyCollection<PluginInfo> Plugins { get; }
event EventHandler<ModuleEventArgs> ModuleLoaded;
event EventHandler<ModuleEventArgs> ModuleReloaded;
/// <summary>
/// Loads all installed plugins. If plugins already loaded this will reload them all
/// </summary>
/// <returns></returns>
Task LoadPlugins();
Task ReloadPlugin(PluginInfo pluginInfo);
Task<IPluginViewModel> GetPluginViewModel(PluginInfo pluginInfo);
/// <summary>
/// Occurs when a single plugin has loaded
/// </summary>
event EventHandler<PluginEventArgs> PluginLoaded;
/// <summary>
/// Occurs when a single plugin has reloaded
/// </summary>
event EventHandler<PluginEventArgs> PluginReloaded;
/// <summary>
/// Occurs when loading all plugins has started
/// </summary>
event EventHandler StartedLoadingPlugins;
/// <summary>
/// Occurs when loading all plugins has finished
/// </summary>
event EventHandler FinishedLoadedPlugins;
}
}