1use super::data::*;
2use super::network::*;
3use chrono::{DateTime, Utc};
4use std::collections::HashMap;
5
6pub trait ClusterCommunicator {
10 fn send_message(&self, target: &str, msg: &Message) -> bool;
14 fn handle_message(&mut self, msg: &Message);
15 fn get_nghbr_sample(&self, a: &HashMap<String, DateTime<Utc>>) -> Vec<String>;
16 fn comm_recv_gossip(&mut self, payload: &Vec<String>);
17 fn update_neighbors(&mut self);
19 fn delinquent_node_check(&mut self);
20}
21
22pub trait ClusterCommunicationReceiver {
24 fn heartbeat_response(peer: &str);
25 fn sync_response(info: MachineInfo);
26}
27
28pub trait DeploymentCommunicator {
32 fn request_run_deployment(deployment: Deployment);
36}
37
38pub trait DeploymentCommunicationReceiver {}