Console Library 8.0.0
A header-only library that makes C++ simple
Loading...
Searching...
No Matches
console::Group Class Reference

异步任务组,用于管理一组异步任务的执行。 More...

#include <group.h>

Public Member Functions

 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 Private Member Functions

static void no_op ()
 空操作函数,用于默认回调。

Private Attributes

int count_ {0}
 任务计数器
std::function< void()> callback_
 任务完成回调
bool done_ {false}
 任务完成标志
std::mutex mutex_
 互斥锁
std::condition_variable cv_
 条件变量

Detailed Description

异步任务组,用于管理一组异步任务的执行。

提供了添加任务、等待任务完成和获取任务数量等功能。

Note
我们相信用户,所以我们不提供过多的防护,同时让错误尽早暴露。

Constructor & Destructor Documentation

◆ 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

删除移动构造函数。

Member Function Documentation

◆ add()

void console::Group::add ( size_t count)
inline

添加任务数量。

Parameters
count要添加的任务数量。
Note
若已完成,则终止程序。

◆ callback()

std::function< void()> console::Group::callback ( ) const
inline

获取回调函数。

Returns
回调函数。

◆ connect()

void console::Group::connect ( std::function< void()> callback)
inline

连接回调函数。

Parameters
callback要连接的回调函数。

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

Group & console::Group::operator= ( Group && )
delete

删除移动赋值函数。

◆ wait()

void console::Group::wait ( ) const
inline

等待所有任务完成。

Member Data Documentation

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