|
XWOS API
4.0
XWOS C/C++ API参考手册
|
事件标志基类 更多...
#include <Flg.hxx>


Public 类型 | |
| enum | Trigger : xwu32_t { FlgSetAll = XWOS_FLG_TRIGGER_SET_ALL , FlgSetAny = XWOS_FLG_TRIGGER_SET_ANY , FlgClearAll = XWOS_FLG_TRIGGER_CLR_ALL , FlgClearAny = XWOS_FLG_TRIGGER_CLR_ANY , FlgToggleAll = XWOS_FLG_TRIGGER_TGL_ALL , FlgToggleAny = XWOS_FLG_TRIGGER_TGL_ANY } |
| 触发条件枚举 更多... | |
| enum | WaitMode : xwu32_t { FlgWait = 0 , FlgWaitTimed , FlgWaitUninterruptable , FlgTryWait } |
| 等待模式枚举 更多... | |
Public 成员函数 | |
| xwsz_t | num () |
| 获取事件的最大数量 | |
| void | read (xwos::Bmp< TNum > *out) |
| 读取事件标志位图的值 | |
| xwer_t | set (xwos::Bmp< TNum > *msk) |
| 同时设置多个事件标志位 | |
| xwer_t | set (xwos::Bmp< TNum > &msk) |
| xwer_t | set (unsigned long pos) |
| xwer_t | set (long pos) |
| xwer_t | clear (xwos::Bmp< TNum > *msk) |
| 同时清除多个事件标志位 | |
| xwer_t | clear (xwos::Bmp< TNum > &msk) |
| xwer_t | clear (unsigned long pos) |
| xwer_t | clear (long pos) |
| xwer_t | toggle (xwos::Bmp< TNum > *msk) |
| 同时翻转多个事件标志位 | |
| xwer_t | toggle (xwos::Bmp< TNum > &msk) |
| xwer_t | toggle (unsigned long pos) |
| xwer_t | toggle (long pos) |
| xwer_t | wait (enum Trigger trigger, bool consumption, xwos::Bmp< TNum > *origin, xwos::Bmp< TNum > *msk, enum WaitMode mode=WaitMode::FlgWait, xwtm_t to=((xwtm_t)((~(xwu64_t) 0) > > 1))) |
| 等待事件标志 | |
| template<xwsz_t TSelNum> | |
| xwer_t | bind (Sel< TSelNum > *sel, long pos) |
| 绑定事件标志对象到信号选择器 | |
| template<xwsz_t TSelNum> | |
| xwer_t | bind (Sel< TSelNum > &sel, long pos) |
| template<xwsz_t TSelNum> | |
| xwer_t | unbind (Sel< TSelNum > *sel) |
| 从信号选择器上解绑事件标志对象 | |
| template<xwsz_t TSelNum> | |
| xwer_t | unbind (Sel< TSelNum > &sel) |
| struct xwos_flg * | getXwosObj () |
| 获取XWOS对象指针 | |
Protected 成员函数 | |
| Flg () | |
| ~Flg () | |
Protected 属性 | |
| struct xwos_flg * | mFlgPtr |
| enum xwos::sync::Flg::Trigger : xwu32_t |
触发条件枚举
| 枚举值 | |
|---|---|
| FlgSetAll | 掩码中所有位同时为1 |
| FlgSetAny | 掩码中的任意位为1 |
| FlgClearAll | 掩码中的所有位同时为0 |
| FlgClearAny | 掩码中的任意位为0 |
| FlgToggleAll | 掩码中所有位翻转 |
| FlgToggleAny | 掩码中任意位翻转 |
| enum xwos::sync::Flg::WaitMode : xwu32_t |
等待模式枚举
| 枚举值 | |
|---|---|
| FlgWait | 等待模式 |
| FlgWaitTimed | 定时等待模式 |
| FlgWaitUninterruptable | 不可中断等待模式 |
| FlgTryWait | 尝试模式(只测试不等待) |
|
inlineprotected |
|
inlineprotected |
|
inline |
|
inline |
读取事件标志位图的值
| [out] | out | 指向缓冲区的指针,通过此缓冲区返回事件标志对象位图的值 |

