All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages



MIRA uses shared libraries to achieve a plugin mechanism, where each plugin is a shared library, that can be loaded dynamically at runtime. This is done by the class factory whenever a class is instantiated that is located in a library not yet loaded into the process of the current application.

The plugin concept enables high extensibility and software modularity. Nearly all MIRA applications can be extended using plugins. The different kinds of plugins are described in the following sections.


Software modules that fulfill a single task like:

are more or less independent pieces. These modules are called Units in MIRA. They can be combined into larger and complex applications where they can interact via the concept of channels and RPC with each other.

Units are loaded by specifying them within a configuration file that is launched via the mira or miracenter tool.

For more details on how to implement a unit see:

Plugins for miracenter

miracenter is basically a rich client platform (see RCP - Rich client platform) that just defines an empty workspace. This workspace can be filled with all kind of views, editors and tools. These extensions are realized using plugins that are loaded at runtime. This allows the user to extend and modify the functionality of miracenter by providing own plugins. If you are using miracenter and you like to extend its functionality the following sections will give more information about the different kind of plugins.

Visualization Plugins

miracenter uses different visualizations for displaying/rendering data in channels (2D, 3D, text, plot) (see VisualizationView editors). Whenever you develop a new data type that is used to exchange data of that type via channels it can become necessary to visualize that kind of data in either one or all of the aforementioned views.

For more details on how to implement a visualization plugin see:

View and Editor Plugins

If you have read the page about the rich client platform you will have noticed that there are two types of plugins that can be added to the workspace of miracenter. The first are views that are dockable workbench parts. The second type are editor parts that can be freely positioned within the workspace area.

For more details on how to implement a view or editor plugin see: