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