uvco 0.1
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
uvco::GenericAwaiter< Result > Class Template Reference

#include <awaiter.h>

Public Member Functions

 GenericAwaiter ()=default
 
 GenericAwaiter (const GenericAwaiter &)=delete
 
 GenericAwaiter (GenericAwaiter &&)=default
 
GenericAwaiteroperator= (const GenericAwaiter &)=delete
 
GenericAwaiteroperator= (GenericAwaiter &&)=default
 
bool await_ready () const
 
void await_suspend (std::coroutine_handle<> handle)
 
Result await_resume ()
 
void resume (Result result)
 

Private Attributes

std::optional< Result > result_
 
std::optional< std::coroutine_handle<> > handle_
 

Constructor & Destructor Documentation

◆ GenericAwaiter() [1/3]

template<typename Result >
uvco::GenericAwaiter< Result >::GenericAwaiter ( )
default

◆ GenericAwaiter() [2/3]

template<typename Result >
uvco::GenericAwaiter< Result >::GenericAwaiter ( const GenericAwaiter< Result > &  )
delete

◆ GenericAwaiter() [3/3]

template<typename Result >
uvco::GenericAwaiter< Result >::GenericAwaiter ( GenericAwaiter< Result > &&  )
default

Member Function Documentation

◆ await_ready()

template<typename Result >
bool uvco::GenericAwaiter< Result >::await_ready ( ) const
inline
19{ return result_.has_value(); }
std::optional< Result > result_
Definition awaiter.h:41

◆ await_resume()

template<typename Result >
Result uvco::GenericAwaiter< Result >::await_resume ( )
inline
26 {
27 BOOST_ASSERT(result_.has_value());
28 return std::move(*result_);
29 }

◆ await_suspend()

template<typename Result >
void uvco::GenericAwaiter< Result >::await_suspend ( std::coroutine_handle<>  handle)
inline
21 {
22 BOOST_ASSERT(!handle_);
23 handle_ = handle;
24 }
std::optional< std::coroutine_handle<> > handle_
Definition awaiter.h:42

◆ operator=() [1/2]

template<typename Result >
GenericAwaiter & uvco::GenericAwaiter< Result >::operator= ( const GenericAwaiter< Result > &  )
delete

◆ operator=() [2/2]

template<typename Result >
GenericAwaiter & uvco::GenericAwaiter< Result >::operator= ( GenericAwaiter< Result > &&  )
default

◆ resume()

template<typename Result >
void uvco::GenericAwaiter< Result >::resume ( Result  result)
inline
31 {
32 result_ = std::move(result);
33 if (handle_) {
34 std::coroutine_handle<> handle = *handle_;
35 handle_.reset();
36 Loop::enqueue(handle);
37 }
38 }
static void enqueue(std::coroutine_handle<> handle)
Definition loop.cc:73

Member Data Documentation

◆ handle_

template<typename Result >
std::optional<std::coroutine_handle<> > uvco::GenericAwaiter< Result >::handle_
private

◆ result_

template<typename Result >
std::optional<Result> uvco::GenericAwaiter< Result >::result_
private

The documentation for this class was generated from the following file: