XWOS API  4.0
XWOS C/C++ API参考手册
载入中...
搜索中...
未找到
xwos::sync::Cond类 参考

条件量基类 更多...

#include <Cond.hxx>

类 xwos::sync::Cond 继承关系图:
xwos::sync::Cond 的协作图:

Public 成员函数

xwer_t unicast ()
 单播条件量
 
xwer_t broadcast ()
 广播条件量
 
xwer_t freeze ()
 冻结条件量
 
xwer_t thaw ()
 解冻条件量
 
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_condgetXwosObj ()
 获取XWOS对象指针
 

Protected 成员函数

 Cond ()
 
 ~Cond ()
 

Protected 属性

struct xwos_condmCondPtr
 

详细描述

条件量基类

在文件 Cond.hxx55 行定义.

构造及析构函数说明

◆ Cond()

xwos::sync::Cond::Cond ( )
inlineprotected

在文件 Cond.hxx61 行定义.

61: mCondPtr(nullptr) {}
struct xwos_cond * mCondPtr
Definition Cond.hxx:58

◆ ~Cond()

xwos::sync::Cond::~Cond ( )
inlineprotected

在文件 Cond.hxx62 行定义.

62{ mCondPtr = nullptr; }

成员函数说明

◆ unicast()

xwer_t xwos::sync::Cond::unicast ( )
inline

单播条件量

返回
错误码
返回值
XWOK没有错误
-EFAULT无效的指针或空指针
-ENEGATIVE条件量对象已被冻结
注解
  • 上下文:任意
  • 单播条件量会唤醒第一个等待的线程。
  • 此C++API只对未冻结的条件量对象起作用,已冻结的条件量对象将返回 错误码 -ENEGATIVE

在文件 Cond.hxx78 行定义.

78{ return xwos_cond_unicast(mCondPtr); }
static xwer_t xwos_cond_unicast(struct xwos_cond *cond)
XWOS API:单播条件量对象
Definition cond.h:382
函数调用图:

◆ broadcast()

xwer_t xwos::sync::Cond::broadcast ( )
inline

广播条件量

返回
错误码
返回值
XWOK没有错误
-EFAULT无效的指针或空指针
-ENEGATIVE条件量对象已被冻结
注解
  • 上下文:任意
  • 广播条件量会唤醒所有等待的线程。
  • 此C++API只对未冻结的条件量对象起作用,已冻结的条件量对象将返回 错误码 -ENEGATIVE

在文件 Cond.hxx93 行定义.

static xwer_t xwos_cond_broadcast(struct xwos_cond *cond)
XWOS API:广播条件量对象
Definition cond.h:362
函数调用图:

◆ freeze()

xwer_t xwos::sync::Cond::freeze ( )
inline

冻结条件量

返回
错误码
返回值
XWOK没有错误
-EFAULT无效的指针或空指针
-EALREADY条件量对象已被冻结
注解
  • 上下文:任意
  • 已冻结的条件量不允许单播或广播,但可以被线程等待。
  • 对已经冻结的条件量再次冻结,将返回 -EALREADY

在文件 Cond.hxx107 行定义.

107{ return xwos_cond_freeze(mCondPtr); }
static xwer_t xwos_cond_freeze(struct xwos_cond *cond)
XWOS API:冻结条件量对象
Definition cond.h:323
函数调用图:

◆ thaw()

xwer_t xwos::sync::Cond::thaw ( )
inline

解冻条件量

返回
错误码
返回值
XWOK没有错误
-EFAULT无效的指针或空指针
-EALREADY条件量对象未被冻结
注解
  • 上下文:任意
  • 此函数只对已冻结的条件量对象起作用, 对未冻结的条件量对象调用此函数将返回错误码 -EALREADY

在文件 Cond.hxx121 行定义.

121{ return xwos_cond_thaw(mCondPtr); }
static xwer_t xwos_cond_thaw(struct xwos_cond *cond)
XWOS API:解冻条件量对象
Definition cond.h:342
函数调用图:

◆ bind() [1/2]

template<xwsz_t TSelNum>
xwer_t xwos::sync::Cond::bind ( Sel< TSelNum > *  sel,
long  pos 
)
inline

绑定条件量对象到信号选择器

参数
[in]sel信号选择器的指针
[in]pos条件量对象映射到信号选择器位图中的位置
返回
错误码
返回值
XWOK没有错误
-EFAULT无效的指针或空指针
-ECHRNG位置超出范围
-EALREADY同步对象已经绑定到事件对象
-EBUSY通道已经被其他同步对象独占
注解
  • 上下文:任意
  • 绑定方式:非独占绑定
  • 绑定了信号选择器的条件量对象,只有 广播 才会向信号选择器发送信号。

在文件 Cond.hxx139 行定义.

140 {
141 return xwos_cond_bind(mCondPtr, sel->getXwosObj(), (xwsq_t)pos);
142 }
unsigned long xwsq_t
Definition type.h:445
static xwer_t xwos_cond_bind(struct xwos_cond *cond, struct xwos_sel *sel, xwsq_t pos)
XWOS API:绑定条件量对象到信号选择器
Definition cond.h:287
函数调用图:

◆ bind() [2/2]

template<xwsz_t TSelNum>
xwer_t xwos::sync::Cond::bind ( Sel< TSelNum > &  sel,
long  pos 
)
inline

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

在文件 Cond.hxx147 行定义.

148 {
149 return xwos_cond_bind(mCondPtr, sel.getXwosObj(), (xwsq_t)pos);
150 }
函数调用图:

◆ unbind() [1/2]

template<xwsz_t TSelNum>
xwer_t xwos::sync::Cond::unbind ( Sel< TSelNum > *  sel)
inline

从信号选择器上解绑条件量对象

参数
[in]sel信号选择器的引用
返回
错误码
返回值
XWOK没有错误
-EFAULT空指针
-ENOTCONN同步对象没有绑定到事件对象上
注解
  • 上下文:任意

在文件 Cond.hxx163 行定义.

164 {
165 return xwos_cond_unbind(mCondPtr, sel->getXwosObj());
166 }
static xwer_t xwos_cond_unbind(struct xwos_cond *cond, struct xwos_sel *sel)
XWOS API:从信号选择器上解绑条件量对象
Definition cond.h:304
函数调用图:

◆ unbind() [2/2]

template<xwsz_t TSelNum>
xwer_t xwos::sync::Cond::unbind ( Sel< TSelNum > &  sel)
inline

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

在文件 Cond.hxx171 行定义.

172 {
173 return xwos_cond_unbind(mCondPtr, sel.getXwosObj());
174 }
函数调用图:

◆ getXwosObj()

struct xwos_cond * xwos::sync::Cond::getXwosObj ( )
inline

获取XWOS对象指针

在文件 Cond.hxx179 行定义.

179{ return mCondPtr; }
这是这个函数的调用关系图:

结构体成员变量说明

◆ mCondPtr

struct xwos_cond* xwos::sync::Cond::mCondPtr
protected

在文件 Cond.hxx58 行定义.


该类的文档由以下文件生成: