From e6d68be3bfcda8901b48fa44a17dd0009384c950 Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Sat, 17 Oct 2020 21:42:51 -0300 Subject: [PATCH] updatehub-sdk: listener: Add support for Probe callbacks Signed-off-by: Otavio Salvador --- updatehub-sdk/src/listener.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/updatehub-sdk/src/listener.rs b/updatehub-sdk/src/listener.rs index 6983d51e..83265829 100644 --- a/updatehub-sdk/src/listener.rs +++ b/updatehub-sdk/src/listener.rs @@ -19,6 +19,7 @@ type CallbackFn = dyn Fn(Handler) -> Pin>>>; #[derive(Default)] pub struct StateChangeListener { + probe_callbacks: Vec>, download_callbacks: Vec>, install_callbacks: Vec>, reboot_callbacks: Vec>, @@ -27,6 +28,7 @@ pub struct StateChangeListener { #[derive(Debug)] pub enum State { + Probe, Download, Install, Reboot, @@ -63,6 +65,7 @@ impl StateChangeListener { Fut: Future> + 'static, { match state { + State::Probe => self.probe_callbacks.push(Box::new(move |d| Box::pin(f(d)))), State::Download => self.download_callbacks.push(Box::new(move |d| Box::pin(f(d)))), State::Install => self.install_callbacks.push(Box::new(move |d| Box::pin(f(d)))), State::Reboot => self.reboot_callbacks.push(Box::new(move |d| Box::pin(f(d)))), @@ -100,6 +103,7 @@ impl StateChangeListener { async fn emit(&self, stream: UnixStream, input: &str) -> Result<()> { let callbacks = match input { + "probe" => &self.probe_callbacks, "download" => &self.download_callbacks, "install" => &self.install_callbacks, "reboot" => &self.reboot_callbacks,