Skip to main content

Mountain/Binary/Register/
StatusReporterRegister.rs

1//! # Status Reporter Register Module
2//!
3//! Initializes the IPC status reporting functionality.
4
5use std::sync::Arc;
6
7use crate::{
8	IPC::StatusReporter::InitializeStatusReporter::initialize_status_reporter,
9	RunTime::ApplicationRunTime::ApplicationRunTime,
10	dev_log,
11};
12
13/// Initializes the IPC status reporting with the ApplicationRunTime.
14///
15/// # Arguments
16///
17/// * `ApplicationHandle` - The Tauri application handle
18/// * `RunTime` - The ApplicationRunTime instance
19///
20/// # Returns
21///
22/// A `Result` indicating success or failure.
23///
24/// # Status Reporter Functionality
25///
26/// The status reporter provides:
27/// - IPC connection status tracking
28/// - Historical status data collection
29/// - Real-time status reporting to frontend
30/// - Subscription-based status updates
31///
32/// # Errors
33///
34/// Returns an error if status reporter initialization fails.
35pub fn StatusReporterRegister(
36	ApplicationHandle:&tauri::AppHandle,
37	RunTime:Arc<ApplicationRunTime>,
38) -> Result<(), String> {
39	match initialize_status_reporter(ApplicationHandle, RunTime) {
40		Ok(()) => {
41			dev_log!("lifecycle", "[IPC] [StatusReporter] Status reporter initialized successfully.");
42			Ok(())
43		},
44		Err(e) => {
45			dev_log!("lifecycle", "error: [IPC] [StatusReporter] Failed to initialize: {}", e);
46			Err(format!("Failed to initialize status reporter: {}", e))
47		},
48	}
49}