diff options
Diffstat (limited to 'crates/core/tedge_api/examples/heartbeat.rs')
-rw-r--r-- | crates/core/tedge_api/examples/heartbeat.rs | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/crates/core/tedge_api/examples/heartbeat.rs b/crates/core/tedge_api/examples/heartbeat.rs index 15793bfc..7fae395e 100644 --- a/crates/core/tedge_api/examples/heartbeat.rs +++ b/crates/core/tedge_api/examples/heartbeat.rs @@ -9,8 +9,9 @@ use futures::FutureExt; use tedge_api::{ address::ReplySender, message::NoReply, - plugin::{BuiltPlugin, Handle, HandleTypes, Message, PluginExt}, - Address, Plugin, PluginBuilder, PluginConfiguration, PluginDirectory, PluginError, CancellationToken, + plugin::{BuiltPlugin, Handle, HandleTypes, Message, PluginDeclaration, PluginExt}, + Address, CancellationToken, Plugin, PluginBuilder, PluginConfiguration, PluginDirectory, + PluginError, }; /// A message that represents a heartbeat that gets sent to plugins @@ -78,7 +79,7 @@ impl<PD: PluginDirectory> PluginBuilder<PD> for HeartbeatServiceBuilder { monitored_services, cancellation_token, ) - .into_untyped::<()>()) + .into_untyped()) } } @@ -96,6 +97,10 @@ struct HeartbeatService { cancel_token: CancellationToken, } +impl PluginDeclaration for HeartbeatService { + type HandledMessages = (); +} + #[async_trait] impl Plugin for HeartbeatService { /// The setup function of the HeartbeatService can be used by the plugin author to setup for @@ -203,7 +208,7 @@ impl<PD: PluginDirectory> PluginBuilder<PD> for CriticalServiceBuilder { where Self: Sized, { - HandleTypes::declare_handlers_for::<(Heartbeat,), CriticalService>() + CriticalService::get_handled_types() } async fn verify_configuration( @@ -225,7 +230,7 @@ impl<PD: PluginDirectory> PluginBuilder<PD> for CriticalServiceBuilder { Ok(CriticalService { status: tokio::sync::Mutex::new(true), } - .into_untyped::<(Heartbeat,)>()) + .into_untyped()) } } @@ -259,6 +264,10 @@ impl Handle<Heartbeat> for CriticalService { } } +impl PluginDeclaration for CriticalService { + type HandledMessages = (Heartbeat,); +} + /// Because the CriticalService is of course a Plugin, it needs an implementation for that as well. #[async_trait] impl Plugin for CriticalService { |