TpShareMemory 类
V0.2.1TpUtils
2025-11-14
介绍
跨进程共享内存管理类 该类提供了共享内存的创建、映射、读写等操作 支持数据版本管理和并发访问控制,确保多进程间数据同步的安全性
基础信息
| 头文件: | include <TpShareMemory.h> |
|---|---|
| Cmake: | None |
| 发布版本: | V0.2.1 |
| 继承类: | |
| 派生类: |
Public 成员函数
| TpShareMemory(const TpString &name, uint64_t size, bool is_creator=false) | 构造函数:初始化共享内存对象 | |
|---|---|---|
| ~TpShareMemory() | 析构函数:自动清理共享内存资源 | |
| TpShareMemory(const TpShareMemory &)=delete | 禁用拷贝构造 | |
| TpShareMemory & TpShareMemory::operator= | operator=(const TpShareMemory &)=delete | 禁用赋值操作 |
| writeData(const void *data, uint64_t size, uint64_t offset=0) | 写入数据到共享内存的指定位置 | |
| readData(void *buffer, uint64_t size, uint64_t offset=0) const | 从共享内存读取数据到缓冲区 | |
| getDataPtr() const | 获取共享内存数据区的起始指针 | |
| getSize() const | 获取共享内存总大小(包含头部) | |
| isMapped() const | 检查共享内存是否映射成功 | |
| const TpString & | getName() const | 获取共享内存名称 |
| getVersion() const | 获取当前数据版本号 | |
| incrementVersion() | 递增数据版本号 |
成员函数说明
TpShareMemory::TpShareMemory(const TpString &name, uint64_t size, bool is_creator=false)
构造函数:初始化共享内存对象...
构造函数:初始化共享内存对象
参数:name: 共享内存名称,用于唯一标识共享内存区域
参数:size: 共享内存数据区大小(不包含头部元数据)
参数:is_creator: 标识是否为创建者(true-创建新共享内存,false-打开已存在的共享内存)
参数:std::runtime_error: 当共享内存初始化失败时抛出异常
TpShareMemory::~TpShareMemory()
析构函数:自动清理共享内存资源...
析构函数:自动清理共享内存资源
TpShareMemory::TpShareMemory(const TpShareMemory &)=delete
禁用拷贝构造...
禁用拷贝构造
TpShareMemory & TpShareMemory::operator=(const TpShareMemory &)=delete
禁用赋值操作...
禁用赋值操作
bool TpShareMemory::writeData(const void *data, uint64_t size, uint64_t offset=0)
写入数据到共享内存的指定位置...
写入数据到共享内存的指定位置
参数:data: 要写入的数据指针
参数:size: 要写入的数据大小(字节)
参数:offset: 在共享内存数据区中的偏移量(默认从0开始)
参数:true: 数据成功写入并同步到物理内存
参数:false: 写入失败(参数无效、映射失败或范围越界)
返回值:bool 写入成功返回true,失败返回false
bool TpShareMemory::readData(void *buffer, uint64_t size, uint64_t offset=0) const
从共享内存读取数据到缓冲区...
从共享内存读取数据到缓冲区
参数:buffer: 接收数据的缓冲区指针
参数:size: 要读取的数据大小(字节)
参数:offset: 在共享内存数据区中的偏移量(默认从0开始)
参数:true: 数据成功读取到缓冲区
参数:false: 读取失败(参数无效、映射失败或范围越界)
返回值:bool 读取成功返回true,失败返回false
void * TpShareMemory::getDataPtr() const
获取共享内存数据区的起始指针...
获取共享内存数据区的起始指针
返回值:void* 指向数据区起始地址的指针(跳过头部元数据)
uint64_t TpShareMemory::getSize() const
获取共享内存总大小(包含头部)...
获取共享内存总大小(包含头部)
返回值:uint64_t 共享内存总大小(字节)
bool TpShareMemory::isMapped() const
检查共享内存是否映射成功...
检查共享内存是否映射成功
参数:true: 共享内存已成功映射到进程地址空间
参数:false: 共享内存映射失败
返回值:bool 映射成功返回true,失败返回false
const TpString & TpShareMemory::getName() const
获取共享内存名称...
获取共享内存名称
返回值:const & 共享内存名称的常量引用
uint32_t TpShareMemory::getVersion() const
获取当前数据版本号...
获取当前数据版本号
返回值:uint32_t 当前数据版本号
void TpShareMemory::incrementVersion()
递增数据版本号...
递增数据版本号
