Skip to content

ipc::shm::handle

木头云 edited this page Apr 3, 2019 · 11 revisions

共享内存对象,自动管理共享内存的生存周期,并提供基本操作的封装。

class IPC_EXPORT handle {
public:
    handle();
    handle(char const * name, std::size_t size, unsigned mode = create | open);
    handle(handle&& rhs);

    ~handle();

    void swap(handle& rhs);
    handle& operator=(handle rhs);

    bool         valid() const;
    std::size_t  size () const;
    char const * name () const;

    bool acquire(char const * name, std::size_t size, unsigned mode = create | open);
    void release();

    void* get() const;

    void attach(id_t);
    id_t detach();
};
成员
handle 构造函数
~handle 析构函数
swap 交换两个handle的内容
operator= 赋值操作
valid handle有效性判断
size 获取handle持有的共享内存的大小
name 获取handle持有的共享内存的名称
acquire 申请一块共享内存
release 释放申请的共享内存
get 获取handle持有的共享内存指针
attach 关联并托管一个共享内存id
detach 释放对共享内存id的管控

handle

/*A*/ handle();
/*B*/ handle(char const * name, std::size_t size, unsigned mode = create | open);
/*C*/ handle(handle&& rhs);

构造函数。

  • A. 默认构造函数,创建一个空handle,不托管任何内存
  • B. 赋值构造函数,通过参数在构造时自动申请共享内存
  • C. 移动构造函数,获得参数持有的共享内存的所有权
参数
name 字符串,指定请求共享内存的名称
size 正整数,指定请求共享内存的大小
mode 枚举值,参考:ipc::shm mode enumipc::shm::acquire
rhs handle&&,另一个handle对象的右值引用

~handle

~handle();

析构函数。在handle对象析构时,将自动回收其托管的共享内存。若为空,则不做任何事。

swap

void swap(handle& rhs);

交换两个handle的托管内容。

参数
rhs handle&&,另一个handle对象的右值引用

operator=

handle& operator=(handle rhs);

赋值操作。仅支持移动赋值。

参数
rhs handle,另一个handle对象(copy-and-swap惯用法)。

Home
Tutorial

namespaces

classes

head files

Clone this wiki locally