CTK  0.1.0
The Common Toolkit is a community effort to provide support code for medical image analysis, surgical navigation, and related projects.
ctkPluginFrameworkLauncher.h
Go to the documentation of this file.
1 /*=============================================================================
2 
3  Library: CTK
4 
5  Copyright (c) German Cancer Research Center,
6  Division of Medical and Biological Informatics
7 
8  Licensed under the Apache License, Version 2.0 (the "License");
9  you may not use this file except in compliance with the License.
10  You may obtain a copy of the License at
11 
12  http://www.apache.org/licenses/LICENSE-2.0
13 
14  Unless required by applicable law or agreed to in writing, software
15  distributed under the License is distributed on an "AS IS" BASIS,
16  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  See the License for the specific language governing permissions and
18  limitations under the License.
19 
20 =============================================================================*/
21 
22 #ifndef CTKPLUGINFRAMEWORKLAUNCHER_H
23 #define CTKPLUGINFRAMEWORKLAUNCHER_H
24 
25 #include <QString>
26 #include <QScopedPointer>
27 
28 #include <ctkPluginFrameworkExport.h>
29 #include "ctkPlugin.h"
31 
32 class ctkPluginFramework;
33 class ctkPluginFrameworkLauncherPrivate;
34 
35 class QRunnable;
36 
45 class CTK_PLUGINFW_EXPORT ctkPluginFrameworkLauncher
46 {
47 public:
48 
49  // System properties
50  static const QString PROP_USER_HOME; // = "user.home";
51  static const QString PROP_USER_DIR; // = "user.dir";
52 
53  // Framework properties
54  static const QString PROP_PLUGINS; // = "ctk.plugins";
55  static const QString PROP_PLUGINS_START_OPTIONS; // = "ctk.plugins.startOptions";
56  static const QString PROP_DEBUG; // = "ctk.debug";
57  static const QString PROP_DEV; // = "ctk.dev";
58  static const QString PROP_CONSOLE; // = "ctk.console";
59  static const QString PROP_OS; // = "ctk.os";
60  static const QString PROP_ARCH; // = "ctk.arch";
61 
62  static const QString PROP_NOSHUTDOWN; // = "ctk.noShutdown";
63  static const QString PROP_IGNOREAPP; // = "ctk.ignoreApp";
64 
65  static const QString PROP_INSTALL_AREA; // = "ctk.install.area";
66  static const QString PROP_CONFIG_AREA; // = "ctk.configuration.area";
67  static const QString PROP_SHARED_CONFIG_AREA; // = "ctk.sharedConfiguration.area";
68  static const QString PROP_INSTANCE_AREA; // = "ctk.instance.area";
69  static const QString PROP_USER_AREA; // = "ctk.user.area";
70  static const QString PROP_HOME_LOCATION_AREA; // = "ctk.home.location";
71 
72 
73  static const QString PROP_CONFIG_AREA_DEFAULT; // = "ctk.configuration.area.default";
74  static const QString PROP_INSTANCE_AREA_DEFAULT; // = "ctk.instance.area.default";
75  static const QString PROP_USER_AREA_DEFAULT; // = "ctk.user.area.default";
76 
77  static const QString PROP_EXITCODE; // = "ctk.exitcode";
78  static const QString PROP_EXITDATA; // = "ctk.exitdata";
79  static const QString PROP_CONSOLE_LOG; // = "ctk.consoleLog";
80 
81  static const QString PROP_ALLOW_APPRELAUNCH; // = "ctk.allowAppRelaunch";
82  static const QString PROP_APPLICATION_LAUNCHDEFAULT; // = "ctk.application.launchDefault";
83 
84  static const QString PROP_OSGI_RELAUNCH; // = "ctk.pluginfw.relaunch";
85 
86 
99  static void setFrameworkProperties(const ctkProperties& props);
100 
114  static QVariant run(QRunnable* endSplashHandler = NULL, const QVariant& argument = QVariant());
115 
128  static QVariant run(const QVariant& argument);
129 
130 
142  static ctkPluginContext* startup(QRunnable* endSplashHandler);
143 
144 
162  static void shutdown();
163 
164 
184  static long install(const QString& symbolicName, ctkPluginContext* context = 0);
185 
209  static bool start(const QString& symbolicName = QString(),
210  ctkPlugin::StartOptions options = ctkPlugin::START_ACTIVATION_POLICY,
211  ctkPluginContext* context = 0);
212 
231  static bool stop(const QString& symbolicName = QString(),
232  ctkPlugin::StopOptions options = 0, ctkPluginContext* context = 0);
233 
242  static void resolve(const QSharedPointer<ctkPlugin>& plugin);
243 
250  static void resolve();
251 
258  static ctkPluginContext* getPluginContext();
259 
266  static QSharedPointer<ctkPluginFramework> getPluginFramework();
267 
277  static void appendPathEnv(const QString& path);
278 
291  static void addSearchPath(const QString& searchPath, bool addToPathEnv = true);
292 
305  static QString getPluginPath(const QString& symbolicName);
306 
317  static QStringList getPluginSymbolicNames(const QString& searchPath);
318 
319 private:
320 
321  static const QScopedPointer<ctkPluginFrameworkLauncherPrivate> d;
322 
323  Q_DISABLE_COPY(ctkPluginFrameworkLauncher)
324 };
325 
326 #endif // CTKPLUGINFRAMEWORKLAUNCHER_H
ctkPluginFrameworkLauncher::PROP_CONSOLE
static const QString PROP_CONSOLE
Definition: ctkPluginFrameworkLauncher.h:58
ctkPluginFrameworkLauncher::PROP_SHARED_CONFIG_AREA
static const QString PROP_SHARED_CONFIG_AREA
Definition: ctkPluginFrameworkLauncher.h:67
ctkPluginFrameworkLauncher::PROP_OSGI_RELAUNCH
static const QString PROP_OSGI_RELAUNCH
Definition: ctkPluginFrameworkLauncher.h:84
ctkPluginFrameworkLauncher::PROP_EXITDATA
static const QString PROP_EXITDATA
Definition: ctkPluginFrameworkLauncher.h:78
ctkPluginContext
Definition: ctkPluginContext.h:98
ctkPluginFrameworkLauncher::PROP_ALLOW_APPRELAUNCH
static const QString PROP_ALLOW_APPRELAUNCH
Definition: ctkPluginFrameworkLauncher.h:81
ctkPlugin.h
ctkPluginFrameworkLauncher::PROP_CONFIG_AREA_DEFAULT
static const QString PROP_CONFIG_AREA_DEFAULT
Definition: ctkPluginFrameworkLauncher.h:73
ctkWrapPythonQt.options
options
Definition: ctkWrapPythonQt.py:229
ctkPluginFrameworkLauncher::PROP_OS
static const QString PROP_OS
Definition: ctkPluginFrameworkLauncher.h:59
ctkPluginFrameworkLauncher::PROP_IGNOREAPP
static const QString PROP_IGNOREAPP
Definition: ctkPluginFrameworkLauncher.h:63
ctkPluginFrameworkLauncher::PROP_ARCH
static const QString PROP_ARCH
Definition: ctkPluginFrameworkLauncher.h:60
ctkPluginFrameworkLauncher
Definition: ctkPluginFrameworkLauncher.h:45
ctkPluginFrameworkLauncher::PROP_EXITCODE
static const QString PROP_EXITCODE
Definition: ctkPluginFrameworkLauncher.h:77
ctkPluginFrameworkLauncher::PROP_PLUGINS
static const QString PROP_PLUGINS
Definition: ctkPluginFrameworkLauncher.h:54
ctkPluginFrameworkLauncher::PROP_CONSOLE_LOG
static const QString PROP_CONSOLE_LOG
Definition: ctkPluginFrameworkLauncher.h:79
ctkPlugin::START_ACTIVATION_POLICY
@ START_ACTIVATION_POLICY
Definition: ctkPlugin.h:207
ctkPluginFrameworkLauncher::PROP_USER_DIR
static const QString PROP_USER_DIR
Definition: ctkPluginFrameworkLauncher.h:51
ctkPluginFrameworkLauncher::PROP_INSTANCE_AREA
static const QString PROP_INSTANCE_AREA
Definition: ctkPluginFrameworkLauncher.h:68
ctkPluginFrameworkLauncher::PROP_CONFIG_AREA
static const QString PROP_CONFIG_AREA
Definition: ctkPluginFrameworkLauncher.h:66
QHash
Definition: ctkCmdLineModuleFrontend.h:29
ctkPluginFrameworkLauncher::PROP_USER_HOME
static const QString PROP_USER_HOME
Definition: ctkPluginFrameworkLauncher.h:50
ctkPluginFrameworkLauncher::PROP_DEV
static const QString PROP_DEV
Definition: ctkPluginFrameworkLauncher.h:57
ctkPluginFrameworkLauncher::PROP_DEBUG
static const QString PROP_DEBUG
Definition: ctkPluginFrameworkLauncher.h:56
ctkPluginFrameworkLauncher::PROP_APPLICATION_LAUNCHDEFAULT
static const QString PROP_APPLICATION_LAUNCHDEFAULT
Definition: ctkPluginFrameworkLauncher.h:82
ctkPluginFrameworkLauncher::PROP_INSTALL_AREA
static const QString PROP_INSTALL_AREA
Definition: ctkPluginFrameworkLauncher.h:65
ctkPluginFrameworkLauncher::PROP_NOSHUTDOWN
static const QString PROP_NOSHUTDOWN
Definition: ctkPluginFrameworkLauncher.h:62
ctkPluginFramework
Definition: ctkPluginFramework.h:45
ctkPluginFramework_global.h
ctkPluginFrameworkLauncher::PROP_USER_AREA
static const QString PROP_USER_AREA
Definition: ctkPluginFrameworkLauncher.h:69
ctkPluginFrameworkLauncher::PROP_INSTANCE_AREA_DEFAULT
static const QString PROP_INSTANCE_AREA_DEFAULT
Definition: ctkPluginFrameworkLauncher.h:74
ctkPluginFrameworkLauncher::PROP_PLUGINS_START_OPTIONS
static const QString PROP_PLUGINS_START_OPTIONS
Definition: ctkPluginFrameworkLauncher.h:55
ctkPluginFrameworkLauncher::PROP_HOME_LOCATION_AREA
static const QString PROP_HOME_LOCATION_AREA
Definition: ctkPluginFrameworkLauncher.h:70
ctkPluginFrameworkLauncher::PROP_USER_AREA_DEFAULT
static const QString PROP_USER_AREA_DEFAULT
Definition: ctkPluginFrameworkLauncher.h:75