private void LoadPlugins() { string path = P2pProxyApp.ExeDir + "/plugins"; if (Directory.Exists(path)) { foreach (var file in Directory.GetFiles(path, "*.dll")) { IPluginProxy plugin = LoadPlugin(file); if (plugin != null) { _plugins.Add(plugin); } } } path = P2pProxyApp.ApplicationDataFolder + "/plugins"; if (Directory.Exists(path)) { foreach (var file in Directory.GetFiles(path)) { IPluginProxy plugin = LoadPlugin(file); if (plugin != null) { _plugins.Add(plugin); } } } }
void plugin_Logger(IPluginProxy sender, string message) { if (sender != null) { P2pProxyApp.Log.Write(string.Format("[{0}({2})]: {1}", sender.Id, message, sender.GetType().Module), TypeMessage.Info); } }
PluginConfigAccessor GetConfigAccessor(INamedVersionedUniqueId idEdited) { Debug.Assert(idEdited != null); Debug.Assert(_contextObject != null); // Switch from whatever INamedVersionedUniqueId is to IPluginProxy... if it is loaded. IPluginProxy p = idEdited as IPluginProxy; if (p == null) { p = (IPluginProxy)_host.FindLoadedPlugin(idEdited.UniqueId, true); if (p == null) { _configAccessors.Remove(idEdited); return(null); } } PluginConfigAccessor result; if (!_configAccessors.TryGetValue(p, out result)) { result = new PluginConfigAccessor(p, _config.Extended, _contextObject); _configAccessors.Add(p, result); } return(result); }
public void Init(string host) { ThisClass = this; _host = host; _content = new FavouriteContentProvider(_host); _menus = new List<string> {SETTINGS_MENU, ABOUT_MENU}; RaiseLogger("Плагин инициализирован"); }
public ToolboxModel(IServer server, IServer localServer, IPluginProxy pluginProxy) { VerifyArgument.AreNotNull(new Dictionary <string, object> { { "server", server }, { "localServer", localServer } }); _localServer = localServer; _pluginProxy = pluginProxy; Server = server; }
public void Init(string host) { ThisClass = this; _host = host; _content = new FavouriteContentProvider(_host); _menus = new List <string> { SETTINGS_MENU, ABOUT_MENU }; RaiseLogger("Плагин инициализирован"); }
public BeSafeFileSystemImpl(string path, IPluginProxy pluginRegulator) { if (!Directory.Exists(path)) { throw new ArgumentException(nameof(path)); } this.path = path; _pluginRegulator = pluginRegulator; }
public PluginContainer(ItemContainer parent, P2pProxyDevice device, IPluginProxy plugin) : base(parent, device) { _plugin = plugin; Id = _plugin.Id; Title = _plugin.Name; if (parent != null) { ParentId = parent.GetIds(); } Type = MediaType.Video; }
private void ConfigureConfigAccessors(IPluginProxy p) { Type pType = p.RealPluginObject.GetType(); foreach (IPluginConfigAccessorInfo e in p.PluginKey.EditorsInfo) { Debug.Assert(e.Plugin == p.PluginKey); if (e.IsConfigurationPropertyValid) { // The PluginConfigAccessor may be null. PluginConfigAccessor a = GetConfigAccessor(e.EditedSource); PropertyInfo pEdited = pType.GetProperty(e.ConfigurationPropertyName); Debug.Assert(pEdited != null); pEdited.SetValue(p.RealPluginObject, a, null); } } }
public SkinBasicConfigViewModel( AppViewModel app ) : base(app.ConfigManager) { DisplayName = R.SkinBasicConfig; _app = app; _app.PluginRunner.PluginHost.StatusChanged += ( o, e ) => { if( e.PluginProxy.PluginKey.PluginId == _skinId && _skinPlugin == null ) { _skinPlugin = _app.PluginRunner.PluginHost.FindLoadedPlugin( _skinId, true ); _config = _app.ConfigContainer.GetObjectPluginConfig( _app.CivikeyHost.Context.ConfigManager.UserConfiguration, _skinPlugin ); } NotifyOfPropertyChange( () => ActivateSkin ); NotifyOfPropertyChange( () => EnableAutoHide ); NotifyOfPropertyChange( () => AutoHideTimeOut ); }; }
private IPluginProxy LoadPlugin(string path) { try { Assembly asm = Assembly.LoadFile(path); var type = asm.GetTypes().FirstOrDefault(type1 => type1.GetInterface("IPluginProxy") != null); if (type != null) { IPluginProxy plugin = (IPluginProxy)asm.CreateInstance(type.FullName); { if (plugin != null) { return(plugin); } } } return(null); } catch (Exception ex) { P2pProxyApp.Log.Write(string.Format("[{0}] {1}", path, ex.Message), TypeMessage.Error); return(null); } }
/// <summary> /// Initializes a new instance of a <see cref="PluginStatusChangedEventArgs"/>. /// </summary> /// <param name="previous">The previous running status.</param> /// <param name="current">The plugin proxy.</param> public PluginStatusChangedEventArgs(RunningStatus previous, IPluginProxy pluginProxy) { Previous = previous; PluginProxy = pluginProxy; }
void InitializePlugin() { _skinPlugin = _app.PluginRunner.PluginHost.FindLoadedPlugin( _skinId, true ); if( _skinPlugin != null ) _config = _app.ConfigContainer.GetObjectPluginConfig( _app.CivikeyHost.Context.ConfigManager.UserConfiguration, _skinPlugin ); }
/// <summary> /// Checks whether a plugin is running or not. /// </summary> /// <param name="key">Plugin identifier.</param> /// <returns>True if the plugin is loaded and is currently running.</returns> public static bool IsPluginRunning(this IPluginHost host, Guid key) { IPluginProxy p = host.FindLoadedPlugin(key, false); return(p != null && host.IsPluginRunning(p.PluginKey)); }
void plugin_Logger(IPluginProxy sender, string message) { if (sender != null) P2pProxyApp.Log.Write(string.Format("[{0}({2})]: {1}", sender.Id, message, sender.GetType().Module), TypeMessage.Info); }
public PluginContainer(ItemContainer parent, P2pProxyDevice device, IPluginProxy plugin) : base(parent, device) { _plugin = plugin; Id = _plugin.Id; Title = _plugin.Name; if (parent != null) ParentId = parent.GetIds(); Type = MediaType.Video; }
void ConfigurePlugin(IPluginProxy p) { _config.Extended.Container.Ensure(p); ConfigureConfigAccessors(p); }
void InitializePlugin() { bool info = _pluginInfo == null; bool plugin = _plugin == null; _pluginInfo = _pluginInfo ?? _app.PluginRunner.Discoverer.FindPlugin( _editedPluginId ); _plugin = _plugin ?? _app.PluginRunner.PluginHost.FindLoadedPlugin( _editedPluginId, true ); if( _plugin != null ) { _config = _app.ConfigContainer.GetObjectPluginConfig( _app.CivikeyHost.Context.ConfigManager.UserConfiguration, _plugin ); Debug.Assert( _config != null ); } if( info && _pluginInfo != null ) OnPluginDiscovered(); if( plugin && _plugin != null ) OnPluginLoaded(); NotifyOfPropertiesChange(); }
private void ConfigureConfigAccessors( IPluginProxy p ) { Type pType = p.RealPluginObject.GetType(); foreach( IPluginConfigAccessorInfo e in p.PluginKey.EditorsInfo ) { Debug.Assert( e.Plugin == p.PluginKey ); if( e.IsConfigurationPropertyValid ) { // The PluginConfigAccessor may be null. PluginConfigAccessor a = GetConfigAccessor( e.EditedSource ); PropertyInfo pEdited = pType.GetProperty( e.ConfigurationPropertyName ); Debug.Assert( pEdited != null ); pEdited.SetValue( p.RealPluginObject, a, null ); } } }
public void Dispose() { RaiseLogger("Уничтожение плагина"); ThisClass = null; }
/// <summary> /// Initializes a new instance of a <see cref="PluginStatusChangedEventArgs"/>. /// </summary> /// <param name="previous">The previous running status.</param> /// <param name="current">The plugin proxy.</param> public PluginStatusChangedEventArgs( RunningStatus previous, IPluginProxy pluginProxy ) { Previous = previous; PluginProxy = pluginProxy; }
public void Dispose() { RaiseLogger("Уничтожение плагина"); ThisClass = null; }