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