异步工作器类 更多...
#include <looper.hpp>

Public 类型 | |
| using | ptr = std::shared_ptr< AsyncLooper > |
Public 成员函数 | |
| AsyncLooper (const Functor &func, AsyncType asynctype=AsyncType::ASYNC_SAFE) | |
| 构造函数 | |
| ~AsyncLooper () | |
| 析构函数 | |
| void | stop () |
| 停止异步工作器 | |
| void | push (const char *data, size_t len) |
| 向生产缓冲区推送数据 | |
Private 成员函数 | |
| void | threadEntry () |
| 线程入口函数 | |
Private 属性 | |
| std::atomic< bool > | _stop |
| 停止标志 | |
| Buffer | _pro_buf |
| 生产缓冲区 | |
| Buffer | _con_buf |
| 消费缓冲区 | |
| std::mutex | _mutex |
| 互斥锁 | |
| std::condition_variable | _cond_pro |
| 生产者条件变量 | |
| std::condition_variable | _cond_con |
| 消费者条件变量 | |
| std::thread | _thread |
| 异步工作器的线程 | |
| AsyncType | _looper_type |
| 异步类型 | |
| Functor | _callBack |
| 回调函数 | |
异步工作器类
该类实现了一个异步工作器,通过生产者-消费者模式处理数据。
| using Xulog::AsyncLooper::ptr = std::shared_ptr<AsyncLooper> |
|
inline |
|
inline |
析构函数
停止异步工作器,唤醒所有工作线程并等待线程结束。

|
inline |
向生产缓冲区推送数据
| data | 要推送的数据 |
| len | 数据的长度 |
根据异步类型控制缓冲区的写入,唤醒消费者处理数据。

|
inline |
停止异步工作器
设置停止标志,并唤醒所有工作线程。

|
inlineprivate |
线程入口函数
持续监测生产缓冲区的数据,并处理消费缓冲区的数据。
当停止标志被设置且缓冲区为空时,线程结束。

|
private |
回调函数
|
private |
消费缓冲区
|
private |
消费者条件变量
|
private |
生产者条件变量
|
private |
异步类型
|
private |
互斥锁
|
private |
生产缓冲区
|
private |
停止标志
|
private |
异步工作器的线程