Library: Foundation
Package: Processes
Header: Poco/SharedMemory.h
Description
Create and manage a shared memory object.
A SharedMemory object has value semantics, but is implemented using a handle/implementation idiom. Therefore, multiple SharedMemory objects can share a single, reference counted SharedMemoryImpl object.
Member Summary
Member Functions: begin, end, operator =, swap
Enumerations
AccessMode
AM_READ = 0
Constructors
SharedMemory
SharedMemory();
Default constructor creates an unmapped SharedMemory object. No clients can connect to an unmapped SharedMemory object.
SharedMemory
SharedMemory(
const SharedMemory & other
);
Creates a SharedMemory object by copying another one.
SharedMemory
SharedMemory(
const File & file,
AccessMode mode,
const void * addrHint = 0
);
Maps the entire contents of file into a shared memory segment.
An address hint can be passed to the system, specifying the desired start address of the shared memory area. Whether the hint is actually honored is, however, up to the system. Windows platform will generally ignore the hint.
SharedMemory
SharedMemory(
const std::string & name,
std::size_t size,
AccessMode mode,
const void * addrHint = 0,
bool server = true
);
Creates or connects to a shared memory object with the given name.
For maximum portability, name should be a valid Unix filename and not contain any slashes or backslashes.
An address hint can be passed to the system, specifying the desired start address of the shared memory area. Whether the hint is actually honored is, however, up to the system. Windows platform will generally ignore the hint.
If server is set to true, the shared memory region will be unlinked by calling shm_unlink() (on POSIX platforms) when the SharedMemory object is destroyed. The server parameter is ignored on Windows platforms.
Destructor
~SharedMemory
~SharedMemory();
Destroys the SharedMemory.
Member Functions
begin
char * begin() const;
Returns the start address of the shared memory segment. Will be NULL for illegal segments.
end
char * end() const;
Returns the one-past-end end address of the shared memory segment. Will be NULL for illegal segments.
operator =
SharedMemory & operator = (
const SharedMemory & other
);
Assigns another SharedMemory object.
swap
void swap(
SharedMemory & other
) noexcept;
Swaps the SharedMemory object with another one.