xrtWsGroupCreate
创建连接组;Limit 为零表示不设置成员数量上限。
| 参数 | 说明 |
|---|---|
| size_t iLimit | 上限 |
示例已编译验证
/* 创建连接组;Limit 为零表示不设置成员数量上限。 */ xhandle* h = xrtWsGroupCreate(iLimit);
xrtWsGroupRef
增加连接组引用并返回原指针。
| 参数 | 说明 |
|---|---|
| xwsgroup* pGroup | 任务组 |
示例已编译验证
/* 增加连接组引用并返回原指针。 */ result = xrtWsGroupRef(pGroup);
xrtWsGroupDestroy
释放连接组引用;最后一个引用只释放成员,不关闭连接。
| 参数 | 说明 |
|---|---|
| xwsgroup* pGroup | 任务组 |
示例已编译验证
xrtWsGroupDestroy(pGroup);
xrtWsGroupAdd
加入并持有 Connection;重复加入成功且不增加第二个引用。
| 参数 | 说明 |
|---|---|
| xwsgroup* pGroup | 任务组 |
| xwsconn* pConnection | 连接对象 |
示例已编译验证
/* 加入并持有 Connection;重复加入成功且不增加第二个引用。 */ result = xrtWsGroupAdd(pGroup, pConnection);
xrtWsGroupRemove
移除并释放 Connection;成员不存在时正常返回 false。
| 参数 | 说明 |
|---|---|
| xwsgroup* pGroup | 任务组 |
| xwsconn* pConnection | 连接对象 |
示例已编译验证
/* 移除并释放 Connection;成员不存在时正常返回 false。 */ result = xrtWsGroupRemove(pGroup, pConnection);
xrtWsGroupHas
判断 Connection 是否属于当前组。
| 参数 | 说明 |
|---|---|
| const xwsgroup* pGroup | 任务组 |
| const xwsconn* pConnection | 连接对象 |
示例已编译验证
/* 判断 Connection 是否属于当前组。 */ result = xrtWsGroupHas(pGroup, pConnection);
xrtWsGroupCount
返回当前成员数量。
| 参数 | 说明 |
|---|---|
| const xwsgroup* pGroup | 任务组 |
示例已编译验证
/* 返回当前成员数量。 */ result = xrtWsGroupCount(pGroup);
xrtWsGroupLimit
返回创建时设置的硬上限;零表示没有显式上限。
| 参数 | 说明 |
|---|---|
| const xwsgroup* pGroup | 任务组 |
示例已编译验证
/* 返回创建时设置的硬上限;零表示没有显式上限。 */ result = xrtWsGroupLimit(pGroup);
xrtWsGroupSeal
永久阻止新成员加入;重复调用保持成功。
| 参数 | 说明 |
|---|---|
| xwsgroup* pGroup | 任务组 |
示例已编译验证
/* 永久阻止新成员加入;重复调用保持成功。 */ result = xrtWsGroupSeal(pGroup);
xrtWsGroupSealed
返回连接组是否已经封闭。
| 参数 | 说明 |
|---|---|
| const xwsgroup* pGroup | 任务组 |
示例已编译验证
/* 返回连接组是否已经封闭。 */ result = xrtWsGroupSealed(pGroup);
xrtWsGroupClear
原子移走全部成员并在组锁外释放,返回数量且不重新开放已封闭的组。
| 参数 | 说明 |
|---|---|
| xwsgroup* pGroup | 任务组 |
示例已编译验证
/* 原子移走全部成员并在组锁外释放,返回数量且不重新开放已封闭的组。 */ result = xrtWsGroupClear(pGroup);
xrtWsGroupSnapshotCreate
在组锁外分配并创建保序成员快照;空组也返回有效空快照。
| 参数 | 说明 |
|---|---|
| const xwsgroup* pGroup | 任务组 |
示例已编译验证
/* 在组锁外分配并创建保序成员快照;空组也返回有效空快照。 */ xhandle* h = xrtWsGroupSnapshotCreate(pGroup);
xrtWsGroupSnapshotCount
返回快照成员数量。
| 参数 | 说明 |
|---|---|
| const xwsgroupsnapshot* pSnapshot | Snashot 参数 |
示例已编译验证
/* 返回快照成员数量。 */ result = xrtWsGroupSnapshotCount(pSnapshot);
xrtWsGroupSnapshotGet
借用指定快照成员;借用期不超过快照生命周期。
| 参数 | 说明 |
|---|---|
| const xwsgroupsnapshot* pSnapshot | Snashot 参数 |
| size_t iIndex | 下标 |
示例已编译验证
/* 借用指定快照成员;借用期不超过快照生命周期。 */ result = xrtWsGroupSnapshotGet(pSnapshot, iIndex);
xrtWsGroupSnapshotDestroy
释放快照和它持有的全部 Connection 引用。
| 参数 | 说明 |
|---|---|
| xwsgroupsnapshot* pSnapshot | Snashot 参数 |
示例已编译验证
xrtWsGroupSnapshotDestroy(pSnapshot);
xrtWsGroupSendAsync
对调用时的稳定成员快照异步提交一条 Text 或 Binary 消息;负载只复制一次。
| 参数 | 说明 |
|---|---|
| xwsgroup* pGroup | 任务组 |
| xwsopcode Opcode | Ocode 参数 |
| xbytesview Payload | 负载 |
示例已编译验证
/* 对调用时的稳定成员快照异步提交一条 Text 或 Binary 消息;负载只复制一次。 */ result = xrtWsGroupSendAsync(pGroup, Opcode, Payload);
xrtWsGroupTextAsync
对调用时的稳定成员快照异步提交 UTF-8 Text。
| 参数 | 说明 |
|---|---|
| xwsgroup* pGroup | 任务组 |
| xstrview Text | 文本视图 |
示例已编译验证
/* 对调用时的稳定成员快照异步提交 UTF-8 Text。 */ result = xrtWsGroupTextAsync(pGroup, Text);
xrtWsGroupBinaryAsync
对调用时的稳定成员快照异步提交 Binary。
| 参数 | 说明 |
|---|---|
| xwsgroup* pGroup | 任务组 |
| xbytesview Data | 数据内容 |
示例已编译验证
/* 对调用时的稳定成员快照异步提交 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 ); */ result = xrtWsGroupSendRefAsync();
xrtWsGroupTextRefAsync
异步提交共享所有权 UTF-8 Text。
| 参数 | 说明 |
|---|---|
| xwsgroup* pGroup | 任务组 |
| const xnetref* pRef | 引用 |
示例已编译验证
/* 异步提交共享所有权 UTF-8 Text。 */ result = xrtWsGroupTextRefAsync(pGroup, pRef);
xrtWsGroupBinaryRefAsync
异步提交共享所有权 Binary。
| 参数 | 说明 |
|---|---|
| xwsgroup* pGroup | 任务组 |
| const xnetref* pRef | 引用 |
示例已编译验证
/* 异步提交共享所有权 Binary。 */ result = xrtWsGroupBinaryRefAsync(pGroup, pRef);
xrtWsGroupPingAsync
对调用时的稳定成员快照异步提交 Ping。
| 参数 | 说明 |
|---|---|
| xwsgroup* pGroup | 任务组 |
| xbytesview Payload | 负载 |
示例已编译验证
/* 对调用时的稳定成员快照异步提交 Ping。 */ result = xrtWsGroupPingAsync(pGroup, Payload);
xrtWsGroupPongAsync
对调用时的稳定成员快照异步提交 Pong。
| 参数 | 说明 |
|---|---|
| xwsgroup* pGroup | 任务组 |
| xbytesview Payload | 负载 |
示例已编译验证
/* 对调用时的稳定成员快照异步提交 Pong。 */ result = xrtWsGroupPongAsync(pGroup, Payload);
xrtWsGroupCloseAsync
对调用时的稳定成员快照异步提交唯一 Close。
| 参数 | 说明 |
|---|---|
| xwsgroup* pGroup | 任务组 |
| uint16 iCode | 状态码 |
| xstrview Reason | 原因文本 |
示例已编译验证
/* 对调用时的稳定成员快照异步提交唯一 Close。 */ result = xrtWsGroupCloseAsync(pGroup, iCode, Reason);
xrtWsGroupWaitAsync
对调用时的稳定成员快照异步等待同一种 Connection 条件。
| 参数 | 说明 |
|---|---|
| xwsgroup* pGroup | 任务组 |
| xwsconnwait Wait | 等待位 |
示例已编译验证
/* 对调用时的稳定成员快照异步等待同一种 Connection 条件。 */ result = xrtWsGroupWaitAsync(pGroup, Wait);
xrtWsGroupOpRef
增加批量操作引用并返回原指针。
| 参数 | 说明 |
|---|---|
| xwsgroupop* pOperation | 操作对象 |
示例已编译验证
/* 增加批量操作引用并返回原指针。 */ result = xrtWsGroupOpRef(pOperation);
xrtWsGroupOpDestroy
释放批量操作引用;已提交的 Connection 操作不会因此取消。
| 参数 | 说明 |
|---|---|
| xwsgroupop* pOperation | 操作对象 |
示例已编译验证
xrtWsGroupOpDestroy(pOperation);
xrtWsGroupOpCount
返回稳定成员槽位总数。
| 参数 | 说明 |
|---|---|
| const xwsgroupop* pOperation | 操作对象 |
示例已编译验证
/* 返回稳定成员槽位总数。 */ result = xrtWsGroupOpCount(pOperation);
xrtWsGroupOpAccepted
返回成功创建逐成员 Future 的槽位数。
| 参数 | 说明 |
|---|---|
| const xwsgroupop* pOperation | 操作对象 |
示例已编译验证
/* 返回成功创建逐成员 Future 的槽位数。 */ result = xrtWsGroupOpAccepted(pOperation);
xrtWsGroupOpRejected
返回提交阶段同步拒绝的槽位数。
| 参数 | 说明 |
|---|---|
| const xwsgroupop* pOperation | 操作对象 |
示例已编译验证
/* 返回提交阶段同步拒绝的槽位数。 */ result = xrtWsGroupOpRejected(pOperation);
xrtWsGroupOpDoneCount
以 O(1) 并发快照返回同步拒绝或已经进入 Future 终态的槽位数。
| 参数 | 说明 |
|---|---|
| const xwsgroupop* pOperation | 操作对象 |
示例已编译验证
/* 以 O(1) 并发快照返回同步拒绝或已经进入 Future 终态的槽位数。 */ result = xrtWsGroupOpDoneCount(pOperation);
xrtWsGroupOpResult
读取指定槽位;输出允许未对齐,但必须完整且不能覆盖 Operation。
| 参数 | 说明 |
|---|---|
| const xwsgroupop* pOperation | 操作对象 |
| size_t iIndex | 下标 |
| xwsgroupopresult* pResult | 出:结果 |
示例已编译验证
/* 读取指定槽位;输出允许未对齐,但必须完整且不能覆盖 Operation。 */ result = xrtWsGroupOpResult(pOperation, iIndex, pResult);
xrtWsGroupOpItemFutureRef
返回增加引用后的逐成员 Future;同步拒绝槽位返回空指针。
| 参数 | 说明 |
|---|---|
| const xwsgroupop* pOperation | 操作对象 |
| size_t iIndex | 下标 |
示例已编译验证
/* 返回增加引用后的逐成员 Future;同步拒绝槽位返回空指针。 */ result = xrtWsGroupOpItemFutureRef(pOperation, iIndex);
xrtWsGroupOpFutureRef
XRT_API xfuture* xrtWsGroupOpFutureRef(const xwsgroupop* pOperation);
示例已编译验证
/* XRT_API xfuture* xrtWsGroupOpFutureRef(const xwsgroupop* pOperation); */ result = xrtWsGroupOpFutureRef();
xrtWsGroupOpCancel
向全部已接纳且尚未结束的逐成员 Future 请求协作取消,并返回成功请求数。
| 参数 | 说明 |
|---|---|
| xwsgroupop* pOperation | 操作对象 |
示例已编译验证
/* 向全部已接纳且尚未结束的逐成员 Future 请求协作取消,并返回成功请求数。 */ result = xrtWsGroupOpCancel(pOperation);
xrtWsGroupOpWait
等待全部已接纳操作进入终态。
| 参数 | 说明 |
|---|---|
| xwsgroupop* pOperation | 操作对象 |
示例已编译验证
/* 等待全部已接纳操作进入终态。 */ result = xrtWsGroupOpWait(pOperation);
xrtWsGroupOpWaitFor
在相对微秒数内等待全部已接纳操作进入终态。
| 参数 | 说明 |
|---|---|
| xwsgroupop* pOperation | 操作对象 |
| uint64 iTimeout | 超时(微秒) |
示例已编译验证
/* 在相对微秒数内等待全部已接纳操作进入终态。 */ result = xrtWsGroupOpWaitFor(pOperation, iTimeout);
xrtWsGroupOpWaitUntil
等待全部已接纳操作到指定单调时钟截止时间。
| 参数 | 说明 |
|---|---|
| xwsgroupop* pOperation | 操作对象 |
| xdeadline iDeadline | 截止时间 |
示例已编译验证
/* 等待全部已接纳操作到指定单调时钟截止时间。 */ result = xrtWsGroupOpWaitUntil(pOperation, iDeadline);
xrtWsGroupOpWaitUntilCancel
等待批量操作、截止时间或调用方取消令牌中的首个事件。
| 参数 | 说明 |
|---|---|
| xwsgroupop* pOperation | 操作对象 |
| xdeadline iDeadline | 截止时间 |
| xcancel* pCancel | 取消令牌 |
示例已编译验证
/* 等待批量操作、截止时间或调用方取消令牌中的首个事件。 */ result = xrtWsGroupOpWaitUntilCancel(pOperation, iDeadline, pCancel);