librf

Public 成员函数 | 所有成员列表
resumef::event_t结构体 参考

用于协程的事件。 更多...

## Public 成员函数
| event_t (bool initially=false)
| 构造一个事件。 更多...
| event_t (std::adopt_lock_t)
| 构造一个无效的事件。 更多...
| ~event_t ()
| 采用shared_ptr<>来保存内部的事件实现。故不必担心正在被等待的协程，因为事件提前销毁而出现异常。
void | signal_all () const noexcept
| 向所有正在等待的协程触发一次信号。 更多...
void | signal () const noexcept
| 触发一次信号。 更多...
void | reset () const noexcept
| 重置信号。 更多...
awaiter | operator co_await () const noexcept
| 在协程中等待信号触发。 更多...
awaiter | wait () const noexcept
| 在协程中等待信号触发。 更多...
template<class _Rep , class _Period >
timeout_awaiter | wait_for (const std::chrono::duration< _Rep, _Period > &dt) const noexcept
| 在协程中等待信号触发，直到超时。 更多...
template<class _Clock , class _Duration >
timeout_awaiter | wait_until (const std::chrono::time_point< _Clock, _Duration > &tp) const noexcept
| 在协程中等待信号触发，直到超时。 更多...

## 详细描述

用于协程的事件。

用于同步不同线程里运行的协程。

## 构造及析构函数说明

## ◆ event_t() [1/2]

resumef::event_t::event_t | ( | bool | initially = `false` | ) |

构造一个事件。

参数

  initially | 初始是否触发一次信号。

## ◆ event_t() [2/2]

resumef::event_t::event_t | ( | std::adopt_lock_t |  | ) |

构造一个无效的事件。

如果用于后续保存另外一个事件，则应当使用此构造函数，便于节省一次不必要的内部初始化。

## 成员函数说明

## ◆ operator co_await()

awaiter resumef::event_t::operator co_await | ( |  | ) | const
| noexcept

在协程中等待信号触发。

参见
  等同于co_await wait()。

注意
  只能在协程中调用。

## ◆ reset()

void resumef::event_t::reset | ( |  | ) | const
| noexcept

重置信号。

注意
  非协程中也可以使用。

## ◆ signal()

void resumef::event_t::signal | ( |  | ) | const
| noexcept

触发一次信号。

如果有正在等待的协程，则最先等待的协程会被唤醒。
如果没有正在等待的协程，则信号触发次数加一。之后有协程调用wait()，则会直接返回。

注意
  非协程中也可以使用。

## ◆ signal_all()

void resumef::event_t::signal_all | ( |  | ) | const
| noexcept

向所有正在等待的协程触发一次信号。

注意
  非协程中也可以使用。

## ◆ wait()

awaiter resumef::event_t::wait | ( |  | ) | const
| noexcept

在协程中等待信号触发。

如果信号已经触发，则立即返回true。
否则，当前协程被阻塞，直到信号被触发后唤醒。 消耗一次信号触发次数。

返回值

  bool | [co_await] 返回是否等到了信号

注意
  只能在协程中调用。

## ◆ wait_for()

template<class _Rep , class _Period >

timeout_awaiter resumef::event_t::wait_for | ( | const std::chrono::duration< _Rep, _Period > & | dt | ) | const
| noexcept

在协程中等待信号触发，直到超时。

如果信号已经触发，则立即返回true。
否则，当前协程被阻塞，直到信号被触发后，或者超时后唤醒。 如果等到了信号，则消耗一次信号触发次数。

参数

  dt | 超时时长

返回值

  bool | [co_await] 等到了信号返回true，超时了返回false。

注意
  只能在协程中调用。

## ◆ wait_until()

template<class _Clock , class _Duration >

timeout_awaiter resumef::event_t::wait_until | ( | const std::chrono::time_point< _Clock, _Duration > & | tp | ) | const
| noexcept

在协程中等待信号触发，直到超时。

如果信号已经触发，则立即返回true。
否则，当前协程被阻塞，直到信号被触发后，或者超时后唤醒。 如果等到了信号，则消耗一次信号触发次数。

参数

  tp | 超时时刻

返回值

  bool | [co_await] 等到了信号返回true，超时了返回false。

注意
  只能在协程中调用。

该结构体的文档由以下文件生成:

- librf/src/event_v2.h