Skip to content

Latest commit

 

History

History
42 lines (35 loc) · 823 Bytes

File metadata and controls

42 lines (35 loc) · 823 Bytes

Messaging

Messages complement events really well. While an event will only be triggered for the next iteration, messages become active immediately.

ddge::app::create()
    .plug_in(ddge::plugins::Messages{})
    .register_message<WorldNeedsRedraw>();

Sending and receiving messages are also very similar to managing events.

auto send_message(Sender<Message> sender) -> void
{
    sender.send();
}
auto receive_messages(Receiver<Message> message_receiver) -> void
{
    for (auto _ : message_receiver.receive()) {
        std::println("Message received!");
    }
}

Messages stack up in the message buffer until it gets cleared. Use the Mailbox to clear them!

auto clear_messages(const Mailbox& mailbox) -> void
{
    mailbox.clear_messages();
}