Ejemplo n.º 1
0
        /// <summary>
        /// Check if all dependencies of a plugins are loaded
        /// </summary>
        /// <param name="plugin">Plugin to check</param>
        /// <returns>Returns if all plugins were loaded</returns>
        private bool AllDependenciesAvailable(IAvailablePlugin plugin)
        {
            bool allDependenciesLoaded = true;

            foreach (String dependency in plugin.Instance.getDependencies())
            {
                bool foundPlugin = false;
                foreach (AvailablePlugin loadedPlugin in _colAvailablePlugins)
                {
                    if (loadedPlugin.Instance.Name != dependency)
                        continue;

                    foundPlugin = true;
                    break;
                }

                if (foundPlugin)
                    continue;

                allDependenciesLoaded = false;
                break;
            }

            return allDependenciesLoaded;
        }
Ejemplo n.º 2
0
        private void AddPlugin(IAvailablePlugin newPlugin)
        {
            //Call the initialization sub of the plugin
            newPlugin.Instance.Initialize();

            //Add the new plugin to our collection here
            _colAvailablePlugins.Add(newPlugin);

            //Try to initialize unintialized plugins
            ReCheckUninitializedPlugins();
        }