Realm C++ SDK 버전 v2.2.0
|
#include <websocket.hpp>
클래스 | |
구조체 | 타이머 |
공개 유형 | |
사용 | FunctionHandler = std::function< void(status)> |
함수 핸들러 typedef. | |
사용 | sync_timer = std::unique_ptr< sync_socket_provider::timer > |
기타 클래스 typedef. | |
공개 멤버 함수 | |
가상 | ~sync_socket_provider ()= 기본값 |
가상 std::unique_ptr< websocket_interface > | connect (std::unique_ptr< websocket_observer > 관찰자, websocket_endpoint &&endpoint)=0 |
가상 보이드 | 게시 (FunctionHandler &&handler)=0 |
가상 sync_timer | create_timer (std::chrono::milliseconds 지연, FunctionHandler &&handler)=0 |
SyncClient에서 사용하는 이벤트 루프 와 WebSocket 팩토리를 제공하는 동기화 소켓 제공자 인터페이스입니다.
SyncClient의 모든 콜백 및 이벤트 작업은 이벤트 루프 에 실행된 순서대로( 게시 () 또는 타이머를 통해) 완료되어야 하며 병렬로 실행 수 없습니다. 콜백 핸들러 함수가 순서대로 처리되고 동시에 실행 되지 않는 것이 보장되는 한, 이러한 이벤트가 동일한 스레드에서 실행 되는지 또는 스레드 풀에서 실행되는지 여부를 결정하는 것은 사용자 지정 이벤트 루프 구현 에 따라 달라집니다.
sync_socket_provider 의 구현 은 핸들러 함수(동기화 클라이언트 를 통해)를 이벤트 루프 에 게시 하는 다음 작업을 지원 해야 합니다.
이벤트 루프 는 다음 요구 사항이 충족되는 한 단일 스레드일 필요가 없습니다.
sync_socket_provider 는 WebSocket 연결을 통해 서버 에 연결하기 위한 WebSocket 인터페이스도 제공합니다.
|
가상기본 |
이벤트 루프 구현 에서는 객체 가 파괴될 때 이벤트 루프 가 중지되고 플러시되도록 해야 합니다. 이벤트 루프 가 스레드에서 처리되는 경우 스레드는 이 작업의 일부로 조인되어야 합니다.
|
순수 가상 |
endpoint 가 가리키는 서버 를 가리키는 새 웹 소켓을 만들고 서버 에 연결합니다. 웹 소켓 실행 중에 발생하는 모든 이벤트는 관찰자가 제공한 핸들러를 직접 호출합니다. web_socket_observer는 관찰자가 종료/파기되기 전에 WebSocket 객체 가 닫히거나/파기되도록 보장 합니다.
영역::net워킹::default_socket_provider 에서 구현됩니다.
|
순수 가상 |
제공된 지연이 만료되면 핸들러 함수가 이벤트 루프 에 게시될 새 타이머를 생성하고 등록합니다.
이는 원샷 타이머이며 반환된 Timer 클래스는 타이머가 만료되면 유효하지 않게 됩니다. 다시 기다리려면 새 타이머를 만들어야 합니다.
지연 | 타이머가 만료되기 전에 대기할 기간(밀리초)입니다. |
핸들러 | 타이머가 만료될 때 이벤트 루프 에서 호출되는 핸들러 함수입니다. |
영역::net워킹::default_socket_provider 에서 구현됩니다.
|
순수 가상 |
이벤트 루프 (스레드)에서 실행할 핸들러 함수를 제출합니다.
즉각적인 비동기 실행을 위해 지정된 핸들러 함수를 이벤트 루프 의 대기열에 등록합니다. 지정된 핸들러는 handler()
형식의 표현식 에 의해 실행됩니다. 핸들러 객체 가 이동 가능한 경우에는 복사되지 않습니다. 그렇지 않으면 필요에 따라 복사됩니다.
이 함수는 스레드로부터 안전하며 모든 스레드에서 호출할 수 있습니다. 다른 게시() 핸들러 함수에서도 호출할 수 있습니다.
핸들러는 게시() 실행의 일부로 호출되지 않습니다. 이벤트 루프 와 별도의 스레드에서 게시 () 가 호출되면 post( ) 가 반환되기 전에 핸들러가 호출될 수 있습니다.
게시() 를 통해 추가된 핸들러 함수는 추가된 순서대로 실행되어야 합니다. 더 정확하게는 게시 () 를 두 번 호출하여 두 핸들러 A와 B를 추가하고 게시 (B)의 실행이 시작되기 전에 게시 (A)의 실행이 종료되면 A가 B보다 먼저 실행되도록 보장됩니다.
핸들러 | 이벤트 루프 에 대기할 핸들러 함수입니다. |
영역::net워킹::default_socket_provider 에서 구현됩니다.