A basic X/Open System Interface (XSI) shared memory named object creation class. More...
#include <managed_xsi_shared_memory.hpp>
Public Types | |
typedef xsi_shared_memory_file_wrapper | device_type |
typedef ipcdetail::xsishmem_open_or_create < AllocationAlgorithm >::type | base2_t |
typedef ipcdetail::basic_managed_memory_impl < CharType, AllocationAlgorithm, IndexType, base2_t::ManagedOpenOrCreateUserOffset > | base_t |
typedef ipcdetail::create_open_func < base_t > | create_open_func_t |
typedef base_t::size_type | size_type |
Public Member Functions | |
basic_managed_xsi_shared_memory * | get_this_pointer () |
~basic_managed_xsi_shared_memory () | |
Destroys *this and indicates that the calling process is finished using the resource. More... | |
basic_managed_xsi_shared_memory () | |
Default constructor. More... | |
basic_managed_xsi_shared_memory (create_only_t, const xsi_key &key, std::size_t size, const void *addr=0, const permissions &perm=permissions()) | |
Creates shared memory and creates and places the segment manager. More... | |
basic_managed_xsi_shared_memory (open_or_create_t, const xsi_key &key, std::size_t size, const void *addr=0, const permissions &perm=permissions()) | |
Creates shared memory and creates and places the segment manager if segment was not created. More... | |
basic_managed_xsi_shared_memory (open_read_only_t, const xsi_key &key, const void *addr=0) | |
Connects to a created shared memory and its segment manager. More... | |
basic_managed_xsi_shared_memory (open_only_t, const xsi_key &key, const void *addr=0) | |
Connects to a created shared memory and its segment manager. More... | |
basic_managed_xsi_shared_memory (BOOST_RV_REF(basic_managed_xsi_shared_memory) moved) | |
Moves the ownership of "moved"'s managed memory to *this. More... | |
basic_managed_xsi_shared_memory & | operator= (BOOST_RV_REF(basic_managed_xsi_shared_memory) moved) |
Moves the ownership of "moved"'s managed memory to *this. More... | |
void | swap (basic_managed_xsi_shared_memory &other) |
Swaps the ownership of the managed shared memories managed by *this and other. More... | |
int | get_shmid () const |
template<class T > | |
std::pair< T *, std::size_t > | find (char_ptr_holder_t name) |
Tries to find a previous named allocation address. More... | |
Static Public Member Functions | |
static bool | remove (int shmid) |
Erases a XSI shared memory object identified by shmid from the system. More... | |
A basic X/Open System Interface (XSI) shared memory named object creation class.
Initializes the shared memory segment. Inherits all basic functionality from basic_managed_memory_impl<CharType, AllocationAlgorithm, IndexType>
typedef ipcdetail::xsishmem_open_or_create<AllocationAlgorithm>::type boost::interprocess::basic_managed_xsi_shared_memory< CharType, AllocationAlgorithm, IndexType >::base2_t |
typedef ipcdetail::basic_managed_memory_impl<CharType, AllocationAlgorithm, IndexType, base2_t::ManagedOpenOrCreateUserOffset> boost::interprocess::basic_managed_xsi_shared_memory< CharType, AllocationAlgorithm, IndexType >::base_t |
typedef ipcdetail::create_open_func<base_t> boost::interprocess::basic_managed_xsi_shared_memory< CharType, AllocationAlgorithm, IndexType >::create_open_func_t |
typedef xsi_shared_memory_file_wrapper boost::interprocess::basic_managed_xsi_shared_memory< CharType, AllocationAlgorithm, IndexType >::device_type |
typedef base_t::size_type boost::interprocess::basic_managed_xsi_shared_memory< CharType, AllocationAlgorithm, IndexType >::size_type |
|
inline |
Destroys *this and indicates that the calling process is finished using the resource.
The destructor function will deallocate any system resources allocated by the system for use by this process for this resource. The resource can still be opened again calling the open constructor overload. To erase the resource from the system use remove().
|
inline |
Default constructor.
Does nothing. Useful in combination with move semantics
|
inline |
Creates shared memory and creates and places the segment manager.
This can throw.
|
inline |
Creates shared memory and creates and places the segment manager if segment was not created.
If segment was created it connects to the segment. This can throw.
|
inline |
Connects to a created shared memory and its segment manager.
in read-only mode. This can throw.
|
inline |
Connects to a created shared memory and its segment manager.
This can throw.
|
inline |
Moves the ownership of "moved"'s managed memory to *this.
Does not throw
References boost::interprocess::basic_managed_xsi_shared_memory< CharType, AllocationAlgorithm, IndexType >::swap().
|
inline |
Tries to find a previous named allocation address.
Returns a memory buffer and the object count. If not found returned pointer is 0. Never throws.
References boost::iostreams::gzip::flags::name, and template.
|
inline |
|
inline |
|
inline |
Moves the ownership of "moved"'s managed memory to *this.
Does not throw
References boost::move(), and boost::interprocess::basic_managed_xsi_shared_memory< CharType, AllocationAlgorithm, IndexType >::swap().
|
inlinestatic |
Erases a XSI shared memory object identified by shmid from the system.
Returns false on error. Never throws
References boost::filesystem::detail::remove().
|
inline |
Swaps the ownership of the managed shared memories managed by *this and other.
Never throws.
References boost::swap.
Referenced by boost::interprocess::basic_managed_xsi_shared_memory< CharType, AllocationAlgorithm, IndexType >::basic_managed_xsi_shared_memory(), and boost::interprocess::basic_managed_xsi_shared_memory< CharType, AllocationAlgorithm, IndexType >::operator=().