![]() |
ImFusion C++ SDK 4.4.0
|
#include <ImFusion/Core/Plugin.h>
Base interface to interact with a plugin that can be loaded into an application at runtime. More...
Base interface to interact with a plugin that can be loaded into an application at runtime.
Plugins are a mechanism to dynamically extend an application with functionality without the application a-priori knowing all plugins that will be available at runtime. On the OS/filesystem level, they correspond to a dynamically linked shared library (on Windows: DLL). In the context of the ImFusion SDK such a plugin library must:
Public Types | |
| enum class | Status { Success = 0 , LicenseCheckFailed , Unsupported , UnknownError } |
| Enumeration of status codes for plugin initialization. More... | |
Public Member Functions | |
| std::string | pluginId () const |
| Convenience function to query the plugin ID of a concrete instance at runtime. | |
| PluginManager::PluginStatus | pluginStatus () const |
| Convenience function to query the plugin status of a concrete instance at runtime. | |
| virtual std::string | author () const =0 |
| Name of the author of the plugin for informative purposes. | |
| virtual std::string | description () const =0 |
| Description of the plugin purpose/functionality for informative purposes. | |
| Utils::Version | version () const |
| Convenience function to query the version number of the plugin for informative purposes. | |
| virtual std::vector< std::string > | dependencies () const |
| Optional list of plugin IDs on which this plugin depends. | |
Protected Member Functions | |
| virtual Status | init ()=0 |
| Perform plugin initialization, for instance by populating factories and registering custom types with the host application. | |
|
strong |
| std::string ImFusion::PluginBase::pluginId | ( | ) | const |
Convenience function to query the plugin ID of a concrete instance at runtime.
This function requires the plugin to be registered with PluginManager.
| PluginManager::PluginStatus ImFusion::PluginBase::pluginStatus | ( | ) | const |
Convenience function to query the plugin status of a concrete instance at runtime.
This function requires the plugin to be registered with PluginManager.
|
pure virtual |
Name of the author of the plugin for informative purposes.
Implemented in ImFusion::CT::CTPlugin, ImFusion::DicomGuiPlugin, ImFusion::DicomPlugin, ImFusion::GraphPlugin, ImFusion::ImageMathPlugin, ImFusion::MLPlugin, ImFusion::NavigationPlugin, ImFusion::PythonPlugin, ImFusion::RegPlugin, ImFusion::SegPlugin, ImFusion::SpinePlugin, ImFusion::StreamPlugin, ImFusion::US::LiveUSPlugin, ImFusion::US::USPlugin, and ImFusion::VisionPlugin.
|
pure virtual |
Description of the plugin purpose/functionality for informative purposes.
Implemented in ImFusion::CT::CTPlugin, ImFusion::DicomGuiPlugin, ImFusion::DicomPlugin, ImFusion::GraphPlugin, ImFusion::ImageMathPlugin, ImFusion::MLPlugin, ImFusion::NavigationPlugin, ImFusion::PythonPlugin, ImFusion::RegPlugin, ImFusion::SegPlugin, ImFusion::SpinePlugin, ImFusion::StreamPlugin, ImFusion::US::LiveUSPlugin, ImFusion::US::USPlugin, and ImFusion::VisionPlugin.
| Utils::Version ImFusion::PluginBase::version | ( | ) | const |
Convenience function to query the version number of the plugin for informative purposes.
This function requires the plugin to be registered with PluginManager.
|
inlinevirtual |
Optional list of plugin IDs on which this plugin depends.
Initialization of this plugin will fail if any of the plugins in this list can not be loaded or initialized for any reason.
Reimplemented in ImFusion::CT::CTPlugin, ImFusion::DicomGuiPlugin, ImFusion::MLPlugin, ImFusion::NavigationPlugin, ImFusion::SegPlugin, ImFusion::SpinePlugin, ImFusion::US::LiveUSPlugin, ImFusion::US::USPlugin, and ImFusion::VisionPlugin.
|
protectedpure virtual |
Perform plugin initialization, for instance by populating factories and registering custom types with the host application.
Implemented in ImFusion::CT::CTPlugin, ImFusion::GraphPlugin, ImFusion::ImageMathPlugin, ImFusion::MLPlugin, ImFusion::NavigationPlugin, ImFusion::PythonPlugin, ImFusion::RegPlugin, ImFusion::SegPlugin, ImFusion::SpinePlugin, ImFusion::StreamPlugin, ImFusion::US::LiveUSPlugin, ImFusion::US::USPlugin, and ImFusion::VisionPlugin.