![]() |
RMVL
2.6.0-dev
Robotic Manipulation and Vision Library
|
由 rm::async::Acceptor 建立的流式 Socket 异步会话 更多...
#include <rmvl/io/socket.hpp>
类 | |
| class | SocketReadAwaiter |
| 流式 Socket 异步读等待器 更多... | |
| class | SocketWriteAwaiter |
| 流式 Socket 异步写等待器 更多... | |
| class | SocketMultiReadAwaiter |
| 流式 Socket 多缓冲区异步读等待器 更多... | |
| class | SocketMultiWriteAwaiter |
| 流式 Socket 多缓冲区异步写等待器 更多... | |
Public 成员函数 | |
| SocketReadAwaiter | read () |
| 异步读取已连接的 Socket 中的数据 | |
| SocketWriteAwaiter | write (std::string_view data) |
| 异步写入数据到已连接的 Socket 中 | |
| IOContext & | context () noexcept |
| 获取所属异步 I/O 执行上下文 | |
| const IOContext & | context () const noexcept |
| 获取所属异步 I/O 执行上下文 | |
| SocketMultiReadAwaiter | multiread (const std::vector< size_t > &sizes) |
| 异步多缓冲区读取 | |
| template<typename... Args, typename Enable = std::enable_if_t<(sizeof...(Args) > 0) && (std::is_convertible_v<Args, size_t> && ...)>> | |
| SocketMultiReadAwaiter | multiread (Args... sizes) |
| 异步多缓冲区读取 | |
| SocketMultiWriteAwaiter | multiwrite (const std::vector< std::string_view > &buffers) |
| 异步多缓冲区写入 | |
| template<typename... Args, typename Enable = std::enable_if_t<(sizeof...(Args) > 0) && (std::is_constructible_v<std::string_view, Args> && ...)>> | |
| SocketMultiWriteAwaiter | multiwrite (Args &&...args) |
| 异步多缓冲区写入 | |
| Public 成员函数 继承自 rm::StreamSocket | |
| bool | invalid () const noexcept |
| 会话是否失效 | |
| SocketFd | native_handle () const noexcept |
| 获取底层 Socket 描述符 | |
| template<typename SockOpt> | |
| void | setOption (const SockOpt &opt) |
| 设置 Socket 选项 | |
| Endpoint | endpoint () const |
| 获取绑定的端点 | |
| std::string | read () noexcept |
| 同步读取已连接的 Socket 中的数据(阻塞) | |
| bool | write (std::string_view data) noexcept |
| 同步写入数据到已连接的 Socket 中(阻塞) | |
| bool | multiwrite (const std::vector< std::string_view > &buffers) noexcept |
| 同步多缓冲区写入 | |
| template<typename... Args, typename Enable = std::enable_if_t<(sizeof...(Args) > 0) && (std::is_constructible_v<std::string_view, Args> && ...)>> | |
| bool | multiwrite (Args &&...args) noexcept |
| 同步多缓冲区写入 | |
| std::vector< std::string > | multiread (const std::vector< size_t > &sizes) |
| 同步多缓冲区读取 | |
| template<typename... Args, typename Enable = std::enable_if_t<(sizeof...(Args) > 0) && (std::is_convertible_v<Args, size_t> && ...)>> | |
| std::vector< std::string > | multiread (Args... sizes) |
| 同步多缓冲区读取 | |
| size_t | read_to (char *buf, size_t size) noexcept |
| 同步读取数据到指定预分配内存中 | |
| void | close () noexcept |
| 手动关闭 Socket 会话,一般情况无需调用,除非需要提前释放资源 | |
额外继承的成员函数 | |
| Protected 属性 继承自 rm::StreamSocket | |
| SocketFd | _fd {INVALID_SOCKET_FD} |
| 会话文件描述符 | |
由 rm::async::Acceptor 建立的流式 Socket 异步会话
|
inlinenodiscardnoexcept |
获取所属异步 I/O 执行上下文
|
inlinenodiscardnoexcept |
获取所属异步 I/O 执行上下文
|
inline |
异步多缓冲区读取
| Args | 可变参数包,要求每个参数都能转换为 size_t |
| [in] | sizes | 预期读取的各分片数据大小 |
|
inline |
异步多缓冲区读取
| [in] | sizes | 预期读取的各分片数据大小 |
|
inline |
异步多缓冲区写入
| Args | 可变参数包,要求每个参数都能构造为 std::string_view |
| [in] | args | 待写入的多个数据参数包 |
|
inline |
异步多缓冲区写入
| [in] | buffers | 待写入的多个数据视图 |
|
inline |
|
inline |
异步写入数据到已连接的 Socket 中
| [in] | data | 待写入的数据 |