异步工作器类 更多...
#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 |
异步工作器的线程