-
Couldn't load subscription status.
- Fork 381
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的管控 |
/*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 enum,ipc::shm::acquire |
rhs |
handle&&,另一个handle对象的右值引用 |
~handle();析构函数。在handle对象析构时,将自动回收其托管的共享内存。若为空,则不做任何事。
void swap(handle& rhs);交换两个handle的托管内容。
| 参数 | |
|---|---|
rhs |
handle&&,另一个handle对象的右值引用 |
handle& operator=(handle rhs);赋值操作。仅支持移动赋值。
| 参数 | |
|---|---|
rhs |
handle,另一个handle对象(copy-and-swap惯用法)。 |
namespaces
classes
ipc::bufferipc::circ::elem_arrayipc::circ::queueipc::routeipc::channelipc::spin_lockipc::rw_lockipc::shm::handleipc::tls::pointeripc::mem::pool_alloc
head files