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

View file

@ -89,7 +89,7 @@ macro_rules! setter {
}; };
} }
pub struct SteamOSManager { struct SteamOSManager {
proxy: Proxy<'static>, proxy: Proxy<'static>,
hdmi_cec: HdmiCecControl<'static>, hdmi_cec: HdmiCecControl<'static>,
channel: Sender<Command>, 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)] #[cfg(test)]
mod test { mod test {
use super::*; use super::*;