manager/user: Move interface setup to manager module

This commit is contained in:
Vicki Pfau 2024-07-26 17:17:19 -07:00
parent 5ddb709f0b
commit c75ac60c9d
2 changed files with 19 additions and 8 deletions

View file

@ -19,7 +19,7 @@ use zbus::ConnectionBuilder;
use crate::daemon::{channel, Daemon, DaemonCommand, DaemonContext};
use crate::job::{JobManager, JobManagerService};
use crate::manager::user::SteamOSManager;
use crate::manager::user::create_interfaces;
use crate::path;
use crate::udev::UdevMonitor;
use crate::Service;
@ -112,14 +112,10 @@ async fn create_connections(
.build()
.await?;
let (tx, rx) = unbounded_channel();
let (jm_tx, rx) = unbounded_channel();
let job_manager = JobManager::new(connection.clone()).await?;
let manager = SteamOSManager::new(connection.clone(), system.clone(), channel, tx).await?;
let service = JobManagerService::new(job_manager, rx, system.clone());
connection
.object_server()
.at("/com/steampowered/SteamOSManager1", manager)
.await?;
create_interfaces(connection.clone(), system.clone(), channel, jm_tx).await?;
Ok((connection, system, service))
}

View file

@ -89,7 +89,7 @@ macro_rules! setter {
};
}
pub struct SteamOSManager {
struct SteamOSManager {
proxy: Proxy<'static>,
hdmi_cec: HdmiCecControl<'static>,
channel: Sender<Command>,
@ -388,6 +388,21 @@ impl SteamOSManager {
}
}
pub(crate) async fn create_interfaces(
session: Connection,
system: Connection,
daemon: Sender<Command>,
job_manager: UnboundedSender<JobManagerCommand>,
) -> Result<()> {
let manager = SteamOSManager::new(session.clone(), system.clone(), daemon, job_manager).await?;
session
.object_server()
.at("/com/steampowered/SteamOSManager1", manager)
.await?;
Ok(())
}
#[cfg(test)]
mod test {
use super::*;