12#include "../details/SyncQueue.hpp"
69 std::optional<MessagePtr>
pop()
override;
Channel(Id id, InputPort &inputPort, OutputPort &outputPort)
Construct a channel linking one input port to one output port.
Bounded SPSC (Single Producer / Single Consumer) channel.
Definition SPSCChannel.hpp:45
std::size_t pendingMessageCount() const override
Number of pending messages currently buffered.
Channel(Id id, InputPort &inputPort, OutputPort &outputPort)
Construct a channel linking one input port to one output port.
bool pushMessage(MessagePtr msg) override
Enqueue a message coming from the producer side.
bool hasPendingMessage() const override
Whether at least one message is pending.
std::optional< MessagePtr > pop() override
Pop the next pending message.
Definition SyncQueue.hpp:51
Definition Channel.hpp:22
std::unique_ptr< Message > MessagePtr
Unique ownership handle for messages.
Definition Message.hpp:27