pub struct PluginManager { /* private fields */ }Expand description
Plugin manager - registry for all extensions
The kernel uses this to discover and invoke extensions.
Implementations§
Source§impl PluginManager
impl PluginManager
Sourcepub fn register_storage(
&self,
ext: Arc<dyn StorageExtension>,
) -> KernelResult<()>
pub fn register_storage( &self, ext: Arc<dyn StorageExtension>, ) -> KernelResult<()>
Register a storage extension
Sourcepub fn set_active_storage(&self, name: &str) -> KernelResult<()>
pub fn set_active_storage(&self, name: &str) -> KernelResult<()>
Set the active storage backend
Sourcepub fn storage(&self) -> Option<Arc<dyn StorageExtension>>
pub fn storage(&self) -> Option<Arc<dyn StorageExtension>>
Get the active storage backend
Sourcepub fn register_index(
&self,
ext: Arc<RwLock<dyn IndexExtension>>,
) -> KernelResult<()>
pub fn register_index( &self, ext: Arc<RwLock<dyn IndexExtension>>, ) -> KernelResult<()>
Register an index extension
Sourcepub fn index(&self, name: &str) -> Option<Arc<RwLock<dyn IndexExtension>>>
pub fn index(&self, name: &str) -> Option<Arc<RwLock<dyn IndexExtension>>>
Get an index extension by name
Sourcepub fn list_index_types(&self) -> Vec<String>
pub fn list_index_types(&self) -> Vec<String>
List registered index types
Sourcepub fn register_observability(
&self,
ext: Arc<dyn ObservabilityExtension>,
) -> KernelResult<()>
pub fn register_observability( &self, ext: Arc<dyn ObservabilityExtension>, ) -> KernelResult<()>
Register an observability extension
Multiple observability extensions can be registered (fan-out to all)
Sourcepub fn counter_inc(&self, name: &str, value: u64, labels: &[(&str, &str)])
pub fn counter_inc(&self, name: &str, value: u64, labels: &[(&str, &str)])
Record a counter across all observability extensions
Sourcepub fn gauge_set(&self, name: &str, value: f64, labels: &[(&str, &str)])
pub fn gauge_set(&self, name: &str, value: f64, labels: &[(&str, &str)])
Record a gauge across all observability extensions
Sourcepub fn histogram_observe(&self, name: &str, value: f64, labels: &[(&str, &str)])
pub fn histogram_observe(&self, name: &str, value: f64, labels: &[(&str, &str)])
Record a histogram observation across all observability extensions
Sourcepub fn report_health(&self, health: &HealthInfo)
pub fn report_health(&self, health: &HealthInfo)
Report health to all observability extensions
Sourcepub fn has_observability(&self) -> bool
pub fn has_observability(&self) -> bool
Check if any observability is configured
Sourcepub fn register_compression(
&self,
ext: Arc<dyn CompressionExtension>,
) -> KernelResult<()>
pub fn register_compression( &self, ext: Arc<dyn CompressionExtension>, ) -> KernelResult<()>
Register a compression extension
Sourcepub fn compression(
&self,
algorithm: &str,
) -> Option<Arc<dyn CompressionExtension>>
pub fn compression( &self, algorithm: &str, ) -> Option<Arc<dyn CompressionExtension>>
Get a compression extension by algorithm name
Sourcepub fn list_compression(&self) -> Vec<String>
pub fn list_compression(&self) -> Vec<String>
List available compression algorithms
Sourcepub fn shutdown_all(&self) -> KernelResult<()>
pub fn shutdown_all(&self) -> KernelResult<()>
Shutdown all extensions gracefully
Calls shutdown() on each registered extension in reverse registration order.
This allows extensions to release resources, close connections, flush buffers, etc.
Sourcepub fn list_extensions(&self) -> Vec<ExtensionInfo>
pub fn list_extensions(&self) -> Vec<ExtensionInfo>
Get information about all registered extensions