Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
boost::interprocess::basic_managed_xsi_shared_memory< CharType, AllocationAlgorithm, IndexType > Class Template Reference

A basic X/Open System Interface (XSI) shared memory named object creation class. More...

#include <managed_xsi_shared_memory.hpp>

Inheritance diagram for boost::interprocess::basic_managed_xsi_shared_memory< CharType, AllocationAlgorithm, IndexType >:
Collaboration diagram for boost::interprocess::basic_managed_xsi_shared_memory< CharType, AllocationAlgorithm, IndexType >:

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_memoryget_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_memoryoperator= (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...
 

Detailed Description

template<class CharType, class AllocationAlgorithm, template< class IndexConfig > class IndexType>
class boost::interprocess::basic_managed_xsi_shared_memory< CharType, AllocationAlgorithm, IndexType >

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>

Member Typedef Documentation

template<class CharType , class AllocationAlgorithm , template< class IndexConfig > class IndexType>
typedef ipcdetail::xsishmem_open_or_create<AllocationAlgorithm>::type boost::interprocess::basic_managed_xsi_shared_memory< CharType, AllocationAlgorithm, IndexType >::base2_t
template<class CharType , class AllocationAlgorithm , template< class IndexConfig > class IndexType>
typedef ipcdetail::basic_managed_memory_impl<CharType, AllocationAlgorithm, IndexType, base2_t::ManagedOpenOrCreateUserOffset> boost::interprocess::basic_managed_xsi_shared_memory< CharType, AllocationAlgorithm, IndexType >::base_t
template<class CharType , class AllocationAlgorithm , template< class IndexConfig > class IndexType>
typedef ipcdetail::create_open_func<base_t> boost::interprocess::basic_managed_xsi_shared_memory< CharType, AllocationAlgorithm, IndexType >::create_open_func_t
template<class CharType , class AllocationAlgorithm , template< class IndexConfig > class IndexType>
typedef xsi_shared_memory_file_wrapper boost::interprocess::basic_managed_xsi_shared_memory< CharType, AllocationAlgorithm, IndexType >::device_type
template<class CharType , class AllocationAlgorithm , template< class IndexConfig > class IndexType>
typedef base_t::size_type boost::interprocess::basic_managed_xsi_shared_memory< CharType, AllocationAlgorithm, IndexType >::size_type

Constructor & Destructor Documentation

template<class CharType , class AllocationAlgorithm , template< class IndexConfig > class IndexType>
boost::interprocess::basic_managed_xsi_shared_memory< CharType, AllocationAlgorithm, IndexType >::~basic_managed_xsi_shared_memory ( )
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().

template<class CharType , class AllocationAlgorithm , template< class IndexConfig > class IndexType>
boost::interprocess::basic_managed_xsi_shared_memory< CharType, AllocationAlgorithm, IndexType >::basic_managed_xsi_shared_memory ( )
inline

Default constructor.

Does nothing. Useful in combination with move semantics

template<class CharType , class AllocationAlgorithm , template< class IndexConfig > class IndexType>
boost::interprocess::basic_managed_xsi_shared_memory< CharType, AllocationAlgorithm, IndexType >::basic_managed_xsi_shared_memory ( create_only_t  ,
const xsi_key key,
std::size_t  size,
const void *  addr = 0,
const permissions perm = permissions() 
)
inline

Creates shared memory and creates and places the segment manager.

This can throw.

template<class CharType , class AllocationAlgorithm , template< class IndexConfig > class IndexType>
boost::interprocess::basic_managed_xsi_shared_memory< CharType, AllocationAlgorithm, IndexType >::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() 
)
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.

template<class CharType , class AllocationAlgorithm , template< class IndexConfig > class IndexType>
boost::interprocess::basic_managed_xsi_shared_memory< CharType, AllocationAlgorithm, IndexType >::basic_managed_xsi_shared_memory ( open_read_only_t  ,
const xsi_key key,
const void *  addr = 0 
)
inline

Connects to a created shared memory and its segment manager.

in read-only mode. This can throw.

template<class CharType , class AllocationAlgorithm , template< class IndexConfig > class IndexType>
boost::interprocess::basic_managed_xsi_shared_memory< CharType, AllocationAlgorithm, IndexType >::basic_managed_xsi_shared_memory ( open_only_t  ,
const xsi_key key,
const void *  addr = 0 
)
inline

Connects to a created shared memory and its segment manager.

This can throw.

template<class CharType , class AllocationAlgorithm , template< class IndexConfig > class IndexType>
boost::interprocess::basic_managed_xsi_shared_memory< CharType, AllocationAlgorithm, IndexType >::basic_managed_xsi_shared_memory ( BOOST_RV_REF(basic_managed_xsi_shared_memory< CharType, AllocationAlgorithm, IndexType >)  moved)
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().

Member Function Documentation

template<class CharType , class AllocationAlgorithm , template< class IndexConfig > class IndexType>
template<class T >
std::pair<T*, std::size_t> boost::interprocess::basic_managed_xsi_shared_memory< CharType, AllocationAlgorithm, IndexType >::find ( char_ptr_holder_t  name)
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.

template<class CharType , class AllocationAlgorithm , template< class IndexConfig > class IndexType>
int boost::interprocess::basic_managed_xsi_shared_memory< CharType, AllocationAlgorithm, IndexType >::get_shmid ( ) const
inline
template<class CharType , class AllocationAlgorithm , template< class IndexConfig > class IndexType>
basic_managed_xsi_shared_memory* boost::interprocess::basic_managed_xsi_shared_memory< CharType, AllocationAlgorithm, IndexType >::get_this_pointer ( )
inline
template<class CharType , class AllocationAlgorithm , template< class IndexConfig > class IndexType>
basic_managed_xsi_shared_memory& boost::interprocess::basic_managed_xsi_shared_memory< CharType, AllocationAlgorithm, IndexType >::operator= ( BOOST_RV_REF(basic_managed_xsi_shared_memory< CharType, AllocationAlgorithm, IndexType >)  moved)
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().

template<class CharType , class AllocationAlgorithm , template< class IndexConfig > class IndexType>
static bool boost::interprocess::basic_managed_xsi_shared_memory< CharType, AllocationAlgorithm, IndexType >::remove ( int  shmid)
inlinestatic

Erases a XSI shared memory object identified by shmid from the system.

Returns false on error. Never throws

References boost::filesystem::detail::remove().

template<class CharType , class AllocationAlgorithm , template< class IndexConfig > class IndexType>
void boost::interprocess::basic_managed_xsi_shared_memory< CharType, AllocationAlgorithm, IndexType >::swap ( basic_managed_xsi_shared_memory< CharType, AllocationAlgorithm, IndexType > &  other)
inline

The documentation for this class was generated from the following file: