异步任务组,用于管理一组异步任务的执行。
More...
#include <group.h>
|
| | Group (size_t count=0, std::function< void()> callback=no_op) |
| | 构造函数,初始化任务计数器和回调函数。
|
| | ~Group () |
| | 析构函数,确保所有任务完成。
|
| void | add (size_t count) |
| | 添加任务数量。
|
| void | done () |
| | 任务完成。
|
| void | wait () const |
| | 等待所有任务完成。
|
| std::function< void()> | callback () const |
| | 获取回调函数。
|
| void | connect (std::function< void()> callback) |
| | 连接回调函数。
|
| | Group (const Group &)=delete |
| | 删除复制构造函数。
|
| Group & | operator= (const Group &)=delete |
| | 删除复制赋值函数。
|
| | Group (Group &&)=delete |
| | 删除移动构造函数。
|
| Group & | operator= (Group &&)=delete |
| | 删除移动赋值函数。
|
|
| static void | no_op () |
| | 空操作函数,用于默认回调。
|
异步任务组,用于管理一组异步任务的执行。
提供了添加任务、等待任务完成和获取任务数量等功能。
- Note
- 我们相信用户,所以我们不提供过多的防护,同时让错误尽早暴露。
◆ Group() [1/3]
| console::Group::Group |
( |
size_t | count = 0, |
|
|
std::function< void()> | callback = no_op ) |
|
inline |
构造函数,初始化任务计数器和回调函数。
- Parameters
-
| count | 任务数量。 |
| callback | 任务完成回调函数。 |
◆ ~Group()
| console::Group::~Group |
( |
| ) |
|
|
inline |
析构函数,确保所有任务完成。
- Note
- 若任务未完成或未设置完成标志,则终止程序。
◆ Group() [2/3]
| console::Group::Group |
( |
const Group & | | ) |
|
|
delete |
◆ Group() [3/3]
| console::Group::Group |
( |
Group && | | ) |
|
|
delete |
◆ add()
| void console::Group::add |
( |
size_t | count | ) |
|
|
inline |
添加任务数量。
- Parameters
-
- Note
- 若已完成,则终止程序。
◆ callback()
| std::function< void()> console::Group::callback |
( |
| ) |
const |
|
inline |
◆ connect()
| void console::Group::connect |
( |
std::function< void()> | callback | ) |
|
|
inline |
◆ done()
| void console::Group::done |
( |
| ) |
|
|
inline |
任务完成。
- Note
- 若任务数量减少为0,则调用回调函数并通知所有等待线程。 若此前已经减少为0,则终止程序。
◆ no_op()
| void console::Group::no_op |
( |
| ) |
|
|
inlinestaticprivate |
◆ operator=() [1/2]
| Group & console::Group::operator= |
( |
const Group & | | ) |
|
|
delete |
◆ operator=() [2/2]
◆ wait()
| void console::Group::wait |
( |
| ) |
const |
|
inline |
◆ callback_
| std::function<void()> console::Group::callback_ |
|
private |
◆ count_
| int console::Group::count_ {0} |
|
private |
◆ cv_
| std::condition_variable console::Group::cv_ |
|
mutableprivate |
◆ done_
| bool console::Group::done_ {false} |
|
private |
◆ mutex_
| std::mutex console::Group::mutex_ |
|
mutableprivate |
The documentation for this class was generated from the following file: