Realm C++ SDK 버전 v2.2.0
클래스 | 공개 유형 | 공개 멤버 함수 | 모든 멤버 목록
영역::net워킹::sync_socket_provider 클래스 참조추상

#include <websocket.hpp>

Realm ::net워킹:: 영역:에 대한 상속 다이어그램입니다.
영역::net워킹::default_socket_provider

클래스

구조체  타이머
 

공개 유형

사용 FunctionHandler = std::function< void(status)>
 함수 핸들러 typedef.
 
사용 sync_timer = std::unique_ptr< sync_socket_provider::timer >
 기타 클래스 typedef.
 

공개 멤버 함수

가상 ~sync_socket_provider ()= 기본값
 
가상 std::unique_ptr< websocket_interfaceconnect (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 인터페이스도 제공합니다.

생성자 & 소멸자 문서

◆ ~sync_socket_provider()

가상 영역::net워킹::sync_socket_provider::~sync_socket_provider ( )
가상기본

이벤트 루프 구현 에서는 객체 가 파괴될 때 이벤트 루프 가 중지되고 플러시되도록 해야 합니다. 이벤트 루프 가 스레드에서 처리되는 경우 스레드는 이 작업의 일부로 조인되어야 합니다.

멤버 함수 문서

◆ connect()

가상 std::unique_ptr< websocket_interface > 영역::net워킹::sync_socket_provider::connect ( std::unique_ptr< websocket_observer observer,
websocket_endpoint &&  엔드포인트 
)
순수 가상

endpoint 가 가리키는 서버 를 가리키는 새 웹 소켓을 만들고 서버 에 연결합니다. 웹 소켓 실행 중에 발생하는 모든 이벤트는 관찰자가 제공한 핸들러를 직접 호출합니다. web_socket_observer는 관찰자가 종료/파기되기 전에 WebSocket 객체 가 닫히거나/파기되도록 보장 합니다.

영역::net워킹::default_socket_provider 에서 구현됩니다.

◆ create_timer()

가상 sync_timer 영역:::sync_socket_provider::create_timer ( std::chrono::milliseconds  지연,
FunctionHandler &&  핸들러 
)
순수 가상

제공된 지연이 만료되면 핸들러 함수가 이벤트 루프 에 게시될 새 타이머를 생성하고 등록합니다.

이는 원샷 타이머이며 반환된 Timer 클래스는 타이머가 만료되면 유효하지 않게 됩니다. 다시 기다리려면 새 타이머를 만들어야 합니다.

매개변수
지연타이머가 만료되기 전에 대기할 기간(밀리초)입니다.
핸들러타이머가 만료될 때 이벤트 루프 에서 호출되는 핸들러 함수입니다.
반환
타이머를 취소하는 데 사용할 수 있는 Timer 객체 에 대한 포인터입니다. 반환된 Timer 객체 가 파괴되면 타이머도 취소됩니다.

영역::net워킹::default_socket_provider 에서 구현됩니다.

◆ 게시()

가상 무효 영역::net워킹::sync_socket_provider:: 게시 ( FunctionHandler &&  핸들러)
순수 가상

이벤트 루프 (스레드)에서 실행할 핸들러 함수를 제출합니다.

즉각적인 비동기 실행을 위해 지정된 핸들러 함수를 이벤트 루프 의 대기열에 등록합니다. 지정된 핸들러는 handler() 형식의 표현식 에 의해 실행됩니다. 핸들러 객체 가 이동 가능한 경우에는 복사되지 않습니다. 그렇지 않으면 필요에 따라 복사됩니다.

이 함수는 스레드로부터 안전하며 모든 스레드에서 호출할 수 있습니다. 다른 게시() 핸들러 함수에서도 호출할 수 있습니다.

핸들러는 게시() 실행의 일부로 호출되지 않습니다. 이벤트 루프 와 별도의 스레드에서 게시 () 가 호출되면 post( ) 가 반환되기 전에 핸들러가 호출될 수 있습니다.

게시() 를 통해 추가된 핸들러 함수는 추가된 순서대로 실행되어야 합니다. 더 정확하게는 게시 () 를 두 번 호출하여 두 핸들러 A와 B를 추가하고 게시 (B)의 실행이 시작되기 전에 게시 (A)의 실행이 종료되면 A가 B보다 먼저 실행되도록 보장됩니다.

매개변수
핸들러이벤트 루프 에 대기할 핸들러 함수입니다.

영역::net워킹::default_socket_provider 에서 구현됩니다.


이 클래스에 대한 문서는 다음 파일에서 생성되었습니다.