| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 | 
							- /*=============================================================================
 
-   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>
 
- #include <QMutex>
 
- #include <QSharedPointer>
 
- // CTK class forward declarations
 
- class ctkPlugin;
 
- class ctkPluginFrameworkContext;
 
- class ctkVersion;
 
- class ctkVersionRange;
 
- /**
 
-  * \ingroup PluginFramework
 
-  *
 
-  * 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, QSharedPointer<ctkPlugin> > plugins;
 
-   /**
 
-    * Link to framework object.
 
-    */
 
-   ctkPluginFrameworkContext* fwCtx;
 
-   /**
 
-    * Read write lock for protecting the plugins object
 
-    */
 
-   mutable QReadWriteLock pluginsLock;
 
-   /**
 
-    * Lock for protecting this object.
 
-    */
 
-   QMutex objectLock;
 
-   void checkIllegalState() const;
 
- 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
 
-    */
 
-   QSharedPointer<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.
 
-    */
 
-   QSharedPointer<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.
 
-    */
 
-   QSharedPointer<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.
 
-    */
 
-   QSharedPointer<ctkPlugin> getPlugin(const QString& name, const ctkVersion& version) const;
 
-   /**
 
-    * Get all installed plugins.
 
-    *
 
-    * @return A ctkPlugin list with plugins.
 
-    */
 
-   QList<QSharedPointer<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<QSharedPointer<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
 
 
  |