summaryrefslogtreecommitdiffstats
path: root/crates/core/tedge_api/examples/heartbeat.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/core/tedge_api/examples/heartbeat.rs')
-rw-r--r--crates/core/tedge_api/examples/heartbeat.rs19
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 {