Boost C++ Libraries/Boost.Asio

Boost.Asio - basic_yield_context

까마귀75 2021. 3. 22. 17:01
728x90
반응형

basic_yield_context

현재 실행중인 코-루틴을 나타내는 컨텍스트 개체이다.

template<
    typename Handler>
class basic_yield_context

[Handler]

유 형

이 름 설 명
callee_type 구현에서 사용되는 코-루틴 수신자 유형이다.
caller_type 구현에서 사용되는 코-루틴 호출자 유형이다.

멤버 함수

이 름 설 명
basic_yield_context
[constructor]
지정된 코-루틴을 나타내는 yield 컨텍스트를 생성한다.

다른 yield 컨텍스트 유형에서 yield 컨텍스트를 생성한다.
operator[] 지정된 error_code를 설정하는 yield 컨텍스트를 반환한다.

basic_yield_context 클래스는 현재 실행중인 스택형 코-루틴을 나타내는 데 사용된다. basic_yield_context는 비동기식 작업에 대한 핸들러로 전달될 수 있다. 예를 들면:

template <typename Handler>
void my_coroutine(basic_yield_context<Handler> yield)
{
  ...
  std::size_t n = my_socket.async_read_some(buffer, yield);
  ...
}

개시 함수(위 예제의 async_read_some)는 현재 코-루틴을 일시 정지한다. 코-루틴은 비동기 작업이 완료되면 다시 시작하고, 작업 결과가 반환된다.

요구 사항

일반 헤더: boost/asio/spawn.hpp
편의 헤더: 없음

Boost.Asio 홈

728x90
반응형