use crate::protocol::Message;
use crate::transport::observer::ObserverObject;
pub type Observers = Vec<ObserverObject>;
pub struct NotifytManager {
observers: Observers,
}
impl NotifytManager {
pub fn new() -> NotifytManager {
NotifytManager {
observers: Vec::new(),
}
}
pub fn add_observer(&mut self, observer: ObserverObject) -> bool {
self.observers.push(observer);
true
}
pub fn observers(&self) -> &Observers {
return &self.observers;
}
pub fn notify(&mut self, msg: &Message) -> bool {
for observer in self.observers.iter() {
let mut observer = observer.lock().unwrap();
observer.message_received(msg);
}
true
}
pub fn num_observers(&mut self) -> usize {
self.observers.len()
}
pub fn start(&mut self) -> bool {
true
}
pub fn stop(&mut self) -> bool {
true
}
}