Skip to main content

Crate gc_plugin_manager

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.
GCPluginInstance
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.
GCPluginInstanceConfig
GCPluginManager
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ยง

GCPluginCallbackHandler
GCPluginCallbackHandler is a trait that must be implemented by the application to receive callbacks from the plugin.