Sese Framework
x.y.z
A cross-platform framework
|
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< Message > | read (uint32_t id) |
静态 Public 成员函数 | |
static IPCChannel::Ptr | create (const std::string &name, size_t buffer_size) |
static Result< Ptr > | createEx (const std::string &name, size_t buffer_size) |
static IPCChannel::Ptr | use (const std::string &name) |
static Result< Ptr > | useEx (const std::string &name) |
Private 成员函数 | |
IPCChannel ()=default | |
Private 属性 | |
MemInfo * | mem_info {} |
void * | buffer {} |
Semaphore::Ptr | semaphore {} |
SharedMemory::Ptr | shared_memory {} |
IPC 通道
using sese::system::IPCChannel::Ptr = std::unique_ptr<IPCChannel> |
|
privatedefault |
|
static |
创建 IPC 通道
name | 通道名称 |
buffer_size | 共享内存大小 |
引用了 buffer, sese::system::Semaphore::create(), sese::system::SharedMemory::create(), MAKE_UNIQUE_PRIVATE, mem_info, sese::system::MemInfo::tail , 以及 sese::system::MemInfo::total_size.
被这些函数引用 createEx().
|
static |
引用了 create() , 以及 sese::Result< T >::fromLastError().
std::list< Message > IPCChannel::read | ( | uint32_t | id | ) |
从 IPC 通道读取编号为 id 的信息
id | 编号 |
引用了 buffer, mem_info, semaphore , 以及 sese::system::MemInfo::tail.
|
static |
使用现有的 IPC 通道
name | 通道名称 |
引用了 buffer, sese::system::Semaphore::create(), MAKE_UNIQUE_PRIVATE, mem_info , 以及 sese::system::SharedMemory::use().
被这些函数引用 useEx().
|
static |
引用了 sese::Result< T >::fromLastError() , 以及 use().
bool IPCChannel::write | ( | uint32_t | id, |
const std::string & | message ) |
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().
|
private |
|
private |
|
private |