Publisher

Trait Publisher 

Source
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§

Source

fn message_broker(&self) -> Arc<dyn MessageBroker>

Returns the message broker which the publisher connected to.

Source

fn set_message_broker(&mut self, msg_broker: Arc<dyn MessageBroker>)

Connects the publisher to the given message broker.

Provided Methods§

Source

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}

Implementors§