Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
02/28/08 18:02:45 (16 years ago)
Author:
gkronber
Message:
  • refactored pluginInfrastructure
  • fixed #8
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.PluginInfrastructure/PluginManager.cs

    r2 r29  
    5353    }
    5454
    55     public List<PluginInfo> InstalledPlugins {
     55    public ICollection<PluginInfo> InstalledPlugins {
    5656      get { return remoteLoader.InstalledPlugins; }
    5757    }
    5858
    59     public ApplicationInfo[] InstalledApplications {
     59    public ICollection<PluginInfo> DisabledPlugins {
     60      get { return remoteLoader.DisabledPlugins; }
     61    }
     62
     63    public ICollection<PluginInfo> ActivePlugins {
     64      get { return remoteLoader.ActivePlugins; }
     65    }
     66
     67    public ICollection<ApplicationInfo> InstalledApplications {
    6068      get { return remoteLoader.InstalledApplications; }
    6169    }
    6270
    63     private PluginInfo[] loadedPlugins;
    64     public PluginInfo[] LoadedPlugins {
     71    private ICollection<PluginInfo> loadedPlugins;
     72    public ICollection<PluginInfo> LoadedPlugins {
    6573      get { return loadedPlugins; }
    6674      internal set { loadedPlugins = value; }
     
    7280    public void Initialize() {
    7381      NotifyListeners(PluginManagerAction.Initializing, "-");
    74 
    7582      AppDomainSetup setup = AppDomain.CurrentDomain.SetupInformation;
    7683      setup.PrivateBinPath = pluginDir;
    7784      pluginDomain = AppDomain.CreateDomain("plugin domain", null, setup);
    78 
    7985      remoteLoader = (Loader)pluginDomain.CreateInstanceAndUnwrap("HeuristicLab.PluginInfraStructure", "HeuristicLab.PluginInfrastructure.Loader");
    80 
    8186      remoteLoader.PluginAction += delegate(object sender, PluginManagerActionEventArgs args) { if(Action != null) Action(this, args); };
    8287      remoteLoader.Init();
    83 
    8488      NotifyListeners(PluginManagerAction.Initialized, "-");
    8589    }
     
    99103      setup.PrivateBinPath = pluginDir;
    100104      AppDomain applicationDomain = AppDomain.CreateDomain(appInfo.Name + " AppDomain", null, setup);
    101      
     105
    102106      Runner remoteRunner = (Runner)applicationDomain.CreateInstanceAndUnwrap("HeuristicLab.PluginInfrastructure", "HeuristicLab.PluginInfrastructure.Runner");
    103107      NotifyListeners(PluginManagerAction.Initializing, "All plugins");
     
    116120    public List<PluginInfo> GetDependentPlugins(PluginInfo pluginInfo) {
    117121      List<PluginInfo> mergedList = new List<PluginInfo>();
    118       InstalledPlugins.ForEach(delegate(PluginInfo plugin) {
     122      foreach(PluginInfo plugin in InstalledPlugins) {
    119123        if(plugin.Dependencies.Contains(pluginInfo)) {
    120124          if(!mergedList.Contains(plugin)) {
     
    125129          GetDependentPlugins(plugin).ForEach(delegate(PluginInfo dependentPlugin) {
    126130            if(!mergedList.Contains(dependentPlugin)) {
    127               mergedList.Add(dependentPlugin);             
     131              mergedList.Add(dependentPlugin);
    128132            }
    129133          });
    130134        }
    131       });
    132      
     135      }
    133136      return mergedList;
    134137    }
Note: See TracChangeset for help on using the changeset viewer.