refact: Discovery callback takes a closure and fix git dependency hash
This commit is contained in:
parent
269f13ae9b
commit
1eca2cc1a9
2
Cargo.lock
generated
2
Cargo.lock
generated
@ -3468,7 +3468,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "mdns-sd"
|
||||
version = "0.14.1"
|
||||
source = "git+https://github.com/jggc/mdns-sd.git?branch=patch-1#9e4619599d1493ec15395d62d82d40a43fbef9e7"
|
||||
source = "git+https://github.com/jggc/mdns-sd.git?branch=patch-1#371b65c0d6207e702dda8a2eb442cff21f0bab90"
|
||||
dependencies = [
|
||||
"fastrand",
|
||||
"flume",
|
||||
|
@ -1,6 +1,6 @@
|
||||
use async_trait::async_trait;
|
||||
use harmony_inventory_agent::local_presence::DiscoveryEvent;
|
||||
use log::info;
|
||||
use log::{debug, info};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use crate::{
|
||||
@ -45,7 +45,13 @@ impl<T: Topology> Interpret<T> for DiscoverInventoryAgentInterpret {
|
||||
) -> Result<Outcome, InterpretError> {
|
||||
harmony_inventory_agent::local_presence::discover_agents(
|
||||
self.score.discovery_timeout,
|
||||
on_discover_event,
|
||||
|event: DiscoveryEvent| {
|
||||
println!("Discovery event {event:?}");
|
||||
match event {
|
||||
DiscoveryEvent::ServiceResolved(service) => info!("Found instance {service:?}"),
|
||||
_ => debug!("Unhandled event {event:?}"),
|
||||
}
|
||||
},
|
||||
);
|
||||
todo!()
|
||||
}
|
||||
@ -66,7 +72,3 @@ impl<T: Topology> Interpret<T> for DiscoverInventoryAgentInterpret {
|
||||
todo!()
|
||||
}
|
||||
}
|
||||
|
||||
fn on_discover_event(event: &DiscoveryEvent) {
|
||||
info!("got discovery event {event:?}");
|
||||
}
|
||||
|
@ -4,7 +4,8 @@ use crate::local_presence::SERVICE_NAME;
|
||||
|
||||
pub type DiscoveryEvent = ServiceEvent;
|
||||
|
||||
pub fn discover_agents(timeout: Option<u64>, on_event: fn(&DiscoveryEvent)) {
|
||||
pub fn discover_agents(timeout: Option<u64>, on_event: impl Fn(DiscoveryEvent) + Send + 'static)
|
||||
{
|
||||
// Create a new mDNS daemon.
|
||||
let mdns = ServiceDaemon::new().expect("Failed to create mDNS daemon");
|
||||
|
||||
@ -14,7 +15,7 @@ pub fn discover_agents(timeout: Option<u64>, on_event: fn(&DiscoveryEvent)) {
|
||||
|
||||
std::thread::spawn(move || {
|
||||
while let Ok(event) = receiver.recv() {
|
||||
on_event(&event);
|
||||
on_event(event.clone());
|
||||
match event {
|
||||
ServiceEvent::ServiceResolved(resolved) => {
|
||||
println!("Resolved a new service: {}", resolved.fullname);
|
||||
|
Loading…
Reference in New Issue
Block a user