|
inline |
同时设置多个事件标志位
| [in] | msk | 事件掩码 |
| XWOK | 没有错误 |
| -EFAULT | 无效的指针或空指针 |
msk 覆盖的位全部设置为 1 , 然后 广播 所有正在等待的线程。
|
inline |
这是为便于使用而提供的一个重载成员函数.与上面的函数相比,它接受不同类型的参数.

|
inline |
这是为便于使用而提供的一个重载成员函数.与上面的函数相比,它接受不同类型的参数.

|
inline |
这是为便于使用而提供的一个重载成员函数.与上面的函数相比,它接受不同类型的参数.

|
inline |
同时清除多个事件标志位
| [in] | msk | 事件的位图掩码 |
| XWOK | 没有错误 |
| -EFAULT | 无效的指针或空指针 |
msk 覆盖的位全部清 0 , 然后 广播 所有正在等待的线程。
|
inline |
这是为便于使用而提供的一个重载成员函数.与上面的函数相比,它接受不同类型的参数.

|
inline |
这是为便于使用而提供的一个重载成员函数.与上面的函数相比,它接受不同类型的参数.

|
inline |
这是为便于使用而提供的一个重载成员函数.与上面的函数相比,它接受不同类型的参数.

|
inline |
同时翻转多个事件标志位
| [in] | msk | 事件的位图掩码 |
| XWOK | 没有错误 |
| -EFAULT | 无效的指针或空指针 |
msk 覆盖的位全部翻转, 然后 广播 所有正在等待的线程。
|
inline |
这是为便于使用而提供的一个重载成员函数.与上面的函数相比,它接受不同类型的参数.

|
inline |
这是为便于使用而提供的一个重载成员函数.与上面的函数相比,它接受不同类型的参数.

|
inline |
这是为便于使用而提供的一个重载成员函数.与上面的函数相比,它接受不同类型的参数.

|
inline |
等待事件标志
| [in] | trigger | 事件触发条件,取值:
|
| [in] | consumption | 事件触发后是否清除事件:
|
| [in,out] | origin | 指向缓冲区的指针:
|
| [in] | msk | 事件的位图掩码,表示只关注掩码部分的事件 |
| [in] | mode | 等待模式,取值 Flg::WaitMode : |
| [in] | to | 期望唤醒的时间点, 仅当 mode == Flg::WaitMode::FlgWaitTimed 时有效。 |
| XWOK | 没有错误 |
| -EFAULT | 空指针 |
| -ETIMEDOUT | 超时 |
| -EINTR | 等待被中断 |
| -ENOTTHDCTX | 不在线程上下文中 |
mode == Flg::WaitMode::FlgTryWait : 任意mode != Flg::WaitMode::FlgTryWait : 线程Flg::WaitMode::FlgWait: 调用线程会阻塞等待。Flg::WaitMode::FlgWaitTimed 定时等待模式, to 表示等待超时的时间点:to 通常是未来时间点,即 当前系统时间 + delta , 可以使用 xwtm_ft(delta) 表示;to 是过去的时间点,将直接返回 -ETIMEDOUT 。Flg::WaitMode::FlgWaitUninterruptable 不可中断等待模式。Flg::WaitMode::FlgTryWait 尝试模式(只测试不等待)。 
|
inline |
绑定事件标志对象到信号选择器
| [in] | sel | 信号选择器的指针 |
| [in] | pos | 事件标志对象映射到信号选择器位图中的位置 |
| XWOK | 没有错误 |
| -EFAULT | 无效的指针或空指针 |
| -ECHRNG | 位置超出范围 |
| -EALREADY | 同步对象已经绑定到事件对象 |
| -EBUSY | 通道已经被其他同步对象独占 |

|
inline |
这是为便于使用而提供的一个重载成员函数.与上面的函数相比,它接受不同类型的参数.

|
inline |
从信号选择器上解绑事件标志对象
| [in] | sel | 信号选择器的引用 |
| XWOK | 没有错误 |
| -EFAULT | 空指针 |
| -ENOTCONN | 同步对象没有绑定到事件对象上 |

|
inline |
这是为便于使用而提供的一个重载成员函数.与上面的函数相比,它接受不同类型的参数.

|
inline |
|
protected |