| 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 |