728x90
반응형
Handlers (핸들러)
핸들러는 MoveConstructible 유형(C++Std [moveconstructible])의 요구 사항을 충족해야 한다.
아래 표에서, X는 핸들러 클래스, h는 X의 값, p는 유형 void*로 할당된 메모리 블럭의 포인터, s는 할당된 메모리 블럭의 크기, 그리고 f는 인수가 없는 함수 개체를 나타낸다.
표 18. Handler requirements(핸들러 요구 사항)
표현식 | 반환 유형 | assertion/note (에러 검출/참고) pre/post-conditions(사전/사후 조건) |
|
void* | 크기가 s인 메모리 블록에 대한 포인터를 반환한다. 포인터는 ::operator new()에서 반환된 포인터와 동일한 정렬 요구 사항을 충족해야 한다. 실패하면 bad_alloc 예외를 발생한다. asio_handler_allocate() 함수는 인수-종속 색인을 사용하여 찾는다. 사용자-제공 함수를 사용할 수 없으면, boost::asio::asio_handler_allocate() 함수를 기본으로 사용한다. |
|
asio_handler_allocate()를 사용하여 이전에 할당된, 포인터 p(최소 크기 s)와 연결된 메모리 블록을 해제 한다. asio_handler_deallocate() 함수는 인수-종속 색인을 사용하여 찾는다. 사용자-제공 함수를 사용할 수 없으면, boost::asio::asio_handler_deallocate() 함수를 기본으로 사용한다. |
|
|
함수 개체 f가 f()를 호출하는 것처럼 실행되도록 한다. asio_handler_invoke() 함수는 인수-종속 색인을 사용하여 찾는다. 사용자-제공 함수를 사용할 수 없으면, boost::asio::asio_handler_invoke() 함수를 기본으로 사용한다. |
728x90
반응형
'Boost C++ Libraries > Boost.Asio' 카테고리의 다른 글
Boost.Asio - Executor requirements (0) | 2021.03.23 |
---|---|
Boost.Asio - awaitable (0) | 2021.03.23 |
Boost.Asio - Completion handler requirements (0) | 2021.03.22 |
Boost.Asio - basic_yield_context (0) | 2021.03.22 |
Boost.Asio - coroutine (0) | 2021.03.22 |