Medical Imaging Interaction Toolkit  2016.11.0
Medical Imaging Interaction Toolkit
mitk::BaseApplication Class Reference

#include <mitkBaseApplication.h>

Inheritance diagram for mitk::BaseApplication:
Collaboration diagram for mitk::BaseApplication:

Public Member Functions

 BaseApplication (int argc, char **argv)
 
 ~BaseApplication ()
 
void initializeQt ()
 
int run () override
 
void printHelp (const std::string &name, const std::string &value)
 
void setApplicationName (const QString &name)
 
QString getApplicationName () const
 
void setOrganizationName (const QString &name)
 
QString getOrganizationName () const
 
void setOrganizationDomain (const QString &name)
 
QString getOrganizationDomain () const
 
void setSingleMode (bool singleMode)
 
bool getSingleMode () const
 
void setSafeMode (bool safeMode)
 
bool getSafeMode () const
 
void setPreloadLibraries (const QStringList &libraryBaseNames)
 
QStringList getPreloadLibraries () const
 
void setProvisioningFilePath (const QString &filePath)
 
QString getProvisioningFilePath () const
 
void setProperty (const QString &property, const QVariant &value)
 
QVariant getProperty (const QString &property) const
 

Static Public Attributes

static QString ARG_NEWINSTANCE
 
static QString ARG_CLEAN
 
static QString ARG_APPLICATION
 
static QString ARG_PRODUCT
 
static QString ARG_HOME
 
static QString ARG_STORAGE_DIR
 
static QString ARG_PLUGIN_CACHE
 
static QString ARG_PLUGIN_DIRS
 
static QString ARG_FORCE_PLUGIN_INSTALL
 
static QString ARG_PRELOAD_LIBRARY
 
static QString ARG_PROVISIONING
 
static QString ARG_DEBUG
 
static QString ARG_CONSOLELOG
 
static QString ARG_TESTPLUGIN
 
static QString ARG_TESTAPPLICATION
 
static QString ARG_NO_REGISTRY_CACHE
 
static QString ARG_NO_LAZY_REGISTRY_CACHE_LOADING
 
static QString ARG_REGISTRY_MULTI_LANGUAGE
 
static QString ARG_SPLASH_IMAGE
 
static QString ARG_XARGS
 
static QString PROP_NEWINSTANCE
 
static QString PROP_FORCE_PLUGIN_INSTALL
 
static QString PROP_NO_REGISTRY_CACHE
 
static QString PROP_NO_LAZY_REGISTRY_CACHE_LOADING
 
static QString PROP_REGISTRY_MULTI_LANGUAGE
 
static QString PROP_PRODUCT
 
static QString PROP_APPLICATION
 
static QString PROP_TESTPLUGIN
 
static QString PROP_TESTAPPLICATION
 

Protected Member Functions

void initialize (Poco::Util::Application &self) override
 
void uninitialize () override
 
int getArgc () const
 
char ** getArgv () const
 
virtual QString getCTKFrameworkStorageDir () const
 
virtual void initializeCppMicroServices ()
 
virtual QCoreApplication * getQApplication () const
 
virtual void initializeLibraryPaths ()
 
int main (const std::vector< std::string > &args) override
 
void defineOptions (Poco::Util::OptionSet &options) override
 
QSharedPointer< ctkPluginFramework > getFramework () const
 
ctkPluginContext * getFrameworkContext () const
 
QHash< QString, QVariant > getFrameworkProperties () const
 
void initializeSplashScreen (QCoreApplication *application) const
 

Detailed Description

A utility classes for starting up BlueBerry applications.

In the simplest case, a user creates an instance of this class and just calls run() which launches a CTK Plugin Framework instance and executes the default application registered by a plug-in via the org.blueberry.osgi.applications extension point.

This class contains many convenience methods to:

  • Put the application in {safe mode} which catches unhandled exceptions thrown in the Qt event loop and displays an error message
  • Put the application in {single mode} which by default sends the command line arguments to an already running instance of the same application instead of creating a second instance.
  • Add a list of library names which should be pre-loaded at application start-up, e.g. to speed up the initial launch during the caching process of the plug-in meta-data.
  • Set a custom provisioning file to start a specific set of CTK plug-ins during application start-up.
  • Set and get CTK Plugin Framework properties

The behavior can further be customized by deriving from BaseApplication and overriding specific methods, such as:

A simple but complete usage example: #include <mitkBaseApplication.h>

int main(int argc, char** argv) { mitk::BaseApplication app(argc, argv); app.setApplicationName("MyApp"); app.setOrganizationName("MyOrganization");

// Run the workbench return app.run(); }

Definition at line 82 of file mitkBaseApplication.h.

Constructor & Destructor Documentation

mitk::BaseApplication::BaseApplication ( int  argc,
char **  argv 
)

Definition at line 326 of file mitkBaseApplication.cpp.

mitk::BaseApplication::~BaseApplication ( )

Definition at line 330 of file mitkBaseApplication.cpp.

Member Function Documentation

QString mitk::BaseApplication::getApplicationName ( ) const

Definition at line 361 of file mitkBaseApplication.cpp.

Referenced by getCTKFrameworkStorageDir(), and initializeQt().

int mitk::BaseApplication::getArgc ( ) const
protected

Definition at line 579 of file mitkBaseApplication.cpp.

char ** mitk::BaseApplication::getArgv ( ) const
protected

Definition at line 580 of file mitkBaseApplication.cpp.

QString mitk::BaseApplication::getCTKFrameworkStorageDir ( ) const
protectedvirtual

Get the framework storage directory for the CTK plugin framework. This method is called in the initialize(Poco::Util::Application&) method. It must not be called without a QCoreApplications instance.

Returns
The CTK Plugin Framework storage directory.

Definition at line 581 of file mitkBaseApplication.cpp.

References ARG_NEWINSTANCE, getApplicationName(), getOrganizationName(), getSingleMode(), and qHash().

Referenced by initialize().

QSharedPointer< ctkPluginFramework > mitk::BaseApplication::getFramework ( ) const
protected

Definition at line 790 of file mitkBaseApplication.cpp.

Referenced by getFrameworkContext(), and uninitialize().

ctkPluginContext * mitk::BaseApplication::getFrameworkContext ( ) const
protected

Definition at line 795 of file mitkBaseApplication.cpp.

References framework, and getFramework().

QHash< QString, QVariant > mitk::BaseApplication::getFrameworkProperties ( ) const
protected

Get the initial properties for the CTK plugin framework.

The returned map contains the initial framework properties for initializing the CTK plugin framework. The value of specific properties may change at runtime and differ from the initial value.

Returns
The initial CTK Plugin Framework properties.

Definition at line 818 of file mitkBaseApplication.cpp.

QString mitk::BaseApplication::getOrganizationDomain ( ) const

Definition at line 395 of file mitkBaseApplication.cpp.

Referenced by initializeQt().

QString mitk::BaseApplication::getOrganizationName ( ) const

Definition at line 379 of file mitkBaseApplication.cpp.

Referenced by getCTKFrameworkStorageDir(), and initializeQt().

QStringList mitk::BaseApplication::getPreloadLibraries ( ) const

Get the list of library base names which should be pre-loaded.

Returns
A list of pre-loaded libraries.

Definition at line 434 of file mitkBaseApplication.cpp.

Referenced by initialize().

QVariant mitk::BaseApplication::getProperty ( const QString &  property) const

Definition at line 827 of file mitkBaseApplication.cpp.

Referenced by initializeCppMicroServices().

QString mitk::BaseApplication::getProvisioningFilePath ( ) const

Get the file path to the provisioning file.

Returns
The provisioning file path.

Definition at line 436 of file mitkBaseApplication.cpp.

Referenced by initialize().

QCoreApplication * mitk::BaseApplication::getQApplication ( ) const
protectedvirtual

Get the QCoreApplication object.

This method is called in the initialize(Poco::Util::Application&) method and must create a QCoreApplication instance if the global qApp variable is not initialized yet.

Returns
The current QCoreApplication instance. This method never returns null.

Definition at line 622 of file mitkBaseApplication.cpp.

References getSafeMode(), and getSingleMode().

Referenced by initializeQt().

bool mitk::BaseApplication::getSafeMode ( ) const

Definition at line 428 of file mitkBaseApplication.cpp.

Referenced by getQApplication().

bool mitk::BaseApplication::getSingleMode ( ) const
void mitk::BaseApplication::initialize ( Poco::Util::Application &  self)
overrideprotected
void mitk::BaseApplication::initializeCppMicroServices ( )
protectedvirtual

Initialize the CppMicroServices library.

The default implementation set the CppMicroServices storage path to the current ctkPluginConstants::FRAMEWORK_STORAGE property value.

This method is called in the initialize(Poco::Util::Application&) after the CTK Plugin Framework storage directory property was set.

Definition at line 612 of file mitkBaseApplication.cpp.

References getProperty(), and us::ModuleSettings::SetStoragePath().

Referenced by initialize().

void mitk::BaseApplication::initializeLibraryPaths ( )
protectedvirtual

Add plugin library search paths to the CTK Plugin Framework.

This method is called in the nitialize(Poco::Util::Application&) method after getQApplication() was called.

Definition at line 650 of file mitkBaseApplication.cpp.

Referenced by initialize().

void mitk::BaseApplication::initializeQt ( )

Initialize the Qt library such that a QCoreApplication instance is available and e.g. Qt Widgets can be created.

This is usually not called directly by the user.

Definition at line 490 of file mitkBaseApplication.cpp.

References getApplicationName(), getOrganizationDomain(), getOrganizationName(), getQApplication(), setApplicationName(), setOrganizationDomain(), and setOrganizationName().

Referenced by initialize(), and main().

void mitk::BaseApplication::initializeSplashScreen ( QCoreApplication *  application) const
protected

Definition at line 803 of file mitkBaseApplication.cpp.

References ARG_SPLASH_IMAGE.

Referenced by initialize().

int mitk::BaseApplication::main ( const std::vector< std::string > &  args)
overrideprotected

Runs the application for which the platform was started. The platform must be running.

The given argument is passed to the application being run. If it is an invalid QVariant then the command line arguments used in starting the platform, and not consumed by the platform code, are passed to the application as a QStringList.

Parameters
argumentthe argument passed to the application. May be invalid
Returns
the result of running the application
Exceptions
std::exceptionif anything goes wrong

Definition at line 683 of file mitkBaseApplication.cpp.

void mitk::BaseApplication::printHelp ( const std::string &  name,
const std::string &  value 
)

Definition at line 342 of file mitkBaseApplication.cpp.

Referenced by defineOptions().

int mitk::BaseApplication::run ( )
override

Launches the BlueBerry framework and runs the default application or the one specified in the PROP_APPLICATION framework property.

Returns
The return code of the application after it was shut down.

Definition at line 820 of file mitkBaseApplication.cpp.

Referenced by main().

void mitk::BaseApplication::setApplicationName ( const QString &  name)

Set the application name. Same as QCoreApplication::setApplicationName.

Parameters
nameThe application name.

Definition at line 352 of file mitkBaseApplication.cpp.

Referenced by initializeQt(), and main().

void mitk::BaseApplication::setOrganizationDomain ( const QString &  name)

Set the organization domain. Same as QCoreApplication::setOrganizationDomain.

Parameters
nameThe organization domain.

Definition at line 386 of file mitkBaseApplication.cpp.

Referenced by initializeQt().

void mitk::BaseApplication::setOrganizationName ( const QString &  name)

Set the organization name. Same as QCoreApplication::setOrganizationName.

Parameters
nameThe organization name.

Definition at line 370 of file mitkBaseApplication.cpp.

Referenced by initializeQt(), and main().

void mitk::BaseApplication::setPreloadLibraries ( const QStringList &  libraryBaseNames)

Set a list of library names or absoulte file paths which should be loaded at application start-up. The name and file path may contain a library version appended at the end and separated by a '$' charactger.

For example liborg_mitk_gui_qt_common$1.0. Platform specific suffixes are appended automatically.

Parameters
libraryBaseNamesA list of library base names.

Definition at line 429 of file mitkBaseApplication.cpp.

Referenced by main().

void mitk::BaseApplication::setProperty ( const QString &  property,
const QVariant &  value 
)

Definition at line 826 of file mitkBaseApplication.cpp.

Referenced by main().

void mitk::BaseApplication::setProvisioningFilePath ( const QString &  filePath)

Set the path to the provisioning file.

By default a provisioning file located in the same directory as the executable and named <executable>.provisioning is loaded if it exists. To disable parsing of provisioning files, use an empty string as the argument. Use a null QString (QString::null) to reset to the default behaviour.

Parameters
filePathAn absolute file path to the provisioning file.

Definition at line 435 of file mitkBaseApplication.cpp.

Referenced by main().

void mitk::BaseApplication::setSafeMode ( bool  safeMode)

Put the application in safe mode, catching exceptions from the Qt event loop.

Parameters
safeMode

Definition at line 410 of file mitkBaseApplication.cpp.

References getSingleMode().

void mitk::BaseApplication::setSingleMode ( bool  singleMode)

Put the application in single mode, which by default only allows a single instance of the application to be created.

Calling this method after run() has been called has no effect.

Parameters
singleMode

Definition at line 402 of file mitkBaseApplication.cpp.

Referenced by main().

void mitk::BaseApplication::uninitialize ( )
overrideprotected

Definition at line 565 of file mitkBaseApplication.cpp.

References getFramework().

Member Data Documentation

QString mitk::BaseApplication::ARG_APPLICATION
static

Definition at line 89 of file mitkBaseApplication.h.

Referenced by defineOptions().

QString mitk::BaseApplication::ARG_CLEAN
static

Definition at line 88 of file mitkBaseApplication.h.

Referenced by defineOptions().

QString mitk::BaseApplication::ARG_CONSOLELOG
static

Definition at line 100 of file mitkBaseApplication.h.

Referenced by defineOptions().

QString mitk::BaseApplication::ARG_DEBUG
static

Definition at line 98 of file mitkBaseApplication.h.

Referenced by defineOptions().

QString mitk::BaseApplication::ARG_FORCE_PLUGIN_INSTALL
static

Definition at line 95 of file mitkBaseApplication.h.

Referenced by defineOptions().

QString mitk::BaseApplication::ARG_HOME
static

Definition at line 91 of file mitkBaseApplication.h.

QString mitk::BaseApplication::ARG_NEWINSTANCE
static

Definition at line 87 of file mitkBaseApplication.h.

Referenced by defineOptions(), and getCTKFrameworkStorageDir().

QString mitk::BaseApplication::ARG_NO_LAZY_REGISTRY_CACHE_LOADING
static

Definition at line 105 of file mitkBaseApplication.h.

Referenced by defineOptions().

QString mitk::BaseApplication::ARG_NO_REGISTRY_CACHE
static

Definition at line 104 of file mitkBaseApplication.h.

Referenced by defineOptions().

QString mitk::BaseApplication::ARG_PLUGIN_CACHE
static

Definition at line 93 of file mitkBaseApplication.h.

QString mitk::BaseApplication::ARG_PLUGIN_DIRS
static

Definition at line 94 of file mitkBaseApplication.h.

QString mitk::BaseApplication::ARG_PRELOAD_LIBRARY
static

Definition at line 96 of file mitkBaseApplication.h.

Referenced by defineOptions().

QString mitk::BaseApplication::ARG_PRODUCT
static

Definition at line 90 of file mitkBaseApplication.h.

Referenced by defineOptions().

QString mitk::BaseApplication::ARG_PROVISIONING
static

Definition at line 97 of file mitkBaseApplication.h.

Referenced by defineOptions().

QString mitk::BaseApplication::ARG_REGISTRY_MULTI_LANGUAGE
static

Definition at line 106 of file mitkBaseApplication.h.

Referenced by defineOptions().

QString mitk::BaseApplication::ARG_SPLASH_IMAGE
static

Definition at line 108 of file mitkBaseApplication.h.

Referenced by defineOptions(), and initializeSplashScreen().

QString mitk::BaseApplication::ARG_STORAGE_DIR
static

Definition at line 92 of file mitkBaseApplication.h.

Referenced by defineOptions().

QString mitk::BaseApplication::ARG_TESTAPPLICATION
static

Definition at line 102 of file mitkBaseApplication.h.

Referenced by defineOptions().

QString mitk::BaseApplication::ARG_TESTPLUGIN
static

Definition at line 101 of file mitkBaseApplication.h.

Referenced by defineOptions().

QString mitk::BaseApplication::ARG_XARGS
static

Definition at line 110 of file mitkBaseApplication.h.

Referenced by defineOptions().

QString mitk::BaseApplication::PROP_APPLICATION
static

Definition at line 121 of file mitkBaseApplication.h.

Referenced by defineOptions(), and main().

QString mitk::BaseApplication::PROP_FORCE_PLUGIN_INSTALL
static

Definition at line 115 of file mitkBaseApplication.h.

QString mitk::BaseApplication::PROP_NEWINSTANCE
static

Definition at line 114 of file mitkBaseApplication.h.

QString mitk::BaseApplication::PROP_NO_LAZY_REGISTRY_CACHE_LOADING
static

Definition at line 117 of file mitkBaseApplication.h.

QString mitk::BaseApplication::PROP_NO_REGISTRY_CACHE
static

Definition at line 116 of file mitkBaseApplication.h.

QString mitk::BaseApplication::PROP_PRODUCT
static

Definition at line 120 of file mitkBaseApplication.h.

Referenced by defineOptions(), and main().

QString mitk::BaseApplication::PROP_REGISTRY_MULTI_LANGUAGE
static

Definition at line 118 of file mitkBaseApplication.h.

QString mitk::BaseApplication::PROP_TESTAPPLICATION
static

Definition at line 123 of file mitkBaseApplication.h.

Referenced by defineOptions().

QString mitk::BaseApplication::PROP_TESTPLUGIN
static

Definition at line 122 of file mitkBaseApplication.h.

Referenced by defineOptions().


The documentation for this class was generated from the following files: