RMVL  2.4.0-dev
Robotic Manipulation and Vision Library
载入中...
搜索中...
未找到
rm::async::PipeServer类 参考final

异步命名管道服务端 更多...

#include <rmvl/io/ipc.hpp>

类 rm::async::PipeServer 继承关系图:
rm::async::PipeServer 的协作图:

Public 成员函数

 PipeServer (IOContext &io_context, std::string_view name)
 在文件系统中创建新的命名管道并打开,销毁时自动移除该管道
AsyncReadAwaiter read ()
 从管道读取数据
PipeServeroperator>> (std::string &)=delete
AsyncWriteAwaiter write (std::string_view data)
 向管道写入数据
PipeServeroperator<< (std::string_view)=delete
Public 成员函数 继承自 rm::PipeServer
 PipeServer (const PipeServer &)=delete
 PipeServer (PipeServer &&)=default
PipeServeroperator= (const PipeServer &)=delete
PipeServeroperator= (PipeServer &&)=default
 ~PipeServer ()
 PipeServer (std::string_view name)
 在文件系统中创建新的命名管道并打开,销毁时自动移除该管道
std::string read () noexcept
 从管道读取数据
PipeServeroperator>> (std::string &data) noexcept
 从管道读取数据
bool write (std::string_view data) noexcept
 向管道写入数据
PipeServeroperator<< (std::string_view data) noexcept
 向管道写入数据

额外继承的成员函数

Protected 成员函数 继承自 rm::PipeServer
 PipeServer (std::string_view name, bool ov)
Protected 属性 继承自 rm::PipeServer
std::string _name
 命名管道名称
FileDescriptor _fd {}
 文件句柄

详细描述

异步命名管道服务端

构造及析构函数说明

◆ PipeServer()

rm::async::PipeServer::PipeServer ( IOContext & io_context,
std::string_view name )

在文件系统中创建新的命名管道并打开,销毁时自动移除该管道

注解
  • Windows 命名管道在构造时会等待客户端连接并阻塞,除非已有客户端连接
参数
[in]io_context异步 I/O 执行上下文
[in]name命名管道名称,Windows 下的命名管道名称为 \\.\pipe\\endiskip + name, Linux 下的命名管道名称为 /tmp/ + name,长度不超过 256 个字符

成员函数说明

◆ operator<<()

PipeServer & rm::async::PipeServer::operator<< ( std::string_view )
delete
函数调用图:

◆ operator>>()

PipeServer & rm::async::PipeServer::operator>> ( std::string & )
delete
函数调用图:

◆ read()

AsyncReadAwaiter rm::async::PipeServer::read ( )
inline

从管道读取数据

返回
读取到的数据,成功时返回非空字符串,失败时返回空字符串
// 使用示例
std::string str = co_await server.read();
定义 str.hpp:19

◆ write()

AsyncWriteAwaiter rm::async::PipeServer::write ( std::string_view data)
inline

向管道写入数据

参数
[in]data待写入的数据
返回
是否写入成功
// 使用示例
bool success = co_await server.write("Hello World!");

该类的文档由以下文件生成: