pub struct ServiceLifecycleManager { /* private fields */ }
Expand description
Service lifecycle manager that tracks initialization and disposal
Implementations§
Source§impl ServiceLifecycleManager
impl ServiceLifecycleManager
Sourcepub fn add_initializable<T: AsyncInitializable + 'static>(
&mut self,
service: Arc<T>,
)
pub fn add_initializable<T: AsyncInitializable + 'static>( &mut self, service: Arc<T>, )
Add a service that needs async initialization
Sourcepub fn add_disposable<T: Disposable + 'static>(&mut self, service: Arc<T>)
pub fn add_disposable<T: Disposable + 'static>(&mut self, service: Arc<T>)
Add a service that needs disposal
Sourcepub fn add_lifecycle_managed<T: LifecycleManaged + 'static>(
&mut self,
service: Arc<T>,
)
pub fn add_lifecycle_managed<T: LifecycleManaged + 'static>( &mut self, service: Arc<T>, )
Add a service that needs both initialization and disposal
Sourcepub async fn initialize_all(&mut self) -> Result<(), CoreError>
pub async fn initialize_all(&mut self) -> Result<(), CoreError>
Initialize all registered services
Sourcepub async fn initialize_all_with_timeout(
&mut self,
timeout: Duration,
) -> Result<(), CoreError>
pub async fn initialize_all_with_timeout( &mut self, timeout: Duration, ) -> Result<(), CoreError>
Initialize services with timeout
Sourcepub async fn dispose_all(&mut self) -> Result<(), CoreError>
pub async fn dispose_all(&mut self) -> Result<(), CoreError>
Dispose all services in reverse order
Sourcepub fn schedule_disposal(&mut self)
pub fn schedule_disposal(&mut self)
Schedule disposal in the background (non-blocking) This is useful when you can’t await in the current context (like Drop)
Sourcepub async fn wait_for_disposal(&mut self) -> Result<(), CoreError>
pub async fn wait_for_disposal(&mut self) -> Result<(), CoreError>
Wait for any scheduled disposal to complete
Sourcepub fn state(&self) -> ServiceState
pub fn state(&self) -> ServiceState
Get the current lifecycle state
Sourcepub fn is_initialized(&self) -> bool
pub fn is_initialized(&self) -> bool
Check if all services are initialized
Sourcepub fn is_disposed(&self) -> bool
pub fn is_disposed(&self) -> bool
Check if services are disposed
Sourcepub fn initializable_count(&self) -> usize
pub fn initializable_count(&self) -> usize
Get the number of services requiring initialization
Sourcepub fn disposable_count(&self) -> usize
pub fn disposable_count(&self) -> usize
Get the number of services requiring disposal
Trait Implementations§
Source§impl Debug for ServiceLifecycleManager
impl Debug for ServiceLifecycleManager
Source§impl Default for ServiceLifecycleManager
impl Default for ServiceLifecycleManager
Auto Trait Implementations§
impl Freeze for ServiceLifecycleManager
impl !RefUnwindSafe for ServiceLifecycleManager
impl Send for ServiceLifecycleManager
impl Sync for ServiceLifecycleManager
impl Unpin for ServiceLifecycleManager
impl !UnwindSafe for ServiceLifecycleManager
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