Emx::SafetyQueue< T > 模板类 参考

#include "SafetyQueue.hpp"

Public 类型

using OnCloned = std::function< T(const T &data)>
 数据克隆 更多...
 
using OnFreed = std::function< void(T &data)>
 数据释放 更多...
 

Public 成员函数

 SafetyQueue (int total=3, OnCloned clonedCb=nullptr, OnFreed freedCb=nullptr)
 
 ~SafetyQueue ()
 
void Put (const T &data)
 put数据到队列 更多...
 
Get ()
 从队列中get数据 更多...
 
int Size ()
 获取队列长度 更多...
 
void Clear ()
 清除队列 更多...
 
void Stop ()
 优雅安全退出Get操作线程等待阻塞 更多...
 
void SetTotal (int total)
 设置队列长度上限,默认为3 更多...
 

成员类型定义说明

◆ OnCloned

template<typename T >
using Emx::SafetyQueue< T >::OnCloned = std::function<T(const T& data)>
参数
data[in] 数据深拷贝源数据
返回
T 数据深拷贝目标数据

◆ OnFreed

template<typename T >
using Emx::SafetyQueue< T >::OnFreed = std::function<void(T& data)>
参数
data[in] 数据释放数据
返回
void

构造及析构函数说明

◆ SafetyQueue()

template<typename T >
Emx::SafetyQueue< T >::SafetyQueue ( int  total = 3,
OnCloned  clonedCb = nullptr,
OnFreed  freedCb = nullptr 
)
inline

◆ ~SafetyQueue()

template<typename T >
Emx::SafetyQueue< T >::~SafetyQueue ( )
inline

成员函数说明

◆ Put()

template<typename T >
void Emx::SafetyQueue< T >::Put ( const T &  data)
inline
参数
data[in] 数据模板
注解
等待队列非空的时候,通知唤醒解锁等待get操作。

◆ Get()

template<typename T >
T Emx::SafetyQueue< T >::Get ( )
inline
返回
T 数据
注解
队列为空的时候,阻塞线程等待队列非空状态通知解锁。
注意Get()所获取的数据由外部进行释放维护。

◆ Size()

template<typename T >
int Emx::SafetyQueue< T >::Size ( )
inline
返回
队列长度

◆ Clear()

template<typename T >
void Emx::SafetyQueue< T >::Clear ( )
inline

被这些函数引用 Emx::SafetyQueue< T >::~SafetyQueue().

◆ Stop()

template<typename T >
void Emx::SafetyQueue< T >::Stop ( )
inline

◆ SetTotal()

template<typename T >
void Emx::SafetyQueue< T >::SetTotal ( int  total)
inline
参数
total[in] 配置队列长度