Realm C++ SDK版本 v 2.2.0
| 公共类型 | 公共成员函数 | 所有成员列表
域::networking::sync_socket_provider 类引用摘要

#include <websocket.hpp>

域::networking::sync_socket_provider 的继承图:
域::networking::default_socket_provider

struct  计时器
 

公共类型

运用 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 >server, websocket_endpoint &&endpoint)= 0
 
虚空 帖子 ( FunctionHandler &&handler)= 0
 
虚拟sync_timer create_timer (std::chrono::milliseconds Delay, FunctionHandler &&handler)= 0
 

详细说明

Sync Socket Provider 接口,提供 SyncClient 使用的事件循环和 WebSocket 工厂。

SyncClient 中的所有回调和事件操作必须按照(通过帖子()或计时器)发送到事件循环的顺序完成,并且不能并行运行。 只要保证回调处理程序函数按顺序处理并且不同时运行,则由自定义事件循环实施决定这些函数是在同一线程还是线程池上运行。

sync_socket_provider的实施必须支持将处理程序函数(通过 Sync客户端)帖子到事件循环的以下操作:

只要满足以下要求,事件循环不需要是单线程:

sync_socket_provider还提供 WebSocket 接口,用于通过 WebSocket 连接连接到服务器。

构造函数和析构函数文档

~sync_socket_provider()

虚拟域::networking::sync_socket_provider::~sync_socket_provider ( )
虚拟访问

事件循环实施必须确保在销毁对象时停止并刷新事件循环。 如果事件循环由线程处理,则必须将线程作为此操作的一部分进行联接。

成员函数文档

connect()

虚拟 std::unique_ptr< websocket_interface > 域::networking::sync_socket_provider::connect ( std::unique_ptr< websocket_observer observer,
websocket_endpoint &&  端点 
)
纯虚拟

创建一个指向端点指示的服务器的新 Websocket 并连接到该服务器。 执行 Websocket 期间发生的任何事件都将直接调用观察者提供的处理程序。 web_socket_observerACID 一致性保证WebSocket对象将在观察者终止/销毁之前关闭/销毁。

域::networking::default_socket_provider中实施。

create_timer()

虚拟sync_timer 域::networking::sync_socket_provider::create_timer ( std::chrono::milliseconds  延迟
FunctionHandler &&  处理程序 
)
纯虚拟

创建并注册一个新计时器,当提供的延迟到期时,其处理程序函数将被发布到事件循环。

这是一次性计时器,一旦计时器过期,返回的 Timer 类就会失效。 需要创建一个新的计时器才能再次等待。

参数
延迟定时器到期前的等待时间(以毫秒为单位)。
处理程序定时器到期时在事件循环上调用的处理程序函数。
返回:
指向 Timer对象的指针,可用于取消计时器。 如果返回的 Timer对象被销毁,计时器也将被取消。

域::networking::default_socket_provider中实施。

帖子()

虚拟无效域::networking::sync_socket_provider::帖子 ( FunctionHandler &&  处理程序)
纯虚拟

提交要由事件循环(线程)执行的处理程序函数。

注册要在事件循环上排队的指定处理程序函数,以便立即异步执行。 指定的处理程序将由handler()形式的表达式执行。如果处理程序对象是可移动的,则它将永远不会被复制。 否则,将根据需要对其进行复制。

此函数是线程安全的,可以由任何线程调用。 也可以从其他帖子()处理程序函数中调用它。

该处理程序永远不会作为执行帖子()的一部分被调用。 如果在与事件循环分开的线程上调用帖子 (),则可能会在帖子()返回之前调用处理程序。

通过帖子()添加的处理程序函数必须按添加顺序执行。 更准确地说,如果调用帖子()两次以添加两个处理程序 A 和 B,并且帖子(A) 的执行在帖子(B) 执行开始之前结束,则保证 A 在 B 之前执行。

参数
处理程序要在事件循环中排队的处理程序函数。

域::networking::default_socket_provider中实施。


此类的文档由以下文件生成: