xrtWsGroupCreate

创建连接组;Limit 为零表示不设置成员数量上限。

xwsgroup* xrtWsGroupCreate(size_t iLimit);
参数说明
size_t iLimit上限
返回:创建连接组;Limit 为零表示不设置成员数量上限。

示例已编译验证

/* 创建连接组;Limit 为零表示不设置成员数量上限。 */
xhandle* h = xrtWsGroupCreate(iLimit);

xrtWsGroupRef

增加连接组引用并返回原指针。

xwsgroup* xrtWsGroupRef(xwsgroup* pGroup);
参数说明
xwsgroup* pGroup任务组
返回:增加连接组引用并返回原指针。

示例已编译验证

/* 增加连接组引用并返回原指针。 */
result = xrtWsGroupRef(pGroup);

xrtWsGroupDestroy

释放连接组引用;最后一个引用只释放成员,不关闭连接。

void xrtWsGroupDestroy(xwsgroup* pGroup);
参数说明
xwsgroup* pGroup任务组
返回:释放连接组引用;最后一个引用只释放成员,不关闭连接。

示例已编译验证

xrtWsGroupDestroy(pGroup);

xrtWsGroupAdd

加入并持有 Connection;重复加入成功且不增加第二个引用。

bool xrtWsGroupAdd(xwsgroup* pGroup, xwsconn* pConnection);
参数说明
xwsgroup* pGroup任务组
xwsconn* pConnection连接对象
返回:加入并持有 Connection;重复加入成功且不增加第二个引用。

示例已编译验证

/* 加入并持有 Connection;重复加入成功且不增加第二个引用。 */
result = xrtWsGroupAdd(pGroup, pConnection);

xrtWsGroupRemove

移除并释放 Connection;成员不存在时正常返回 false。

bool xrtWsGroupRemove(xwsgroup* pGroup, xwsconn* pConnection);
参数说明
xwsgroup* pGroup任务组
xwsconn* pConnection连接对象
返回:移除并释放 Connection;成员不存在时正常返回 false。

示例已编译验证

/* 移除并释放 Connection;成员不存在时正常返回 false。 */
result = xrtWsGroupRemove(pGroup, pConnection);

xrtWsGroupHas

判断 Connection 是否属于当前组。

bool xrtWsGroupHas(const xwsgroup* pGroup, const xwsconn* pConnection);
参数说明
const xwsgroup* pGroup任务组
const xwsconn* pConnection连接对象
返回:判断 Connection 是否属于当前组。

示例已编译验证

/* 判断 Connection 是否属于当前组。 */
result = xrtWsGroupHas(pGroup, pConnection);

xrtWsGroupCount

返回当前成员数量。

size_t xrtWsGroupCount(const xwsgroup* pGroup);
参数说明
const xwsgroup* pGroup任务组
返回:返回当前成员数量。

示例已编译验证

/* 返回当前成员数量。 */
result = xrtWsGroupCount(pGroup);

xrtWsGroupLimit

返回创建时设置的硬上限;零表示没有显式上限。

size_t xrtWsGroupLimit(const xwsgroup* pGroup);
参数说明
const xwsgroup* pGroup任务组
返回:返回创建时设置的硬上限;零表示没有显式上限。

示例已编译验证

/* 返回创建时设置的硬上限;零表示没有显式上限。 */
result = xrtWsGroupLimit(pGroup);

xrtWsGroupSeal

永久阻止新成员加入;重复调用保持成功。

bool xrtWsGroupSeal(xwsgroup* pGroup);
参数说明
xwsgroup* pGroup任务组
返回:永久阻止新成员加入;重复调用保持成功。

示例已编译验证

/* 永久阻止新成员加入;重复调用保持成功。 */
result = xrtWsGroupSeal(pGroup);

xrtWsGroupSealed

返回连接组是否已经封闭。

bool xrtWsGroupSealed(const xwsgroup* pGroup);
参数说明
const xwsgroup* pGroup任务组
返回:返回连接组是否已经封闭。

示例已编译验证

/* 返回连接组是否已经封闭。 */
result = xrtWsGroupSealed(pGroup);

xrtWsGroupClear

原子移走全部成员并在组锁外释放,返回数量且不重新开放已封闭的组。

size_t xrtWsGroupClear(xwsgroup* pGroup);
参数说明
xwsgroup* pGroup任务组
返回:原子移走全部成员并在组锁外释放,返回数量且不重新开放已封闭的组。

示例已编译验证

/* 原子移走全部成员并在组锁外释放,返回数量且不重新开放已封闭的组。 */
result = xrtWsGroupClear(pGroup);

xrtWsGroupSnapshotCreate

在组锁外分配并创建保序成员快照;空组也返回有效空快照。

xwsgroupsnapshot* xrtWsGroupSnapshotCreate(const xwsgroup* pGroup);
参数说明
const xwsgroup* pGroup任务组
返回:在组锁外分配并创建保序成员快照;空组也返回有效空快照。

示例已编译验证

/* 在组锁外分配并创建保序成员快照;空组也返回有效空快照。 */
xhandle* h = xrtWsGroupSnapshotCreate(pGroup);

xrtWsGroupSnapshotCount

返回快照成员数量。

size_t xrtWsGroupSnapshotCount(const xwsgroupsnapshot* pSnapshot);
参数说明
const xwsgroupsnapshot* pSnapshotSnashot 参数
返回:返回快照成员数量。

示例已编译验证

/* 返回快照成员数量。 */
result = xrtWsGroupSnapshotCount(pSnapshot);

xrtWsGroupSnapshotGet

借用指定快照成员;借用期不超过快照生命周期。

xwsconn* xrtWsGroupSnapshotGet( const xwsgroupsnapshot* pSnapshot, size_t iIndex );
参数说明
const xwsgroupsnapshot* pSnapshotSnashot 参数
size_t iIndex下标
返回:借用指定快照成员;借用期不超过快照生命周期。

示例已编译验证

/* 借用指定快照成员;借用期不超过快照生命周期。 */
result = xrtWsGroupSnapshotGet(pSnapshot, iIndex);

xrtWsGroupSnapshotDestroy

释放快照和它持有的全部 Connection 引用。

void xrtWsGroupSnapshotDestroy(xwsgroupsnapshot* pSnapshot);
参数说明
xwsgroupsnapshot* pSnapshotSnashot 参数
返回:释放快照和它持有的全部 Connection 引用。

示例已编译验证

xrtWsGroupSnapshotDestroy(pSnapshot);

xrtWsGroupSendAsync

对调用时的稳定成员快照异步提交一条 Text 或 Binary 消息;负载只复制一次。

xwsgroupop* xrtWsGroupSendAsync( xwsgroup* pGroup, xwsopcode Opcode, xbytesview Payload );
参数说明
xwsgroup* pGroup任务组
xwsopcode OpcodeOcode 参数
xbytesview Payload负载
返回:对调用时的稳定成员快照异步提交一条 Text 或 Binary 消息;负载只复制一次。

示例已编译验证

/* 对调用时的稳定成员快照异步提交一条 Text 或 Binary 消息;负载只复制一次。 */
result = xrtWsGroupSendAsync(pGroup, Opcode, Payload);

xrtWsGroupTextAsync

对调用时的稳定成员快照异步提交 UTF-8 Text。

xwsgroupop* xrtWsGroupTextAsync( xwsgroup* pGroup, xstrview Text );
参数说明
xwsgroup* pGroup任务组
xstrview Text文本视图
返回:对调用时的稳定成员快照异步提交 UTF-8 Text。

示例已编译验证

/* 对调用时的稳定成员快照异步提交 UTF-8 Text。 */
result = xrtWsGroupTextAsync(pGroup, Text);

xrtWsGroupBinaryAsync

对调用时的稳定成员快照异步提交 Binary。

xwsgroupop* xrtWsGroupBinaryAsync( xwsgroup* pGroup, xbytesview Data );
参数说明
xwsgroup* pGroup任务组
xbytesview Data数据内容
返回:对调用时的稳定成员快照异步提交 Binary。

示例已编译验证

/* 对调用时的稳定成员快照异步提交 Binary。 */
result = xrtWsGroupBinaryAsync(pGroup, Data);

xrtWsGroupSendRefAsync

XRT_API xwsgroupop* xrtWsGroupSendRefAsync( xwsgroup* pGroup, xwsopcode Opcode, const xnetref* pRef );

;
返回:XRT_API xwsgroupop* xrtWsGroupSendRefAsync( xwsgroup* pGroup, xwsopcode Opcode, const xnetref* pRef );

示例已编译验证

/* XRT_API xwsgroupop* xrtWsGroupSendRefAsync( xwsgroup* pGroup, xwsopcode Opcode, const xnetref* pRef ); */
result = xrtWsGroupSendRefAsync();

xrtWsGroupTextRefAsync

异步提交共享所有权 UTF-8 Text。

xwsgroupop* xrtWsGroupTextRefAsync( xwsgroup* pGroup, const xnetref* pRef );
参数说明
xwsgroup* pGroup任务组
const xnetref* pRef引用
返回:异步提交共享所有权 UTF-8 Text。

示例已编译验证

/* 异步提交共享所有权 UTF-8 Text。 */
result = xrtWsGroupTextRefAsync(pGroup, pRef);

xrtWsGroupBinaryRefAsync

异步提交共享所有权 Binary。

xwsgroupop* xrtWsGroupBinaryRefAsync( xwsgroup* pGroup, const xnetref* pRef );
参数说明
xwsgroup* pGroup任务组
const xnetref* pRef引用
返回:异步提交共享所有权 Binary。

示例已编译验证

/* 异步提交共享所有权 Binary。 */
result = xrtWsGroupBinaryRefAsync(pGroup, pRef);

xrtWsGroupPingAsync

对调用时的稳定成员快照异步提交 Ping。

xwsgroupop* xrtWsGroupPingAsync( xwsgroup* pGroup, xbytesview Payload );
参数说明
xwsgroup* pGroup任务组
xbytesview Payload负载
返回:对调用时的稳定成员快照异步提交 Ping。

示例已编译验证

/* 对调用时的稳定成员快照异步提交 Ping。 */
result = xrtWsGroupPingAsync(pGroup, Payload);

xrtWsGroupPongAsync

对调用时的稳定成员快照异步提交 Pong。

xwsgroupop* xrtWsGroupPongAsync( xwsgroup* pGroup, xbytesview Payload );
参数说明
xwsgroup* pGroup任务组
xbytesview Payload负载
返回:对调用时的稳定成员快照异步提交 Pong。

示例已编译验证

/* 对调用时的稳定成员快照异步提交 Pong。 */
result = xrtWsGroupPongAsync(pGroup, Payload);

xrtWsGroupCloseAsync

对调用时的稳定成员快照异步提交唯一 Close。

xwsgroupop* xrtWsGroupCloseAsync( xwsgroup* pGroup, uint16 iCode, xstrview Reason );
参数说明
xwsgroup* pGroup任务组
uint16 iCode状态码
xstrview Reason原因文本
返回:对调用时的稳定成员快照异步提交唯一 Close。

示例已编译验证

/* 对调用时的稳定成员快照异步提交唯一 Close。 */
result = xrtWsGroupCloseAsync(pGroup, iCode, Reason);

xrtWsGroupWaitAsync

对调用时的稳定成员快照异步等待同一种 Connection 条件。

xwsgroupop* xrtWsGroupWaitAsync( xwsgroup* pGroup, xwsconnwait Wait );
参数说明
xwsgroup* pGroup任务组
xwsconnwait Wait等待位
返回:对调用时的稳定成员快照异步等待同一种 Connection 条件。

示例已编译验证

/* 对调用时的稳定成员快照异步等待同一种 Connection 条件。 */
result = xrtWsGroupWaitAsync(pGroup, Wait);

xrtWsGroupOpRef

增加批量操作引用并返回原指针。

xwsgroupop* xrtWsGroupOpRef(xwsgroupop* pOperation);
参数说明
xwsgroupop* pOperation操作对象
返回:增加批量操作引用并返回原指针。

示例已编译验证

/* 增加批量操作引用并返回原指针。 */
result = xrtWsGroupOpRef(pOperation);

xrtWsGroupOpDestroy

释放批量操作引用;已提交的 Connection 操作不会因此取消。

void xrtWsGroupOpDestroy(xwsgroupop* pOperation);
参数说明
xwsgroupop* pOperation操作对象
返回:释放批量操作引用;已提交的 Connection 操作不会因此取消。

示例已编译验证

xrtWsGroupOpDestroy(pOperation);

xrtWsGroupOpCount

返回稳定成员槽位总数。

size_t xrtWsGroupOpCount(const xwsgroupop* pOperation);
参数说明
const xwsgroupop* pOperation操作对象
返回:返回稳定成员槽位总数。

示例已编译验证

/* 返回稳定成员槽位总数。 */
result = xrtWsGroupOpCount(pOperation);

xrtWsGroupOpAccepted

返回成功创建逐成员 Future 的槽位数。

size_t xrtWsGroupOpAccepted(const xwsgroupop* pOperation);
参数说明
const xwsgroupop* pOperation操作对象
返回:返回成功创建逐成员 Future 的槽位数。

示例已编译验证

/* 返回成功创建逐成员 Future 的槽位数。 */
result = xrtWsGroupOpAccepted(pOperation);

xrtWsGroupOpRejected

返回提交阶段同步拒绝的槽位数。

size_t xrtWsGroupOpRejected(const xwsgroupop* pOperation);
参数说明
const xwsgroupop* pOperation操作对象
返回:返回提交阶段同步拒绝的槽位数。

示例已编译验证

/* 返回提交阶段同步拒绝的槽位数。 */
result = xrtWsGroupOpRejected(pOperation);

xrtWsGroupOpDoneCount

以 O(1) 并发快照返回同步拒绝或已经进入 Future 终态的槽位数。

size_t xrtWsGroupOpDoneCount(const xwsgroupop* pOperation);
参数说明
const xwsgroupop* pOperation操作对象
返回:以 O(1) 并发快照返回同步拒绝或已经进入 Future 终态的槽位数。

示例已编译验证

/* 以 O(1) 并发快照返回同步拒绝或已经进入 Future 终态的槽位数。 */
result = xrtWsGroupOpDoneCount(pOperation);

xrtWsGroupOpResult

读取指定槽位;输出允许未对齐,但必须完整且不能覆盖 Operation。

bool xrtWsGroupOpResult( const xwsgroupop* pOperation, size_t iIndex, xwsgroupopresult* pResult );
参数说明
const xwsgroupop* pOperation操作对象
size_t iIndex下标
xwsgroupopresult* pResult出:结果
返回:读取指定槽位;输出允许未对齐,但必须完整且不能覆盖 Operation。

示例已编译验证

/* 读取指定槽位;输出允许未对齐,但必须完整且不能覆盖 Operation。 */
result = xrtWsGroupOpResult(pOperation, iIndex, pResult);

xrtWsGroupOpItemFutureRef

返回增加引用后的逐成员 Future;同步拒绝槽位返回空指针。

xfuture* xrtWsGroupOpItemFutureRef( const xwsgroupop* pOperation, size_t iIndex );
参数说明
const xwsgroupop* pOperation操作对象
size_t iIndex下标
返回:返回增加引用后的逐成员 Future;同步拒绝槽位返回空指针。

示例已编译验证

/* 返回增加引用后的逐成员 Future;同步拒绝槽位返回空指针。 */
result = xrtWsGroupOpItemFutureRef(pOperation, iIndex);

xrtWsGroupOpFutureRef

XRT_API xfuture* xrtWsGroupOpFutureRef(const xwsgroupop* pOperation);

;
返回:XRT_API xfuture* xrtWsGroupOpFutureRef(const xwsgroupop* pOperation);

示例已编译验证

/* XRT_API xfuture* xrtWsGroupOpFutureRef(const xwsgroupop* pOperation); */
result = xrtWsGroupOpFutureRef();

xrtWsGroupOpCancel

向全部已接纳且尚未结束的逐成员 Future 请求协作取消,并返回成功请求数。

size_t xrtWsGroupOpCancel(xwsgroupop* pOperation);
参数说明
xwsgroupop* pOperation操作对象
返回:向全部已接纳且尚未结束的逐成员 Future 请求协作取消,并返回成功请求数。

示例已编译验证

/* 向全部已接纳且尚未结束的逐成员 Future 请求协作取消,并返回成功请求数。 */
result = xrtWsGroupOpCancel(pOperation);

xrtWsGroupOpWait

等待全部已接纳操作进入终态。

xwaitresult xrtWsGroupOpWait(xwsgroupop* pOperation);
参数说明
xwsgroupop* pOperation操作对象
返回:等待全部已接纳操作进入终态。

示例已编译验证

/* 等待全部已接纳操作进入终态。 */
result = xrtWsGroupOpWait(pOperation);

xrtWsGroupOpWaitFor

在相对微秒数内等待全部已接纳操作进入终态。

xwaitresult xrtWsGroupOpWaitFor( xwsgroupop* pOperation, uint64 iTimeout );
参数说明
xwsgroupop* pOperation操作对象
uint64 iTimeout超时(微秒)
返回:在相对微秒数内等待全部已接纳操作进入终态。

示例已编译验证

/* 在相对微秒数内等待全部已接纳操作进入终态。 */
result = xrtWsGroupOpWaitFor(pOperation, iTimeout);

xrtWsGroupOpWaitUntil

等待全部已接纳操作到指定单调时钟截止时间。

xwaitresult xrtWsGroupOpWaitUntil( xwsgroupop* pOperation, xdeadline iDeadline );
参数说明
xwsgroupop* pOperation操作对象
xdeadline iDeadline截止时间
返回:等待全部已接纳操作到指定单调时钟截止时间。

示例已编译验证

/* 等待全部已接纳操作到指定单调时钟截止时间。 */
result = xrtWsGroupOpWaitUntil(pOperation, iDeadline);

xrtWsGroupOpWaitUntilCancel

等待批量操作、截止时间或调用方取消令牌中的首个事件。

xwaitresult xrtWsGroupOpWaitUntilCancel( xwsgroupop* pOperation, xdeadline iDeadline, xcancel* pCancel );
参数说明
xwsgroupop* pOperation操作对象
xdeadline iDeadline截止时间
xcancel* pCancel取消令牌
返回:等待批量操作、截止时间或调用方取消令牌中的首个事件。

示例已编译验证

/* 等待批量操作、截止时间或调用方取消令牌中的首个事件。 */
result = xrtWsGroupOpWaitUntilCancel(pOperation, iDeadline, pCancel);