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

A basic mapped file named object creation class. More...

#include <managed_mapped_file.hpp>

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

Public Types

typedef
ipcdetail::basic_managed_memory_impl
< CharType,
AllocationAlgorithm, IndexType,
ipcdetail::mfile_open_or_create
< AllocationAlgorithm >
::type::ManagedOpenOrCreateUserOffset > 
base_t
 
typedef ipcdetail::file_wrapper device_type
 

Public Member Functions

typedef BOOST_INTERPROCESS_IMPDEF (base_t::size_type) size_type
 Unsigned integral type enough to represent the size of a basic_managed_mapped_file. More...
 
 basic_managed_mapped_file ()
 Creates mapped file and creates and places the segment manager. More...
 
 basic_managed_mapped_file (create_only_t, const char *name, size_type size, const void *addr=0, const permissions &perm=permissions())
 Creates mapped file and creates and places the segment manager. More...
 
 basic_managed_mapped_file (open_or_create_t, const char *name, size_type size, const void *addr=0, const permissions &perm=permissions())
 Creates mapped file and creates and places the segment manager if segment was not created. More...
 
 basic_managed_mapped_file (open_only_t, const char *name, const void *addr=0)
 Connects to a created mapped file and its segment manager. More...
 
 basic_managed_mapped_file (open_copy_on_write_t, const char *name, const void *addr=0)
 Connects to a created mapped file and its segment manager in copy_on_write mode. More...
 
 basic_managed_mapped_file (open_read_only_t, const char *name, const void *addr=0)
 Connects to a created mapped file and its segment manager in read-only mode. More...
 
 basic_managed_mapped_file (BOOST_RV_REF(basic_managed_mapped_file) moved)
 Moves the ownership of "moved"'s managed memory to *this. More...
 
basic_managed_mapped_fileoperator= (BOOST_RV_REF(basic_managed_mapped_file) moved)
 Moves the ownership of "moved"'s managed memory to *this. More...
 
 ~basic_managed_mapped_file ()
 Destroys *this and indicates that the calling process is finished using the resource. More...
 
void swap (basic_managed_mapped_file &other)
 Swaps the ownership of the managed mapped memories managed by *this and other. More...
 
bool flush ()
 Flushes cached data to file. More...
 
template<class T >
std::pair< T *, size_typefind (char_ptr_holder_t name)
 Tries to find a previous named allocation address. More...
 

Static Public Member Functions

static bool grow (const char *filename, size_type extra_bytes)
 Tries to resize mapped file so that we have room for more objects. More...
 
static bool shrink_to_fit (const char *filename)
 Tries to resize mapped file to minimized the size of the file. More...
 

Detailed Description

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

A basic mapped file named object creation class.

Initializes the mapped file. 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::basic_managed_memory_impl<CharType, AllocationAlgorithm, IndexType, ipcdetail::mfile_open_or_create<AllocationAlgorithm>::type::ManagedOpenOrCreateUserOffset> boost::interprocess::basic_managed_mapped_file< CharType, AllocationAlgorithm, IndexType >::base_t
template<class CharType , class AllocationAlgorithm , template< class IndexConfig > class IndexType>
typedef ipcdetail::file_wrapper boost::interprocess::basic_managed_mapped_file< CharType, AllocationAlgorithm, IndexType >::device_type

Constructor & Destructor Documentation

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

Creates mapped file and creates and places the segment manager.

This can throw.

template<class CharType , class AllocationAlgorithm , template< class IndexConfig > class IndexType>
boost::interprocess::basic_managed_mapped_file< CharType, AllocationAlgorithm, IndexType >::basic_managed_mapped_file ( create_only_t  ,
const char *  name,
size_type  size,
const void *  addr = 0,
const permissions perm = permissions() 
)
inline

Creates mapped file and creates and places the segment manager.

This can throw.

template<class CharType , class AllocationAlgorithm , template< class IndexConfig > class IndexType>
boost::interprocess::basic_managed_mapped_file< CharType, AllocationAlgorithm, IndexType >::basic_managed_mapped_file ( open_or_create_t  ,
const char *  name,
size_type  size,
const void *  addr = 0,
const permissions perm = permissions() 
)
inline

Creates mapped file 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_mapped_file< CharType, AllocationAlgorithm, IndexType >::basic_managed_mapped_file ( open_only_t  ,
const char *  name,
const void *  addr = 0 
)
inline

Connects to a created mapped file and its segment manager.

This can throw.

template<class CharType , class AllocationAlgorithm , template< class IndexConfig > class IndexType>
boost::interprocess::basic_managed_mapped_file< CharType, AllocationAlgorithm, IndexType >::basic_managed_mapped_file ( open_copy_on_write_t  ,
const char *  name,
const void *  addr = 0 
)
inline

Connects to a created mapped file 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_mapped_file< CharType, AllocationAlgorithm, IndexType >::basic_managed_mapped_file ( open_read_only_t  ,
const char *  name,
const void *  addr = 0 
)
inline

Connects to a created mapped file 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_mapped_file< CharType, AllocationAlgorithm, IndexType >::basic_managed_mapped_file ( BOOST_RV_REF(basic_managed_mapped_file< CharType, AllocationAlgorithm, IndexType >)  moved)
inline

Moves the ownership of "moved"'s managed memory to *this.

Does not throw

References boost::interprocess::basic_managed_mapped_file< CharType, AllocationAlgorithm, IndexType >::swap().

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

Member Function Documentation

template<class CharType , class AllocationAlgorithm , template< class IndexConfig > class IndexType>
typedef boost::interprocess::basic_managed_mapped_file< CharType, AllocationAlgorithm, IndexType >::BOOST_INTERPROCESS_IMPDEF ( base_t::size_type  )

Unsigned integral type enough to represent the size of a basic_managed_mapped_file.

template<class CharType , class AllocationAlgorithm , template< class IndexConfig > class IndexType>
template<class T >
std::pair<T*, size_type> boost::interprocess::basic_managed_mapped_file< 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>
bool boost::interprocess::basic_managed_mapped_file< CharType, AllocationAlgorithm, IndexType >::flush ( )
inline

Flushes cached data to file.

Never throws

template<class CharType , class AllocationAlgorithm , template< class IndexConfig > class IndexType>
static bool boost::interprocess::basic_managed_mapped_file< CharType, AllocationAlgorithm, IndexType >::grow ( const char *  filename,
size_type  extra_bytes 
)
inlinestatic

Tries to resize mapped file so that we have room for more objects.

This function is not synchronized so no other thread or process should be reading or writing the file

References template.

template<class CharType , class AllocationAlgorithm , template< class IndexConfig > class IndexType>
basic_managed_mapped_file& boost::interprocess::basic_managed_mapped_file< CharType, AllocationAlgorithm, IndexType >::operator= ( BOOST_RV_REF(basic_managed_mapped_file< 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_mapped_file< CharType, AllocationAlgorithm, IndexType >::swap().

template<class CharType , class AllocationAlgorithm , template< class IndexConfig > class IndexType>
static bool boost::interprocess::basic_managed_mapped_file< CharType, AllocationAlgorithm, IndexType >::shrink_to_fit ( const char *  filename)
inlinestatic

Tries to resize mapped file to minimized the size of the file.

This function is not synchronized so no other thread or process should be reading or writing the file

References template.

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

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