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_windows_shared_memory< CharType, AllocationAlgorithm, IndexType > Class Template Reference

A basic managed windows shared memory creation class. More...

#include <managed_windows_shared_memory.hpp>

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

Public Types

typedef base_t::size_type size_type
 

Public Member Functions

 basic_managed_windows_shared_memory ()
 Default constructor. More...
 
 basic_managed_windows_shared_memory (create_only_t, const char *name, size_type size, const void *addr=0, const permissions &perm=permissions())
 Creates shared memory and creates and places the segment manager. More...
 
 basic_managed_windows_shared_memory (open_or_create_t, const char *name, size_type 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_windows_shared_memory (open_only_t, const char *name, const void *addr=0)
 Connects to a created shared memory and its segment manager. More...
 
 basic_managed_windows_shared_memory (open_copy_on_write_t, const char *name, const void *addr=0)
 Connects to a created shared memory and its segment manager in copy_on_write mode. More...
 
 basic_managed_windows_shared_memory (open_read_only_t, const char *name, const void *addr=0)
 Connects to a created shared memory and its segment manager in read-only mode. More...
 
 basic_managed_windows_shared_memory (BOOST_RV_REF(basic_managed_windows_shared_memory) moved)
 Moves the ownership of "moved"'s managed memory to *this. More...
 
basic_managed_windows_shared_memoryoperator= (BOOST_RV_REF(basic_managed_windows_shared_memory) moved)
 Moves the ownership of "moved"'s managed memory to *this. More...
 
 ~basic_managed_windows_shared_memory ()
 Destroys *this and indicates that the calling process is finished using the resource. More...
 
void swap (basic_managed_windows_shared_memory &other)
 Swaps the ownership of the managed mapped memories managed by *this and other. More...
 
template<class T >
std::pair< T *, size_typefind (char_ptr_holder_t name)
 Tries to find a previous named allocation address. More...
 

Detailed Description

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

A basic managed windows shared memory creation class.

Initializes the shared memory segment. Inherits all basic functionality from basic_managed_memory_impl<CharType, AllocationAlgorithm, IndexType> Unlike basic_managed_shared_memory, it has no kernel persistence and the shared memory is destroyed when all processes destroy all their windows_shared_memory objects and mapped regions for the same shared memory or the processes end/crash.

Warning: basic_managed_windows_shared_memory and basic_managed_shared_memory can't communicate between them.

Member Typedef Documentation

template<class CharType , class AllocationAlgorithm , template< class IndexConfig > class IndexType>
typedef base_t::size_type boost::interprocess::basic_managed_windows_shared_memory< CharType, AllocationAlgorithm, IndexType >::size_type

Constructor & Destructor Documentation

template<class CharType , class AllocationAlgorithm , template< class IndexConfig > class IndexType>
boost::interprocess::basic_managed_windows_shared_memory< CharType, AllocationAlgorithm, IndexType >::basic_managed_windows_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_windows_shared_memory< CharType, AllocationAlgorithm, IndexType >::basic_managed_windows_shared_memory ( create_only_t  ,
const char *  name,
size_type  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_windows_shared_memory< CharType, AllocationAlgorithm, IndexType >::basic_managed_windows_shared_memory ( open_or_create_t  ,
const char *  name,
size_type  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_windows_shared_memory< CharType, AllocationAlgorithm, IndexType >::basic_managed_windows_shared_memory ( open_only_t  ,
const char *  name,
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_windows_shared_memory< CharType, AllocationAlgorithm, IndexType >::basic_managed_windows_shared_memory ( open_copy_on_write_t  ,
const char *  name,
const void *  addr = 0 
)
inline

Connects to a created shared memory and its segment manager in copy_on_write mode.

This can throw.

template<class CharType , class AllocationAlgorithm , template< class IndexConfig > class IndexType>
boost::interprocess::basic_managed_windows_shared_memory< CharType, AllocationAlgorithm, IndexType >::basic_managed_windows_shared_memory ( open_read_only_t  ,
const char *  name,
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_windows_shared_memory< CharType, AllocationAlgorithm, IndexType >::basic_managed_windows_shared_memory ( BOOST_RV_REF(basic_managed_windows_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_windows_shared_memory< CharType, AllocationAlgorithm, IndexType >::swap().

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

Destroys *this and indicates that the calling process is finished using the resource.

All mapped regions are still valid after destruction. When all mapped regions and basic_managed_windows_shared_memory objects referring the shared memory are destroyed, the operating system will destroy the shared memory.

Member Function Documentation

template<class CharType , class AllocationAlgorithm , template< class IndexConfig > class IndexType>
template<class T >
std::pair<T*, size_type> boost::interprocess::basic_managed_windows_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>
basic_managed_windows_shared_memory& boost::interprocess::basic_managed_windows_shared_memory< CharType, AllocationAlgorithm, IndexType >::operator= ( BOOST_RV_REF(basic_managed_windows_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_windows_shared_memory< CharType, AllocationAlgorithm, IndexType >::swap().

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

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