Egrome
 
载入中...
搜索中...
未找到
Channel< T > 模板类 参考

通道模板类 更多...

#include <Channel.hpp>

Public 成员函数

 Channel (std::size_t buff_size=0)
 构造函数
 
 Channel (const Channel< T > &)=delete
 
 Channel (Channel< T > &&)=delete
 
const Channel< T > & operator= (const Channel< T > &)=delete
 
const Channel< T > & operator= (Channel< T > &&)=delete
 
void close ()
 关闭通道
 
void open ()
 打开通道
 
void setPolicy (OverflowPolicy policy)
 设置缓冲区溢出策略
 

友元

template<typename U >
bool operator<< (Channel< U > &channel, const U &var)
 向通道写入数据
 
template<typename U >
bool operator<< (U &var, Channel< U > &channel)
 
template<typename U >
bool operator>> (const U &var, Channel< U > &channel)
 向通道写入数据
 
template<typename U >
bool operator>> (Channel< U > &channel, U &var)
 从通道读取数据
 

详细描述

template<typename T>
class Channel< T >

通道模板类

模板参数
T通道所传递的数据类型

它是线程安全的,可以用于线程间的异步通信

示例
示例:.

构造及析构函数说明

◆ Channel()

template<typename T >
Channel< T >::Channel ( std::size_t buff_size = 0)
inline

构造函数

参数
buff_size缓冲区大小,默认为0,表示不限制大小

成员函数说明

◆ close()

template<typename T >
void Channel< T >::close ( )
inline

关闭通道

关闭后,队列中未读取的数据将会被丢弃

◆ open()

template<typename T >
void Channel< T >::open ( )
inline

打开通道

打开后,通道将重新开始工作

◆ setPolicy()

template<typename T >
void Channel< T >::setPolicy ( OverflowPolicy policy)
inline

设置缓冲区溢出策略

参数
policy策略,默认为wait,表示等待缓冲区被读取后再写入新数据

当缓冲区满时,如果策略为ignore,则丢弃新数据;如果策略为wait,则等待缓冲区空出空间再写入数据

友元及相关函数文档

◆ operator<<

template<typename T >
template<typename U >
bool operator<< ( Channel< U > & channel,
const U & var )
friend

向通道写入数据

模板参数
U要写入的数据类型
参数
channel要写入的通道
var要写入的变量
返回
若成功写入则返回true,否则返回false

若通道已关闭,则直接返回false;

若缓冲区满且策略为ignore,则丢弃新数据;

若缓冲区满且策略为wait,则等待缓冲区空出空间再写入数据

◆ operator>> [1/2]

template<typename T >
template<typename U >
bool operator>> ( Channel< U > & channel,
U & var )
friend

从通道读取数据

模板参数
U要读取的数据类型
参数
var要读取的变量
channel要读取的通道
返回
若成功读取则返回true,否则返回false

若通道已关闭,则直接返回false;若缓冲区为空,则会等待缓冲区有数据后再读取

◆ operator>> [2/2]

template<typename T >
template<typename U >
bool operator>> ( const U & var,
Channel< U > & channel )
friend

向通道写入数据

模板参数
U要写入的数据类型
参数
channel要写入的通道
var要写入的变量
返回
若成功写入则返回true,否则返回false

若通道已关闭,则直接返回false;

若缓冲区满且策略为ignore,则丢弃新数据;

若缓冲区满且策略为wait,则等待缓冲区空出空间再写入数据


该类的文档由以下文件生成: