73 void signal(const Core::NetworkMessage& message);
79 Kriya::NetworkAwaiter next_message();
84 [[nodiscard]]
bool has_pending() const override;
89 [[nodiscard]]
size_t pending_count() const;
94 void clear() override;
97 static constexpr
size_t QUEUE_CAPACITY = 256;
99 uint64_t m_endpoint_id {};
110 std::atomic<Kriya::NetworkAwaiter*> m_waiters_head {
nullptr };
112 std::optional<Core::NetworkMessage> pop_message();
Awaiter for suspending a coroutine until a network message arrives.
Policy-driven unified circular buffer implementation.
Abstract base for all awaitable signal sources.
NetworkSource(const NetworkSource &)=delete
NetworkSource(NetworkSource &&) noexcept=default
NetworkSource & operator=(const NetworkSource &)=delete
Memory::LockFreeQueue< Core::NetworkMessage, QUEUE_CAPACITY > m_queue
Awaitable broadcast message stream for a network endpoint.
Describes one logical send/receive endpoint managed by a backend.