Realm C++ SDK Versão C++ v2.2.0
Aulas | Tipos públicos | Funções de membro público | Lista de todos os membros
Realm::network::sync_socket_provider Referência de classeresumo

#include <websocket.hpp>

Diagrama de herança para o Realm::network::sync_socket_provider:
Realm::network::default_socket_provider

Aulas

estrutura, estrutura  temporizador
 

Tipos públicos

Usando FunctionHandler = std::function< void(status)>
 Typedef do manipulador de função.
 
Usando sync_timer = std::unique_ptr< sync_socket_provider::timer >
 Outros typedefs de classe .
 

Funções de membro público

virtual ~sync_socket_provider ()=padrão
 
virtual std::unique_ptr< websocket_interfaceconnect (std::unique_ptr< websocket_observer > observador, websocket_endpoint &&endpoint)=0
 
vazio virtual post (FunctionHandler &&handler)=0
 
virtual sync_timer create_timer (std::chrono::atraso de milissegundos, FunctionHandler &&handler)=0
 

Descrição detalhada

Interface do Sync Socket Provider que fornece o loop de eventos e a fábrica do WebSocket usados pelo SyncClient.

Todas as operações de chamada de resposta de resposta e de evento no SyncClient devem ser concluídas na ordem em que foram emitidas (via post() ou timer) para o loop de eventos e não podem ser executadas em paralelo. cabe à implementação do loop de eventos personalizado determinar se eles são executados no mesmo thread ou em um pool de threads, desde que seja garantido que as funções do manipulador de chamada de resposta de chamada sejam processadas em ordem e não executadas simultaneamente.

A implementação de um sync_socket_provider deve oferecer suporte às seguintes operações que enviam funções de manipulador (por meio do cliente de sincronização ) no loop de eventos:

O loop de eventos não precisa ser um único thread, desde que os seguintes requisitos sejam atendidos:

O sync_socket_provider também fornece uma interface WebSocket para conexão ao servidor por meio de uma conexão WebSocket.

Documentação do Construtor e Destrutor

◆ ~sync_socket_provider()

Realm virtual ::network::sync_socket_provider::~sync_socket_provider ( )
virtualdefault

A implementação do loop de eventos deve garantir que o loop de eventos seja interrompido e liberado quando o objeto for destruído. Se o loop de eventos for processado por um thread, o thread deverá ser unido como parte desta operação.

Documentação da função do membro

◆ connect()

virtual std::unique_ptr< websocket_interface > Realm::network::sync_socket_provider::connect ( std::unique_ptr< websocket_observer observer,
websocket_endpoint &&  endpoint 
)
virtual puro

Crie um novo websocket apontado para o servidor indicado pelo endpoint e conecte-se ao servidor. Quaisquer eventos que ocorram durante a execução do websocket chamarão diretamente para os manipuladores fornecidos pelo observador. O web_socket_observer garante que o objeto WebSocket será fechado/destruído antes que o observador seja encerrado/destruído.

Implementado no Realm::network::default_socket_provider.

◆ create_timer()

virtual sync_timer Realm::network::sync_socket_provider::create_timer ( std::chrono::milliseconds  atraso,
FunctionHandler &&  manipulador 
)
virtual puro

Crie e registre um novo temporizador cuja função de manipulador será publicada no loop de eventos quando o atraso fornecido expirar.

Este é um temporizador único e a classe Timer retornada torna-se inválida quando o temporizador expira. Um novo temporizador precisará ser criado para esperar novamente.

Parâmetros
atrasarA duração de espera em ms antes que o temporizador expire.
manipuladorA função do manipulador a ser chamada no loop de eventos quando o temporizador expirar.
Devoluções
Um ponteiro para o objeto Timer que pode ser usado para cancelar o temporizador. O cronômetro também será cancelado se o objeto Timer retornado for destruído.

Implementado no Realm::network::default_socket_provider.

◆ post()

Realm virtual vazio ::network::sync_socket_provider::post ( FunctionHandler &&  manipulador)
virtual puro

Envie uma função de manipulador para ser executada pelo loop de eventos (thread).

Registre a função de manipulador especificada a ser enfileirada no loop de eventos para execução assíncrona imediata. O manipulador especificado será executado por uma expressão no formulário handler(). Se o objeto do manipulador for móvel, ele nunca será copiado. Caso contrário, será copiada conforme necessário.

Esta função é segura para threads e pode ser chamada por qualquer thread. Ele também pode ser chamado a partir de outra função de manipulador post() .

O manipulador nunca será chamado como parte da execução de post(). Se post() for chamado em um thread separado do loop de eventos, o manipulador poderá ser chamado antes que post() retorne.

As funções de manipulador adicionadas por meio de post() devem ser executadas na ordem em que são adicionadas. Mais precisamente, se post() for chamado duas vezes para adicionar dois manipuladores, A e B, e a execução de post(A) terminar antes do início da execução de post(B), então A tem garantido para executar antes de B.

Parâmetros
manipuladorA função do manipulador a ser enfileirada no loop de eventos.

Implementado no Realm::network::default_socket_provider.


A documentação para esta turma foi gerada a partir do seguinte arquivo: