|
Console Library 8.0.0
A header-only library that makes C++ simple
|
环形缓冲区通道,用于线程间通信。 More...
#include <channel.h>
Public Types | |
| using | iterator = ChannelIterator<T, N> |
| 迭代器类型。 | |
Public Member Functions | |
| Channel ()=default | |
| 默认构造函数。 | |
| bool | operator<< (const T &value) |
| 向通道写入数据。 | |
| bool | operator<< (T &&value) |
| 向通道写入数据。 | |
| bool | operator<<= (const T &value) |
| 尝试向通道写入数据。 | |
| bool | operator<<= (T &&value) |
| 尝试向通道写入数据。 | |
| bool | operator>> (T &value) |
| 从通道读取数据。 | |
| bool | operator>>= (T &value) |
| 从通道尝试读取数据(非阻塞)。 | |
| T | operator* () |
| 从通道读取数据。 | |
| std::unique_ptr< T > | operator-> () |
| 从通道读取数据。 | |
| operator bool () const | |
| 显式转换为布尔值。 | |
| iterator | begin () |
| 迭代器的 begin 函数。 | |
| iterator | end () |
| 迭代器的 end 函数。 | |
| Channel (const Channel &)=delete | |
| 删除复制构造函数。 | |
| Channel & | operator= (const Channel &)=delete |
| 删除复制赋值函数。 | |
| Channel (Channel &&)=delete | |
| 删除移动构造函数。 | |
| Channel & | operator= (Channel &&)=delete |
| 删除移动赋值函数。 | |
Private Attributes | |
| T | buffer_ [N] |
| 缓冲区 | |
| size_t | read_index_ {0} |
| 读索引 | |
| size_t | write_index_ {0} |
| 写索引 | |
| std::mutex | mutex_ |
| 互斥锁 | |
| std::condition_variable | r_cv_ |
| 读 条件变量 | |
| std::condition_variable | w_cv_ |
| 写 条件变量 | |
| bool | closed_ {false} |
| 关闭标志 | |
Friends | |
| void | close (Channel &channel) |
| 关闭通道。 | |
环形缓冲区通道,用于线程间通信。
无缓冲通道,用于线程间通信。
| T | 数据类型。 |
| N | 缓冲区大小。 |
| T | 数据类型。 |
| using console::Channel< T, N >::iterator = ChannelIterator<T, N> |
迭代器类型。
|
default |
默认构造函数。
|
delete |
删除复制构造函数。
|
delete |
删除移动构造函数。
|
inline |
迭代器的 begin 函数。
|
inline |
迭代器的 end 函数。
|
inlineexplicit |
显式转换为布尔值。
|
inline |
从通道读取数据。
若通道为空,则阻塞等待直到有数据可读。
| AsyncError | 若通道已关闭。 |
|
inline |
从通道读取数据。
若通道为空,则阻塞等待直到有数据可读。
| AsyncError | 若通道已关闭。 |
|
inline |
向通道写入数据。
若通道已满,则阻塞等待直到有空间可写。
| value | 要写入的值。 |
|
inline |
向通道写入数据。
若通道已满,则阻塞等待直到有空间可写。
| value | 要写入的值。 |
|
inline |
尝试向通道写入数据。
非阻塞;若通道已满或已关闭,则立即返回失败。
| value | 要写入的值。 |
|
inline |
尝试向通道写入数据。
非阻塞;若通道已满或已关闭,则立即返回失败。
| value | 要写入的值。 |
|
delete |
删除移动赋值函数。
|
delete |
删除复制赋值函数。
|
inline |
从通道读取数据。
若通道为空,则阻塞等待直到有数据可读。
| value | 读取的值。 |
|
inline |
从通道尝试读取数据(非阻塞)。
若通道为空,则立即返回 false;否则读取数据并返回 true。
| value | 读取的值。 |
|
friend |
关闭通道。
|
private |
缓冲区
|
private |
关闭标志
|
mutableprivate |
互斥锁
|
private |
读 条件变量
|
private |
读索引
|
private |
写 条件变量
|
private |
写索引