Skip to main content

PluginRpcHandler

Trait PluginRpcHandler 

Source
pub trait PluginRpcHandler<R: Reactor = TokioReactor>:
    Send
    + Sync
    + 'static {
    // Required methods
    fn list_plugins(&self) -> Vec<Value>;
    fn load_plugin(&self, path: &str) -> Result<Value, String>;
    fn unload_plugin(&self, name: &str) -> Result<(), String>;
    fn reload_plugin(&self, name: &str) -> Result<Value, String>;
    fn spawn_actor(
        &self,
        type_name: &str,
        config: &[u8],
    ) -> Result<Box<dyn Actor<R>>, String>;
}
Expand description

Extension point for plugin management RPCs.

Implement this trait in the application layer (e.g., wrapping a PluginRegistry from pd-plugin) and inject it into EngineConfig to enable plugin.* control-plane methods. When None, those methods return a “not implemented” error.

Required Methods§

Source

fn list_plugins(&self) -> Vec<Value>

List all currently loaded plugins.

Source

fn load_plugin(&self, path: &str) -> Result<Value, String>

Load a plugin from the given file path. Returns plugin info on success.

Source

fn unload_plugin(&self, name: &str) -> Result<(), String>

Unload a plugin by name.

Source

fn reload_plugin(&self, name: &str) -> Result<Value, String>

Reload a plugin by name (unload + load from the same path).

Source

fn spawn_actor( &self, type_name: &str, config: &[u8], ) -> Result<Box<dyn Actor<R>>, String>

Spawn an actor instance for a registered type.

Implementors§