通道模板类 更多...
#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) |
从通道读取数据 | |
构造函数
buff_size | 缓冲区大小,默认为0,表示不限制大小 |
|
inline |
关闭通道
关闭后,队列中未读取的数据将会被丢弃
|
inline |
打开通道
打开后,通道将重新开始工作
|
inline |
设置缓冲区溢出策略
policy | 策略,默认为wait,表示等待缓冲区被读取后再写入新数据 |
当缓冲区满时,如果策略为ignore,则丢弃新数据;如果策略为wait,则等待缓冲区空出空间再写入数据
|
friend |
向通道写入数据
U | 要写入的数据类型 |
channel | 要写入的通道 |
var | 要写入的变量 |
若通道已关闭,则直接返回false;
若缓冲区满且策略为ignore,则丢弃新数据;
若缓冲区满且策略为wait,则等待缓冲区空出空间再写入数据
|
friend |
从通道读取数据
U | 要读取的数据类型 |
var | 要读取的变量 |
channel | 要读取的通道 |
若通道已关闭,则直接返回false;若缓冲区为空,则会等待缓冲区有数据后再读取
|
friend |
向通道写入数据
U | 要写入的数据类型 |
channel | 要写入的通道 |
var | 要写入的变量 |
若通道已关闭,则直接返回false;
若缓冲区满且策略为ignore,则丢弃新数据;
若缓冲区满且策略为wait,则等待缓冲区空出空间再写入数据