NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
share_memory类 参考

共享内存管理类 更多...

#include <share_memory.hpp>

Public 类型

enum class  access_mode { read_only = 0x01 , read_write = 0x02 }
 访问模式枚举 更多...
enum class  open_mode { create_only , open_only , open_or_create }
 打开模式枚举 更多...

Public 成员函数

 share_memory () noexcept
 默认构造函数
 share_memory (const string &name, size_t size, open_mode mode=open_mode::open_or_create, access_mode access=access_mode::read_write)
 构造函数
 share_memory (share_memory &&other) noexcept
 移动构造函数
share_memoryoperator= (share_memory &&other) noexcept
 移动赋值运算符
 ~share_memory ()
 析构函数
void open (const string &name, size_t size, open_mode mode=open_mode::open_or_create, access_mode access=access_mode::read_write)
 打开或创建共享内存
void close () noexcept
 关闭共享内存
NEFORCE_NODISCARD void * map (size_t offset=0, size_t length=0)
 映射共享内存到进程地址空间
void unmap () noexcept
 取消映射
NEFORCE_NODISCARD void * data () const noexcept
 获取映射地址
template<typename T>
NEFORCE_NODISCARD T * data () const noexcept
 获取映射地址(类型转换版本)
NEFORCE_NODISCARD size_t size () const noexcept
 获取共享内存大小
NEFORCE_NODISCARD size_t mapped_size () const noexcept
 获取映射大小
NEFORCE_NODISCARD const stringname () const noexcept
 获取共享内存名称
NEFORCE_NODISCARD bool is_open () const noexcept
 检查是否已打开
NEFORCE_NODISCARD bool is_mapped () const noexcept
 检查是否已映射
bool flush (bool async=false)
 刷新共享内存到磁盘

静态 Public 成员函数

static bool remove (const string &name)
 静态方法:删除共享内存对象
static NEFORCE_NODISCARD bool exists (const string &name)
 静态方法:检查共享内存是否存在

详细描述

共享内存管理类

提供跨进程的共享内存创建、映射和访问功能。

在文件 share_memory.hpp50 行定义.

成员枚举类型说明

◆ access_mode

enum class share_memory::access_mode
strong

访问模式枚举

枚举值
read_only 

只读模式

read_write 

读写模式

在文件 share_memory.hpp56 行定义.

◆ open_mode

enum class share_memory::open_mode
strong

打开模式枚举

枚举值
create_only 

仅创建(已存在则失败)

open_only 

仅打开(不存在则失败)

open_or_create 

打开或创建

在文件 share_memory.hpp65 行定义.

构造及析构函数说明

◆ share_memory()

share_memory::share_memory ( const string & name,
size_t size,
open_mode mode = open_mode::open_or_create,
access_mode access = access_mode::read_write )
explicit

构造函数

参数
name共享内存名称
size共享内存大小(字节)
mode打开模式
access访问模式
异常
share_memory_exception创建或打开失败时抛出

引用了 name(), share_memory() , 以及 size().

成员函数说明

◆ data() [1/2]

template<typename T>
NEFORCE_NODISCARD T * share_memory::data ( ) const
inlinenoexcept

获取映射地址(类型转换版本)

模板参数
T目标类型
返回
类型转换后的地址

在文件 share_memory.hpp159 行定义.

◆ data() [2/2]

NEFORCE_NODISCARD void * share_memory::data ( ) const
inlinenoexcept

获取映射地址

返回
映射地址,未映射则返回nullptr

在文件 share_memory.hpp151 行定义.

引用了 data().

被这些函数引用 data().

◆ exists()

NEFORCE_NODISCARD bool share_memory::exists ( const string & name)
static

静态方法:检查共享内存是否存在

参数
name共享内存名称
返回
是否存在

引用了 name().

◆ flush()

bool share_memory::flush ( bool async = false)

刷新共享内存到磁盘

参数
async是否异步刷新
返回
是否成功

引用了 async().

◆ is_mapped()

NEFORCE_NODISCARD bool share_memory::is_mapped ( ) const
inlinenoexcept

检查是否已映射

返回
是否已映射

在文件 share_memory.hpp191 行定义.

◆ is_open()

NEFORCE_NODISCARD bool share_memory::is_open ( ) const
inlinenoexcept

检查是否已打开

返回
是否已打开

在文件 share_memory.hpp185 行定义.

◆ map()

NEFORCE_NODISCARD void * share_memory::map ( size_t offset = 0,
size_t length = 0 )

映射共享内存到进程地址空间

参数
offset映射偏移量(字节)
length映射长度(字节,0表示全部)
返回
映射地址
异常
share_memory_exception映射失败时抛出

引用了 map().

被这些函数引用 map().

◆ mapped_size()

NEFORCE_NODISCARD size_t share_memory::mapped_size ( ) const
inlinenoexcept

获取映射大小

返回
映射大小(字节)

在文件 share_memory.hpp173 行定义.

◆ name()

NEFORCE_NODISCARD const string & share_memory::name ( ) const
inlinenoexcept

获取共享内存名称

返回
共享内存名称

在文件 share_memory.hpp179 行定义.

被这些函数引用 exists(), open(), remove() , 以及 share_memory().

◆ open()

void share_memory::open ( const string & name,
size_t size,
open_mode mode = open_mode::open_or_create,
access_mode access = access_mode::read_write )

打开或创建共享内存

参数
name共享内存名称
size共享内存大小(字节)
mode打开模式
access访问模式
异常
share_memory_exception操作失败时抛出

引用了 name(), open() , 以及 size().

被这些函数引用 open().

◆ remove()

bool share_memory::remove ( const string & name)
static

静态方法:删除共享内存对象

参数
name共享内存名称
返回
是否成功删除

引用了 name().

◆ size()

NEFORCE_NODISCARD size_t share_memory::size ( ) const
inlinenoexcept

获取共享内存大小

返回
共享内存大小(字节)

在文件 share_memory.hpp167 行定义.

被这些函数引用 open() , 以及 share_memory().


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