Sese Framework  x.y.z
A cross-platform framework
载入中...
搜索中...
未找到
sese::system::IPCChannel类 参考

IPC 通道 更多...

#include <IPC.h>

Public 类型

using Ptr = std::unique_ptr<IPCChannel>
 

Public 成员函数

bool write (uint32_t id, const void *data, uint32_t length)
 
bool write (uint32_t id, const std::string &message)
 
std::list< Messageread (uint32_t id)
 

静态 Public 成员函数

static IPCChannel::Ptr create (const std::string &name, size_t buffer_size)
 
static Result< PtrcreateEx (const std::string &name, size_t buffer_size)
 
static IPCChannel::Ptr use (const std::string &name)
 
static Result< PtruseEx (const std::string &name)
 

Private 成员函数

 IPCChannel ()=default
 

Private 属性

MemInfomem_info {}
 
void * buffer {}
 
Semaphore::Ptr semaphore {}
 
SharedMemory::Ptr shared_memory {}
 

详细描述

IPC 通道

成员类型定义说明

◆ Ptr

using sese::system::IPCChannel::Ptr = std::unique_ptr<IPCChannel>

构造及析构函数说明

◆ IPCChannel()

sese::system::IPCChannel::IPCChannel ( )
privatedefault

成员函数说明

◆ create()

IPCChannel::Ptr IPCChannel::create ( const std::string & name,
size_t buffer_size )
static

创建 IPC 通道

参数
name通道名称
buffer_size共享内存大小
返回
IPC 通道

引用了 buffer, sese::system::Semaphore::create(), sese::system::SharedMemory::create(), MAKE_UNIQUE_PRIVATE, mem_info, sese::system::MemInfo::tail , 以及 sese::system::MemInfo::total_size.

被这些函数引用 createEx().

◆ createEx()

sese::Result< IPCChannel::Ptr > IPCChannel::createEx ( const std::string & name,
size_t buffer_size )
static

◆ read()

std::list< Message > IPCChannel::read ( uint32_t id)

从 IPC 通道读取编号为 id 的信息

参数
id编号
返回
数据集合

引用了 buffer, mem_info, semaphore , 以及 sese::system::MemInfo::tail.

◆ use()

IPCChannel::Ptr IPCChannel::use ( const std::string & name)
static

使用现有的 IPC 通道

参数
name通道名称
返回
IPC 通道

引用了 buffer, sese::system::Semaphore::create(), MAKE_UNIQUE_PRIVATE, mem_info , 以及 sese::system::SharedMemory::use().

被这些函数引用 useEx().

◆ useEx()

sese::Result< IPCChannel::Ptr > IPCChannel::useEx ( const std::string & name)
static

◆ write() [1/2]

bool IPCChannel::write ( uint32_t id,
const std::string & message )

向 IPC 通道写入编号为 id 的数据

参数
id编号
message数据
返回

引用了 write().

◆ write() [2/2]

bool IPCChannel::write ( uint32_t id,
const void * data,
uint32_t length )

向 IPC 通道写入编号为 id 的数据

参数
id编号
data数据
length数据大小
返回
是否写入成功

引用了 buffer, HEADER_SIZE, mem_info, semaphore, sese::system::MemInfo::tail , 以及 sese::system::MemInfo::total_size.

被这些函数引用 write().

类成员变量说明

◆ buffer

void* sese::system::IPCChannel::buffer {}
private

被这些函数引用 create(), read(), use() , 以及 write().

◆ mem_info

MemInfo* sese::system::IPCChannel::mem_info {}
private

被这些函数引用 create(), read(), use() , 以及 write().

◆ semaphore

Semaphore::Ptr sese::system::IPCChannel::semaphore {}
private

被这些函数引用 read() , 以及 write().

◆ shared_memory

SharedMemory::Ptr sese::system::IPCChannel::shared_memory {}
private

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