Crate gc_plugin_manager
Expand description
GCPluginManager is a system to manage plugins which is responsible for loading, unloading, starting, stopping and access running plugins. This module also exports functions to communicate with the plugins, which can be found in the abi_extern module.
ยงPlugin communication
This crate is designed to provide a safe way to communicate with each plugin.
Calling plugin functions can be achieved by using the GCPluginInstance which is retrieved by the GCPluginManager.
The application is responsible for implementing the GCPluginCallbackHandler trait and passing it to the GCPluginManager. This trait is used to receive callbacks directly from the plugin.
Modulesยง
- abi_
callback_ ๐handler - abi_
extern ๐ - All functions exported by the core to the plugins are defined here.
- plugin ๐
- plugin_
dll ๐ - plugin_
instance ๐ - plugin_
instance_ ๐config - plugin_
manager ๐ - plugin_
running_ ๐instance
Structsยง
- GCDatapoint
- Safe zero cost abstraction over the [gc_abi_sys::GCDatapoint] This struct is meant to be initialized only by the gateway or another internal module.
- GCPlugin
- GCPlugin holds the plugin instances for a particular plugin library.
- GCPlugin
Instance - GCPluginInstance is a reference counted wrapper that holds the
PluginRunningInstance, which contains the resources necessary for the plugin execution, and provides a safe way to interact with it. - GCPlugin
Instance Config - GCPlugin
Manager - GCPluginManager is a system to manage plugins which is responsible for loading, unloading, starting, stopping and access running plugins. Different handlers of the same type can then be passed to the startup functions.
Traitsยง
- GCPlugin
Callback Handler - GCPluginCallbackHandler is a trait that must be implemented by the application to receive callbacks from the plugin.