uvco 0.1
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Public Attributes | Static Public Attributes | List of all members
uvco::Udp::RecvAwaiter_ Struct Reference
Collaboration diagram for uvco::Udp::RecvAwaiter_:
Collaboration graph
[legend]

Public Types

using QueueItem_
 

Public Member Functions

 RecvAwaiter_ ()
 
bool await_ready () const
 
bool await_suspend (std::coroutine_handle<> handle)
 
std::optional< std::pair< std::string, AddressHandle > > await_resume ()
 

Public Attributes

BoundedQueue< QueueItem_buffer_
 
std::optional< std::coroutine_handle<> > handle_
 
bool stop_receiving_ = true
 

Static Public Attributes

static constexpr unsigned packetQueueSize = 128
 

Member Typedef Documentation

◆ QueueItem_

Initial value:
std::variant<std::pair<std::string, AddressHandle>, uv_status>
int uv_status
Result of a libuv operation, an errno error code.
Definition internal_utils.h:22

Constructor & Destructor Documentation

◆ RecvAwaiter_()

uvco::Udp::RecvAwaiter_::RecvAwaiter_ ( )
static constexpr unsigned packetQueueSize
Definition udp.h:127
BoundedQueue< QueueItem_ > buffer_
Definition udp.h:136

Member Function Documentation

◆ await_ready()

bool uvco::Udp::RecvAwaiter_::await_ready ( ) const
365{ return !buffer_.empty(); }
bool empty() const
size() == 0
Definition bounded_queue.h:59

◆ await_resume()

std::optional< std::pair< std::string, AddressHandle > > uvco::Udp::RecvAwaiter_::await_resume ( )
368 {
369 // Woken up without read packet: stop receiving.
370 if (buffer_.empty()) {
371 return std::nullopt;
372 }
373 QueueItem_ item = buffer_.get();
374 if (std::holds_alternative<uv_status>(item)) {
375 throw UvcoException(std::get<uv_status>(item),
376 "Udp::RecvAwaiter_::await_resume: error during recv");
377 }
378 return std::get<std::pair<std::string, AddressHandle>>(item);
379}
T get()
Pop an item from the queue.
Definition bounded_queue.h:45
std::variant< std::pair< std::string, AddressHandle >, uv_status > QueueItem_
Definition udp.h:128

◆ await_suspend()

bool uvco::Udp::RecvAwaiter_::await_suspend ( std::coroutine_handle<>  handle)
359 {
360 BOOST_ASSERT(!handle_);
361 handle_ = handle;
362 return true;
363}
std::optional< std::coroutine_handle<> > handle_
Definition udp.h:137

Member Data Documentation

◆ buffer_

BoundedQueue<QueueItem_> uvco::Udp::RecvAwaiter_::buffer_

◆ handle_

std::optional<std::coroutine_handle<> > uvco::Udp::RecvAwaiter_::handle_

◆ packetQueueSize

constexpr unsigned uvco::Udp::RecvAwaiter_::packetQueueSize = 128
staticconstexpr

◆ stop_receiving_

bool uvco::Udp::RecvAwaiter_::stop_receiving_ = true

The documentation for this struct was generated from the following files: