http_listener는 task기반으로 만들어진 pplx::로 만들어졌습니다.
따라서 해당 객체를 open() 으로 실행하게 되면 쓰레드가 생성되면서 비동기적으로 실행됩니다.
또한 boost의 asio를 사용하여 만들어졌기 때문에 운영체제마다 제공하는 Thread pool을 사용하며,
사용자는 Thread에 대해 관리를 해주지 않아도 됩니다.
또한 내부적으로 중복생성을 막기위한 코드가 존재하며 예외처리를 합니다.
사용자는 support() 함수를 이용해 코드를 간편하게 만들면 됩니다.
1. http_listener 사용법
해당 http_listener는 다음과 같이 정의되어 있습니다.
http_listener () | http_listener 객체 생성(기본 생성자) |
http_listener (http::uri address) |
http_listener 객체 생성(uri address주소 입력) |
http_listener (http::uri address, http_listener_config config) |
http_listener 객체 생성(uri address주소, listener설정 객체) |
~http_listener () |
http_listener 소멸자 |
open() -> return pplx::task< void > |
소켓 open, ppls::task객체 반환 (비동기) |
close() -> pplx::task< void > |
소켓 close, ppls::task객체 반환 (비동기) |
support (const std::function< void(http_request)> &handler) |
핸들러 함수(모든 핸들러 호출) |
support (const http::method &method, const std::function<void(http_request)> &handler) |
핸들러 함수(특정 요청에 대한 핸들러 호출) |
uri () const -> return const http::uri & |
해당 http_listner에 대한 http::uri 객체 반환 |
configuration () const -> return const http_listener_config & |
해당 http_listtner에 대한 config 객체 반환 |
http_listener (http_listener &&other) |
move 생성자 지원 |
operator= (http_listener &&other) -> return http_listener & | 연산자 캐스팅으로 인해 = 호출시 move |
http_listener_config는 다음과 같이 정의되어 있습니다.
http_listener_config () |
디폴트 값으로 셋팅(timeout 값 120초로 설정) |
timeout () const -> return utility::seconds |
설정된 시간에 대한 utility::seconds 객체 반환 |
set_timeout (utility::seconds timeout) |
timeout 시간 설정 |
get_ssl_context_callback () const |
ssl 콜백 함수로 여기선 다루지 않겠음. |
http_listener.h : https://microsoft.github.io/cpprestsdk/http__listener_8h_source.html
http_listener reference : https://microsoft.github.io/cpprestsdk/classweb_1_1http_1_1experimental_1_1listener_1_1http__listener.html
http_listener_config reference : https://microsoft.github.io/cpprestsdk/classweb_1_1http_1_1experimental_1_1listener_1_1http__listener__config.html
uri reference : https://microsoft.github.io/cpprestsdk/classweb_1_1uri.html
2. http_listtner 예시
결과.
※ 사진이 작게 나오니 클릭해서 보세요~
'프로그래밍 > C++ rest(Casablanca)' 카테고리의 다른 글
C++] cpprestful-server 완성본(CpprestSDK) (0) | 2020.11.05 |
---|---|
C++] cpprestSDK(Casablanca) https(ssl) 적용방법. (0) | 2020.07.16 |
C++] cpprestSDK 에 대한 간략한 설명. (0) | 2020.07.02 |
C++로 Restful서버 만들기(casablanca) 2. Server Sample Code (6) | 2019.05.28 |
C++로 Restful서버 만들기(casablanca) 1. 셋팅 및 설치 (1) | 2019.05.28 |
댓글