-
Notifications
You must be signed in to change notification settings - Fork 336
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::buffer
ipc::circ::elem_array
ipc::circ::queue
ipc::route
ipc::channel
ipc::spin_lock
ipc::rw_lock
ipc::shm::handle
ipc::tls::pointer
ipc::mem::pool_alloc
head files