pub trait Publisher {
// Required methods
fn message_broker(&self) -> Arc<dyn MessageBroker>;
fn set_message_broker(&mut self, msg_broker: Arc<dyn MessageBroker>);
// Provided method
fn publish(&self, msg: Arc<dyn Message>) { ... }
}Expand description
A sender of messages.
Required Methods§
Sourcefn message_broker(&self) -> Arc<dyn MessageBroker>
fn message_broker(&self) -> Arc<dyn MessageBroker>
Returns the message broker which the publisher connected to.
Sourcefn set_message_broker(&mut self, msg_broker: Arc<dyn MessageBroker>)
fn set_message_broker(&mut self, msg_broker: Arc<dyn MessageBroker>)
Connects the publisher to the given message broker.
Provided Methods§
Sourcefn publish(&self, msg: Arc<dyn Message>)
fn publish(&self, msg: Arc<dyn Message>)
Sends the given message to the message broker and lets the broker deliver it.
Examples found in repository?
examples/simple.rs (line 128)
116fn main() {
117 let tb: Arc<dyn MessageBroker> = Arc::new(DefaultMessageBroker::new());
118
119 let mut s0 = TestSubsciber0::new();
120 s0.subscribe(Arc::clone(&tb));
121
122 let mut s1 = TestSubsciber1::new();
123 s1.subscribe(Arc::clone(&tb));
124
125 let p0 = TestPublisher::new(Arc::clone(&tb));
126 let p1 = TestPublisher::new(Arc::clone(&tb));
127
128 p0.publish(Arc::new(TestMsg0(2)));
129 s1.deactivate();
130 p1.publish(Arc::new(TestMsg0(5)));
131 s1.activate();
132 p1.publish(Arc::new(TestMsg1(3)));
133 p1.publish(Arc::new(TestMsg1(6)));
134
135 s0.process_messages();
136 s1.process_messages();
137}