NexusForce 1.0.0
A rigorously engineered full-stack C++ backend library.
载入中...
搜索中...
未找到
neforce::named_pipe类 参考

命名管道类 更多...

#include <pipe.hpp>

Public 成员函数

 named_pipe ()
 默认构造函数
 ~named_pipe ()
 析构函数
 named_pipe (named_pipe &&other) noexcept
 移动构造函数
named_pipeoperator= (named_pipe &&other) noexcept
 移动赋值运算符
bool create (const string &name, bool nonblocking=false)
 创建命名管道服务端
bool connect (const string &name, int timeout_ms=-1)
 连接到已存在的命名管道(客户端)
bool wait_for_client ()
 等待客户端连接(服务端)
int read (void *buffer, size_t size) noexcept
 从管道读取数据
int write (const void *data, size_t size) noexcept
 向管道写入数据
void close () noexcept
 关闭管道
bool is_valid () const noexcept
 检查管道是否有效
bool set_nonblocking (bool v) noexcept
 设置非阻塞模式
bool is_nonblocking () const noexcept
 查询是否非阻塞
const stringname () const noexcept
 获取管道名称
native_handle_type native_handle () const noexcept
 获取原生句柄

静态 Public 成员函数

static bool remove (const string &path)
 删除命名管道(仅 Linux FIFO)

详细描述

命名管道类

提供跨平台的命名管道支持,可用于任意进程间通信。 使用服务端/客户端模式:一端创建并监听,另一端连接。

在文件 pipe.hpp213 行定义.

成员函数说明

◆ connect()

bool neforce::named_pipe::connect ( const string & name,
int timeout_ms = -1 )

连接到已存在的命名管道(客户端)

参数
name管道名称
timeout_ms连接超时毫秒(仅 Windows),-1 表示无限等待
返回
是否连接成功
异常
pipe_exception连接失败时抛出

引用了 name().

◆ create()

bool neforce::named_pipe::create ( const string & name,
bool nonblocking = false )

创建命名管道服务端

参数
name管道名称(不含平台前缀)
nonblocking是否非阻塞模式
返回
是否创建成功
异常
pipe_exception创建失败时抛出

引用了 name().

◆ is_nonblocking()

bool neforce::named_pipe::is_nonblocking ( ) const
inlinenodiscardnoexcept

查询是否非阻塞

返回
是否非阻塞

在文件 pipe.hpp315 行定义.

引用了 is_nonblocking().

被这些函数引用 is_nonblocking().

◆ is_valid()

bool neforce::named_pipe::is_valid ( ) const
nodiscardnoexcept

检查管道是否有效

返回
是否已打开

引用了 is_valid().

被这些函数引用 is_valid().

◆ name()

const string & neforce::named_pipe::name ( ) const
inlinenodiscardnoexcept

获取管道名称

返回
管道名称

在文件 pipe.hpp321 行定义.

被这些函数引用 connect() , 以及 create().

◆ native_handle()

native_handle_type neforce::named_pipe::native_handle ( ) const
inlinenodiscardnoexcept

获取原生句柄

返回
原生句柄

在文件 pipe.hpp327 行定义.

◆ read()

int neforce::named_pipe::read ( void * buffer,
size_t size )
noexcept

从管道读取数据

参数
buffer缓冲区
size缓冲区大小
返回
实际读取的字节数,-1表示错误

引用了 neforce::size().

◆ remove()

bool neforce::named_pipe::remove ( const string & path)
static

删除命名管道(仅 Linux FIFO)

参数
pathFIFO 文件路径
返回
是否删除成功

◆ set_nonblocking()

bool neforce::named_pipe::set_nonblocking ( bool v)
noexcept

设置非阻塞模式

参数
v是否非阻塞
返回
是否设置成功

引用了 set_nonblocking().

被这些函数引用 set_nonblocking().

◆ wait_for_client()

bool neforce::named_pipe::wait_for_client ( )

等待客户端连接(服务端)

返回
是否成功接受连接
异常
pipe_exception等待失败时抛出

◆ write()

int neforce::named_pipe::write ( const void * data,
size_t size )
noexcept

向管道写入数据

参数
data要写入的数据
size数据大小
返回
实际写入的字节数,-1表示错误

引用了 neforce::data() , 以及 neforce::size().


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