| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178 | 
							- /*=============================================================================
 
-   Library: CTK
 
-   Copyright (c) German Cancer Research Center,
 
-     Division of Medical and Biological Informatics
 
-   Licensed under the Apache License, Version 2.0 (the "License");
 
-   you may not use this file except in compliance with the License.
 
-   You may obtain a copy of the License at
 
-     http://www.apache.org/licenses/LICENSE-2.0
 
-   Unless required by applicable law or agreed to in writing, software
 
-   distributed under the License is distributed on an "AS IS" BASIS,
 
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
-   See the License for the specific language governing permissions and
 
-   limitations under the License.
 
- =============================================================================*/
 
- #ifndef CTKPLUGINS_H
 
- #define CTKPLUGINS_H
 
- #include <QUrl>
 
- #include <QHash>
 
- #include <QReadWriteLock>
 
-   // CTK class forward declarations
 
-   class ctkPlugin;
 
-   class ctkPluginFrameworkContext;
 
-   class ctkVersion;
 
-   class ctkVersionRange;
 
-   /**
 
-    * Here we handle all the plugins that are installed in the framework.
 
-    * Also handles load and save of bundle states to a database, so that we
 
-    * can restart the platform.
 
-    */
 
-   class ctkPlugins {
 
-   private:
 
-     /**
 
-      * Table of all installed plugins in this framework.
 
-      * Key is the plugin location.
 
-      */
 
-     QHash<QString, ctkPlugin*> plugins;
 
-     /**
 
-      * Link to framework object.
 
-      */
 
-     ctkPluginFrameworkContext* fwCtx;
 
-     /**
 
-      * Read write lock for protecting the plugins object
 
-      */
 
-     mutable QReadWriteLock pluginsLock;
 
-   public:
 
-     /**
 
-      * Create a container for all plugins in this framework.
 
-      */
 
-     ctkPlugins(ctkPluginFrameworkContext* fw);
 
-     void clear();
 
-     /**
 
-      * Install a new plugin.
 
-      *
 
-      * @param location The location to be installed
 
-      */
 
-     ctkPlugin* install(const QUrl& location, QIODevice* in);
 
-     /**
 
-      * Remove plugin registration.
 
-      *
 
-      * @param location The location to be removed
 
-      */
 
-     void remove(const QUrl& location);
 
-     /**
 
-      * Get the plugin that has the specified plugin identifier.
 
-      *
 
-      * @param id The identifier of the plugin to get.
 
-      * @return ctkPlugin or null
 
-      *         if the plugin was not found.
 
-      */
 
-     ctkPlugin* getPlugin(int id) const;
 
-     /**
 
-      * Get the plugin that has specified plugin location.
 
-      *
 
-      * @param location The location of the plugin to get.
 
-      * @return ctkPlugin or null
 
-      *         if the plugin was not found.
 
-      */
 
-     ctkPlugin* getPlugin(const QString& location) const;
 
-     /**
 
-      * Get the plugin that has specified plugin symbolic name and version.
 
-      *
 
-      * @param name The symbolic name of the plugin to get.
 
-      * @param version The plugin version of the plugin to get.
 
-      * @return ctkPlugin or null.
 
-      */
 
-     ctkPlugin* getPlugin(const QString& name, const ctkVersion& version) const;
 
-     /**
 
-      * Get all installed plugins.
 
-      *
 
-      * @return A ctkPlugin list with plugins.
 
-      */
 
-     QList<ctkPlugin*> getPlugins() const;
 
-     /**
 
-      * Get all plugins that have specified plugin symbolic name.
 
-      *
 
-      * @param name The symbolic name of plugins to get.
 
-      * @return A list of ctkPlugins.
 
-      */
 
-     QList<ctkPlugin*> getPlugins(const QString& name) const;
 
-     /**
 
-      * Get all plugins that have specified plugin symbolic name and
 
-      * version range. Result is sorted in decreasing version order.
 
-      *
 
-      * @param name The symbolic name of plugins to get.
 
-      * @param range ctkVersion range of plugins to get.
 
-      * @return A List of ctkPlugins.
 
-      */
 
-     QList<ctkPlugin*> getPlugins(const QString& name, const ctkVersionRange& range) const;
 
-     /**
 
-      * Get all plugins currently in plugin state ACTIVE.
 
-      *
 
-      * @return A List of ctkPlugins.
 
-      */
 
-     QList<ctkPlugin*> getActivePlugins() const;
 
-     /**
 
-      * Try to load any saved framework state.
 
-      * This is done by installing all saved plugins and restoring
 
-      * the saved state for each plugin. This is only
 
-      * intended to be executed during the start of the framework.
 
-      *
 
-      */
 
-     void load();
 
-     /**
 
-      * Start a list of plugins in order
 
-      *
 
-      * @param slist ctkPlugins to start.
 
-      */
 
-     void startPlugins(const QList<ctkPlugin*>& slist) const;
 
-   };
 
- #endif // CTKPLUGINS_H
 
 
  |