pub struct GlobalComponentRegistry { /* private fields */ }Expand description
Global component registry for system-wide component management
Provides centralized registration, discovery, and lifecycle management of components with support for hierarchical organization, version control, and dynamic loading capabilities.
Implementations§
Source§impl GlobalComponentRegistry
impl GlobalComponentRegistry
Sourcepub fn register_factory_versioned(
&self,
component_type: &str,
version: &str,
factory: Arc<dyn ComponentFactory>,
) -> SklResult<()>
pub fn register_factory_versioned( &self, component_type: &str, version: &str, factory: Arc<dyn ComponentFactory>, ) -> SklResult<()>
Register a component factory with version
Sourcepub fn register_factory(
&self,
component_type: &str,
factory: Arc<dyn ComponentFactory>,
) -> SklResult<()>
pub fn register_factory( &self, component_type: &str, factory: Arc<dyn ComponentFactory>, ) -> SklResult<()>
Register a component factory (latest version)
Sourcepub fn create_component_versioned(
&self,
component_type: &str,
version: &str,
config: &ComponentConfig,
) -> SklResult<Box<dyn PluggableComponent>>
pub fn create_component_versioned( &self, component_type: &str, version: &str, config: &ComponentConfig, ) -> SklResult<Box<dyn PluggableComponent>>
Create a component instance with specific version
Sourcepub fn create_component(
&self,
component_type: &str,
config: &ComponentConfig,
) -> SklResult<Box<dyn PluggableComponent>>
pub fn create_component( &self, component_type: &str, config: &ComponentConfig, ) -> SklResult<Box<dyn PluggableComponent>>
Create a component instance (latest version)
Sourcepub fn register_active_component(
&self,
component_id: &str,
component: Box<dyn PluggableComponent>,
) -> SklResult<()>
pub fn register_active_component( &self, component_id: &str, component: Box<dyn PluggableComponent>, ) -> SklResult<()>
Register active component instance
Sourcepub fn get_active_component(
&self,
component_id: &str,
) -> Option<Arc<RwLock<Box<dyn PluggableComponent>>>>
pub fn get_active_component( &self, component_id: &str, ) -> Option<Arc<RwLock<Box<dyn PluggableComponent>>>>
Get active component instance
Sourcepub fn unregister_active_component(&self, component_id: &str) -> SklResult<()>
pub fn unregister_active_component(&self, component_id: &str) -> SklResult<()>
Unregister active component instance
Sourcepub fn discover_component_types(&self) -> Vec<ComponentTypeInfo>
pub fn discover_component_types(&self) -> Vec<ComponentTypeInfo>
Discover available component types
Sourcepub fn query_components_by_capability(
&self,
capability: &str,
) -> Vec<ComponentQuery>
pub fn query_components_by_capability( &self, capability: &str, ) -> Vec<ComponentQuery>
Query components by capability
Sourcepub fn query_components_by_dependency(
&self,
dependency_type: &str,
) -> Vec<ComponentQuery>
pub fn query_components_by_dependency( &self, dependency_type: &str, ) -> Vec<ComponentQuery>
Query components by dependency
Sourcepub fn add_plugin_directory(&self, path: PathBuf) -> SklResult<()>
pub fn add_plugin_directory(&self, path: PathBuf) -> SklResult<()>
Add plugin directory for dynamic loading
Sourcepub fn load_plugins(&self) -> SklResult<Vec<PluginLoadResult>>
pub fn load_plugins(&self) -> SklResult<Vec<PluginLoadResult>>
Load plugins from registered directories
Sourcepub fn get_statistics(&self) -> RegistryStatistics
pub fn get_statistics(&self) -> RegistryStatistics
Get registry statistics
Sourcepub fn configure_hooks(&self, hooks: RegistryHooks)
pub fn configure_hooks(&self, hooks: RegistryHooks)
Configure registry hooks
Trait Implementations§
Source§impl Debug for GlobalComponentRegistry
impl Debug for GlobalComponentRegistry
Auto Trait Implementations§
impl Freeze for GlobalComponentRegistry
impl RefUnwindSafe for GlobalComponentRegistry
impl Send for GlobalComponentRegistry
impl Sync for GlobalComponentRegistry
impl Unpin for GlobalComponentRegistry
impl UnwindSafe for GlobalComponentRegistry
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more