summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crates/core/tedge_api/examples/heartbeat.rs2
-rw-r--r--crates/core/tedge_api/src/plugins.rs9
2 files changed, 9 insertions, 2 deletions
diff --git a/crates/core/tedge_api/examples/heartbeat.rs b/crates/core/tedge_api/examples/heartbeat.rs
index e8d237f5..f6415897 100644
--- a/crates/core/tedge_api/examples/heartbeat.rs
+++ b/crates/core/tedge_api/examples/heartbeat.rs
@@ -83,7 +83,7 @@ async fn main() {
let hsb = HeartbeatServiceBuilder;
let (sender, mut receiver) = tokio::sync::mpsc::channel(10);
- let comms = Comms::new(sender);
+ let comms = Comms::new("heartbeat-service".to_string(), sender);
let config = toml::from_str(
r#"
diff --git a/crates/core/tedge_api/src/plugins.rs b/crates/core/tedge_api/src/plugins.rs
index 67a91964..dc7b1496 100644
--- a/crates/core/tedge_api/src/plugins.rs
+++ b/crates/core/tedge_api/src/plugins.rs
@@ -17,18 +17,25 @@ type ReplyReceiver = tokio::sync::oneshot::Receiver<Message>;
#[derive(Clone)]
pub struct Comms {
+ plugin_name: String,
sender: tokio::sync::mpsc::Sender<Message>,
replymap: Arc<RwLock<HashMap<uuid::Uuid, ReplySender>>>,
}
impl Comms {
- pub fn new(sender: tokio::sync::mpsc::Sender<Message>) -> Self {
+ pub fn new(plugin_name: String, sender: tokio::sync::mpsc::Sender<Message>) -> Self {
Self {
+ plugin_name,
sender,
replymap: Arc::new(RwLock::new(HashMap::new())),
}
}
+ pub fn new_message(&self, kind: crate::MessageKind) -> Message {
+ let addr = crate::Address::new(crate::address::EndpointKind::Plugin { id: self.plugin_name.clone() });
+ Message::new(addr, kind)
+ }
+
pub async fn send<T: Into<Message>>(&self, msg: T) -> Result<(), PluginError> {
self.sender.send(msg.into()).await?;