XWOS API
4.0
XWOS C/C++ API参考手册
|
XWCQ C++ 对象 更多...
#include <Xwcq.hxx>
Public 成员函数 | |
Xwcq () | |
~Xwcq () | |
struct xwcq * | get () |
获取循环队列内部对象指针 | |
xwsz_t | capacity () |
XWCQ API: 获取循环队列的容量 TSlotNum | |
xwsz_t | size () |
XWCQ API: 获取循环队列的单个数据槽的大小 sizeof(T) | |
xwsz_t | availability () |
XWCQ API: 获取循环队列中有效数据槽的数量 | |
void | flush () |
清空循环队列 | |
xwer_t | eq (T *data, xwsz_t *size) |
将数据发送到循环队列的 尾端 (入队,EnQueue) | |
xwer_t | jq (T *data, xwsz_t *size) |
将数据发送循环队列的 首端 (插队,Jump the Queue) | |
xwer_t | dq (T *data, xwsz_t *size) |
等待从循环队列的 首端 接收数据 (离队,DeQueue) | |
xwer_t | dq (T *data, xwsz_t *size, xwtm_t to) |
限时等待从循环队列的 首端 接收数据 (离队,DeQueue) | |
xwer_t | dqUnintr (T *data, xwsz_t *size) |
等待从循环队列的 首端 接收数据 (离队,DeQueue), 并且等待不可被中断 | |
xwer_t | tryDq (T *data, xwsz_t *size) |
尝试从循环队列的 首端 接收数据 (离队,DeQueue) | |
xwer_t | rq (T *data, xwsz_t *size) |
等待从循环队列的 尾端 接收数据 (反向离队,Reversely deQueue) | |
xwer_t | rq (T *data, xwsz_t *size, xwtm_t to) |
限时等待从循环队列的 尾端 接收数据 (反向离队,Reversely deQueue) | |
xwer_t | rqUnintr (T *data, xwsz_t *size) |
等待从循环队列的 尾端 接收数据 (反向离队,Reversely deQueue), 并且等待不可被中断 | |
xwer_t | tryRq (T *data, xwsz_t *size) |
尝试从循环队列的 尾端 接收数据 (反向离队,Reversely deQueue) | |
xwer_t | pfq (T *data, xwsz_t *size) |
等待从循环队列 头端 拷贝数据 (Peek at the Front of Queue) | |
xwer_t | pfq (T *data, xwsz_t *size, xwtm_t to) |
限时等待从循环队列 头端 拷贝数据 (Peek at the Front of Queue) | |
xwer_t | pfqUnintr (T *data, xwsz_t *size) |
等待从循环队列 头端 拷贝数据 (Peek at the Front of Queue), 并且等待不可被中断 | |
xwer_t | tryPfq (T *data, xwsz_t *size) |
尝试从循环队列 头端 拷贝数据 (Peek at the Front of Queue) | |
xwer_t | prq (T *data, xwsz_t *size) |
等待从循环队列 尾端 拷贝数据 (Peek at the Rear of Queue) | |
xwer_t | prq (T *data, xwsz_t *size, xwtm_t to) |
限时等待从循环队列 尾端 拷贝数据 (Peek at the Rear of Queue) | |
xwer_t | prqUnintr (T *data, xwsz_t *size) |
等待从循环队列 尾端 拷贝数据 (Peek at the Rear of Queue), 并且等待不可被中断 | |
xwer_t | tryPrq (T *data, xwsz_t *size) |
尝试从循环队列 尾端 拷贝数据 (Peek at the Rear of Queue) | |
Private 属性 | |
struct xwcq | mCq |
xwu8_t | mPool [sizeof(T) *TSlotNum] |
XWCQ C++ 对象
|
inline |
|
inline |
|
inline |
XWCQ API: 获取循环队列中有效数据槽的数量
|
inline |
XWCQ API: 获取循环队列的容量 TSlotNum
|
inline |
等待从循环队列的 首端 接收数据 (离队,DeQueue)
[out] | data | 指向缓冲区的指针,此缓冲区用于接收数据 |
[in,out] | size | 指向缓冲区的指针,此缓冲区:
|
XWOK | 没有错误 |
-EFAULT | 空指针 |
-EINTR | 等待被中断 |
-ENOTTHDCTX | 不在线程上下文中 |
-EDISIRQ | 中断被关闭 |
-EDISPMPT | 抢占被关闭 |
-EDISBH | 中断底半部被关闭 |
-EINTR
。
|
inline |
限时等待从循环队列的 首端 接收数据 (离队,DeQueue)
[out] | data | 指向缓冲区的指针,此缓冲区用于接收数据 |
[in,out] | size | 指向缓冲区的指针,此缓冲区:
|
[in] | to | 期望唤醒的时间点 |
XWOK | 没有错误 |
-EFAULT | 空指针 |
-EINTR | 等待被中断 |
-ETIMEDOUT | 超时 |
-ENOTTHDCTX | 不在线程上下文中 |
-EDISIRQ | 中断被关闭 |
-EDISPMPT | 抢占被关闭 |
-EDISBH | 中断底半部被关闭 |
-EINTR
。to
表示等待超时的时间点:to
通常是未来的时间,即 当前系统时间 + delta
, 可以使用 xwtm_ft(delta)
表示;to
是过去的时间点,将直接返回 -ETIMEDOUT
。
|
inline |
等待从循环队列的 首端 接收数据 (离队,DeQueue), 并且等待不可被中断
[out] | data | 指向缓冲区的指针,此缓冲区用于接收数据 |
[in,out] | size | 指向缓冲区的指针,此缓冲区:
|
XWOK | 没有错误 |
-EFAULT | 空指针 |
-ENOTTHDCTX | 不在线程上下文中 |
-EDISIRQ | 中断被关闭 |
-EDISPMPT | 抢占被关闭 |
-EDISBH | 中断底半部被关闭 |
|
inline |
将数据发送到循环队列的 尾端 (入队,EnQueue)
[in] | data | 数据 |
[in,out] | size | 指向缓冲区的指针,此缓冲区:
|
XWOK | 没有错误 |
-EFAULT | 空指针 |
*size
超过初始化循环队列时指定的 sizeof(T)
, 数据将被截断。
|
inline |
清空循环队列
|
inline |
|
inline |
将数据发送循环队列的 首端 (插队,Jump the Queue)
[in] | data | 数据 |
[in] | size | 数据的大小 |
XWOK | 没有错误 |
-EFAULT | 空指针 |
*size
超过初始化循环队列时指定的 sizeof(T)
, 数据将被截断。
|
inline |
等待从循环队列 头端 拷贝数据 (Peek at the Front of Queue)
[out] | data | 指向缓冲区的指针,此缓冲区用于接收数据 |
[in,out] | size | 指向缓冲区的指针,此缓冲区:
|
XWOK | 没有错误 |
-EFAULT | 空指针 |
-EINTR | 等待被中断 |
-ENOTTHDCTX | 不在线程上下文中 |
-EDISIRQ | 中断被关闭 |
-EDISPMPT | 抢占被关闭 |
-EDISBH | 中断底半部被关闭 |
-EINTR
。
|
inline |
限时等待从循环队列 头端 拷贝数据 (Peek at the Front of Queue)
[out] | data | 指向缓冲区的指针,此缓冲区用于接收数据 |
[in,out] | size | 指向缓冲区的指针,此缓冲区:
|
[in] | to | 期望唤醒的时间点 |
XWOK | 没有错误 |
-EFAULT | 空指针 |
-EINTR | 等待被中断 |
-ETIMEDOUT | 超时 |
-ENOTTHDCTX | 不在线程上下文中 |
-EDISIRQ | 中断被关闭 |
-EDISPMPT | 抢占被关闭 |
-EDISBH | 中断底半部被关闭 |
-EINTR
。to
表示等待超时的时间点:to
通常是未来的时间,即 当前系统时间 + delta
, 可以使用 xwtm_ft(delta)
表示;to
是过去的时间点,将直接返回 -ETIMEDOUT
。
|
inline |
等待从循环队列 头端 拷贝数据 (Peek at the Front of Queue), 并且等待不可被中断
[out] | data | 指向缓冲区的指针,此缓冲区用于接收数据 |
[in,out] | size | 指向缓冲区的指针,此缓冲区:
|
XWOK | 没有错误 |
-EFAULT | 空指针 |
-ENOTTHDCTX | 不在线程上下文中 |
-EDISIRQ | 中断被关闭 |
-EDISPMPT | 抢占被关闭 |
-EDISBH | 中断底半部被关闭 |
|
inline |
等待从循环队列 尾端 拷贝数据 (Peek at the Rear of Queue)
[out] | data | 指向缓冲区的指针,此缓冲区用于接收数据 |
[in,out] | size | 指向缓冲区的指针,此缓冲区:
|
XWOK | 没有错误 |
-EFAULT | 空指针 |
-EINTR | 等待被中断 |
-ENOTTHDCTX | 不在线程上下文中 |
-EDISIRQ | 中断被关闭 |
-EDISPMPT | 抢占被关闭 |
-EDISBH | 中断底半部被关闭 |
-EINTR
。
|
inline |
限时等待从循环队列 尾端 拷贝数据 (Peek at the Rear of Queue)
[out] | data | 指向缓冲区的指针,此缓冲区用于接收数据 |
[in,out] | size | 指向缓冲区的指针,此缓冲区:
|
[in] | to | 期望唤醒的时间点 |
XWOK | 没有错误 |
-EFAULT | 空指针 |
-EINTR | 等待被中断 |
-ETIMEDOUT | 超时 |
-ENOTTHDCTX | 不在线程上下文中 |
-EDISIRQ | 中断被关闭 |
-EDISPMPT | 抢占被关闭 |
-EDISBH | 中断底半部被关闭 |
-EINTR
。to
表示等待超时的时间点:to
通常是未来的时间,即 当前系统时间 + delta
, 可以使用 xwtm_ft(delta)
表示;to
是过去的时间点,将直接返回 -ETIMEDOUT
。
|
inline |
等待从循环队列 尾端 拷贝数据 (Peek at the Rear of Queue), 并且等待不可被中断
[out] | data | 指向缓冲区的指针,此缓冲区用于接收数据 |
[in,out] | size | 指向缓冲区的指针,此缓冲区:
|
XWOK | 没有错误 |
-EFAULT | 空指针 |
-ENOTTHDCTX | 不在线程上下文中 |
-EDISIRQ | 中断被关闭 |
-EDISPMPT | 抢占被关闭 |
-EDISBH | 中断底半部被关闭 |
|
inline |
等待从循环队列的 尾端 接收数据 (反向离队,Reversely deQueue)
[out] | data | 指向缓冲区的指针,此缓冲区用于接收数据 |
[in,out] | size | 指向缓冲区的指针,此缓冲区:
|
XWOK | 没有错误 |
-EFAULT | 空指针 |
-EINTR | 等待被中断 |
-ENOTTHDCTX | 不在线程上下文中 |
-EDISIRQ | 中断被关闭 |
-EDISPMPT | 抢占被关闭 |
-EDISBH | 中断底半部被关闭 |
-EINTR
。
|
inline |
限时等待从循环队列的 尾端 接收数据 (反向离队,Reversely deQueue)
[out] | data | 指向缓冲区的指针,此缓冲区用于接收数据 |
[in,out] | size | 指向缓冲区的指针,此缓冲区:
|
[in] | to | 期望唤醒的时间点 |
XWOK | 没有错误 |
-EFAULT | 空指针 |
-EINTR | 等待被中断 |
-ETIMEDOUT | 超时 |
-ENOTTHDCTX | 不在线程上下文中 |
-EDISIRQ | 中断被关闭 |
-EDISPMPT | 抢占被关闭 |
-EDISBH | 中断底半部被关闭 |
-EINTR
。to
表示等待超时的时间点:to
通常是未来的时间,即 当前系统时间 + delta
, 可以使用 xwtm_ft(delta)
表示;to
是过去的时间点,将直接返回 -ETIMEDOUT
。
|
inline |
等待从循环队列的 尾端 接收数据 (反向离队,Reversely deQueue), 并且等待不可被中断
[out] | data | 指向缓冲区的指针,此缓冲区用于接收数据 |
[in,out] | size | 指向缓冲区的指针,此缓冲区:
|
XWOK | 没有错误 |
-EFAULT | 空指针 |
-ENOTTHDCTX | 不在线程上下文中 |
-EDISIRQ | 中断被关闭 |
-EDISPMPT | 抢占被关闭 |
-EDISBH | 中断底半部被关闭 |
|
inline |
XWCQ API: 获取循环队列的单个数据槽的大小 sizeof(T)
|
inline |
尝试从循环队列的 首端 接收数据 (离队,DeQueue)
[out] | data | 指向缓冲区的指针,此缓冲区用于接收数据 |
[in,out] | size | 指向缓冲区的指针,此缓冲区:
|
XWOK | 没有错误 |
-EFAULT | 空指针 |
-ENODATA | 循环队列为空 |
-ENODATA
。
|
inline |
尝试从循环队列 头端 拷贝数据 (Peek at the Front of Queue)
[out] | data | 指向缓冲区的指针,此缓冲区用于接收数据 |
[in,out] | size | 指向缓冲区的指针,此缓冲区:
|
XWOK | 没有错误 |
-EFAULT | 空指针 |
-ENODATA | 循环队列为空 |
-ENODATA
,此CAPI可在中断中使用。
|
inline |
尝试从循环队列 尾端 拷贝数据 (Peek at the Rear of Queue)
[out] | data | 指向缓冲区的指针,此缓冲区用于接收数据 |
[in,out] | size | 指向缓冲区的指针,此缓冲区:
|
XWOK | 没有错误 |
-EFAULT | 空指针 |
-ENODATA | 循环队列为空 |
-ENODATA
,此CAPI可在中断中使用。
|
inline |
尝试从循环队列的 尾端 接收数据 (反向离队,Reversely deQueue)
[out] | data | 指向缓冲区的指针,此缓冲区用于接收数据 |
[in,out] | size | 指向缓冲区的指针,此缓冲区:
|
XWOK | 没有错误 |
-EFAULT | 空指针 |
-ENODATA | 循环队列为空 |
-ENODATA
,此C++API可在中断中使用。
|
private |
|
private |