#include <ace/SV_Shared_Memory.h> class ACE_SV_Shared_Memory {
public:
enum { ACE_CREATE = IPC_CREAT, ACE_OPEN = 0 };
ACE_SV_Shared_Memory (void);
ACE_SV_Shared_Memory ( key_t external_id, size_t size, int create, int perms = ACE_DEFAULT_PERMS, void *virtual_addr = 0, int flags = 0 );
ACE_SV_Shared_Memory (ACE_HANDLE internal_id, int flags = 0);
int open ( key_t external_id, size_t size, int create = ACE_SV_Shared_Memory::ACE_OPEN, int perms = ACE_DEFAULT_PERMS );
int open_and_attach ( key_t external_id, size_t size, int create = ACE_SV_Shared_Memory::ACE_OPEN, int perms = ACE_DEFAULT_PERMS, void *virtual_addr = 0, int flags = 0 );
int attach (void *virtual_addr = 0, int flags =0);
int detach (void);
int remove (void);
int control (int cmd, void *buf);
void *get_segment_ptr (void) const;
int get_segment_size (void) const;
ACE_HANDLE get_id (void) const;
void dump (void) const;
ACE_ALLOC_HOOK_DECLARE;
protected:
enum{ ALIGN_WORDB = 8 };
ACE_HANDLE internal_id_;
int size_;
void *segment_ptr_;
int round_up (size_t len);
};
ACE_SV_Shared_Memory (void);
ACE_SV_Shared_Memory (
key_t external_id,
size_t size,
int create,
int perms = ACE_DEFAULT_PERMS,
void *virtual_addr = 0,
int flags = 0
);
ACE_SV_Shared_Memory (ACE_HANDLE internal_id, int flags = 0);
int open (
key_t external_id,
size_t size,
int create = ACE_SV_Shared_Memory::ACE_OPEN,
int perms = ACE_DEFAULT_PERMS
);
int open_and_attach (
key_t external_id,
size_t size,
int create = ACE_SV_Shared_Memory::ACE_OPEN,
int perms = ACE_DEFAULT_PERMS,
void *virtual_addr = 0,
int flags = 0
);
int attach (void *virtual_addr = 0, int flags =0);
int detach (void);
int remove (void);
int control (int cmd, void *buf);
shmctl
.
void *get_segment_ptr (void) const;
int get_segment_size (void) const;
ACE_HANDLE get_id (void) const;
void dump (void) const;
ACE_ALLOC_HOOK_DECLARE;