daemon: Hold onto and expose connection object

This commit is contained in:
Vicki Pfau 2024-06-11 17:43:31 -07:00
parent b51569b657
commit 38d52626e8

View file

@ -60,6 +60,7 @@ pub(crate) trait DaemonContext: Sized {
pub(crate) struct Daemon<C: DaemonContext> {
services: JoinSet<Result<()>>,
token: CancellationToken,
connection: Connection,
channel: Receiver<DaemonCommand<C::Command>>,
}
@ -90,6 +91,7 @@ impl<C: DaemonContext> Daemon<C> {
services,
token,
channel,
connection,
};
daemon.add_service(log_receiver);
@ -104,6 +106,10 @@ impl<C: DaemonContext> Daemon<C> {
token
}
pub(crate) fn get_connection(&self) -> Connection {
self.connection.clone()
}
pub(crate) async fn run(&mut self, mut context: C) -> Result<()> {
ensure!(
!self.services.is_empty(),