|
NexusForce 1.0.0
A rigorously engineered full-stack C++ backend library.
|
有限容量的 CSP 消息通道 更多...
#include <channel.hpp>
Public 成员函数 | |
| channel (size_t capacity=capacity_max) | |
| 构造函数 | |
| bool | try_write (T value) |
| 尝试发送消息(非阻塞) | |
| bool | write (T value) |
| 发送消息(阻塞直到空间可用或通道关闭) | |
| bool | try_read (T &out) |
| 尝试读取消息(非阻塞) | |
| bool | read (T &out) |
| 读取消息(阻塞直到有数据或通道关闭) | |
| void | close () |
| 关闭通道 | |
| bool | is_closed () const noexcept |
| 检查通道是否已关闭 | |
| size_t | size () const noexcept |
| 当前缓冲消息数量 | |
| bool | empty () const noexcept |
| 检查缓冲区是否为空 | |
静态 Public 属性 | |
| static constexpr size_t | capacity_max = numeric_traits<size_t>::max() |
| 最大容量常量 | |
有限容量的 CSP 消息通道
| T | 消息类型 |
支持多生产者/多消费者的线程安全消息通道。 容量为 0 表示无缓冲(同步握手),capacity_max 表示无上限。
在文件 channel.hpp 第 34 行定义.
|
inlineexplicit |
构造函数
| capacity | 通道容量,0 表示无缓冲,capacity_max 表示无上限 |
| value_exception | capacity_max 容量不合法时抛出 |
在文件 channel.hpp 第 48 行定义.
引用了 capacity_max.
|
inline |
|
inlinenodiscardnoexcept |
|
inlinenodiscardnoexcept |
|
inline |
读取消息(阻塞直到有数据或通道关闭)
| out | 输出消息 |
在文件 channel.hpp 第 116 行定义.
引用了 neforce::move().
|
inlinenodiscardnoexcept |
|
inline |
尝试读取消息(非阻塞)
| out | 输出消息 |
在文件 channel.hpp 第 100 行定义.
引用了 neforce::move().
|
inline |
尝试发送消息(非阻塞)
| value | 要发送的消息 |
在文件 channel.hpp 第 64 行定义.
引用了 neforce::move().
|
inline |
发送消息(阻塞直到空间可用或通道关闭)
| value | 要发送的消息 |
在文件 channel.hpp 第 82 行定义.
引用了 neforce::move().