ExtensionSystem Namespace | Extending Qt Creator Manual
Description: The ExtensionSystem namespace provides classes that belong to the core plugin system.

- Extending Qt Creator Manual
- ExtensionSystem Namespace
- Extending Qt Creator Manual 15.0.0

# ExtensionSystem Namespace

The ExtensionSystem namespace provides classes that belong to the core plugin system. More...

Header: | `#include <ExtensionSystem>`

## Classes

class | IPlugin
struct | PluginArgumentDescription
struct | PluginDependency
class | PluginDetailsView
class | PluginErrorView
class | PluginManager
class | PluginSpec
class | PluginView

## Functions

Result | invoke(QObject *target, const char *slot)
Result | invoke(QObject *target, const char *slot, const T0 &t0)
Result | invoke(QObject *target, const char *slot, const T0 &t0, const T1 &t1)
Result | invoke(QObject *target, const char *slot, const T0 &t0, const T1 &t1, const T2 &t2)
QObject * | shutdownGuard()

## Detailed Description

The basic extension system contains the plugin manager and its supporting classes, and the IPlugin interface that must be implemented by plugin providers.

## Classes

### class IPlugin

The IPlugin class is an abstract base class that must be implemented once for each plugin. More...

### class PluginArgumentDescription

The PluginArgumentDescriptions class holds a list of descriptions of command line arguments that a plugin processes. More...

### class PluginDependency

The PluginDependency class contains the name and required compatible version number of a plugin's dependency. More...

### class PluginDetailsView

The PluginDetailsView class implements a widget that displays the contents of a PluginSpec. More...

### class PluginErrorView

The PluginErrorView class implements a widget that displays the state and error message of a PluginSpec. More...

### class PluginManager

The PluginManager class implements the core plugin system that manages the plugins, their life cycle, and their registered objects. More...

### class PluginSpec

The PluginSpec class contains the information of the plugin's embedded meta data and information about the plugin's current state. More...

### class PluginView

The PluginView class implements a widget that shows a list of all plugins and their state. More...

## Function Documentation

### template <typename Result> Result ExtensionSystem::invoke(QObject *target, const char *slot)

Invokes slot on target by name via Qt's meta method system.

Returns the result of the meta call.

### template <typename Result, typename T0> Result ExtensionSystem::invoke(QObject *target, const char *slot, const T0 &t0)

Invokes slot on target with argument t0 by name via Qt's meta method system.

Returns the result of the meta call.

### template <typename Result, typename T0, typename T1> Result ExtensionSystem::invoke(QObject *target, const char *slot, const T0 &t0, const T1 &t1)

Invokes slot on target with arguments t0 and t1 by name via Qt's meta method system.

Returns the result of the meta call.

### template <typename Result, typename T0, typename T1, typename T2> Result ExtensionSystem::invoke(QObject *target, const char *slot, const T0 &t0, const T1 &t1, const T2 &t2)

Invokes slot on target with arguments t0, t1 and t2 by name via Qt's meta method system.

Returns the result of the meta call.

### QObject *ExtensionSystem::shutdownGuard()

Returns an object that can be used as the parent for objects that should be destroyed just at the end of the applications lifetime. The object is destroyed after all plugins' aboutToShutdown methods have finished, just before the plugins are deleted.

Only use this from the application's main thread.

See also ExtensionSystem::IPlugin::aboutToShutdown().