通道模板类 更多...
#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,则等待缓冲区空出空间再写入数据