| Home | Libraries | People | FAQ | More

## Class template basic_managed_mapped_file

boost::interprocess::basic_managed_mapped_file

## Synopsis

    template<typename CharType, typename AllocationAlgorithm,
             template< class IndexConfig > class IndexType>
    class basic_managed_mapped_file {
    public:
      // construct/copy/destruct
      basic_managed_mapped_file(create_only_t, const char *, std::size_t,
                                const void * = 0);
      basic_managed_mapped_file(open_or_create_t, const char *, std::size_t,
                                const void * = 0);
      basic_managed_mapped_file(open_only_t, const char *, const void * = 0);
      basic_managed_mapped_file(unspecified);
      basic_managed_mapped_file& operator=(unspecified);
      ~basic_managed_mapped_file();

      // public member functions
      void swap(basic_managed_mapped_file &) ;
      bool flush() ;

      // public static functions
      static bool grow(const char *, std::size_t) ;
      static bool shrink_to_fit(const char *) ;
    };

## Description

A basic shared memory named object creation class. Initializes the shared memory segment. Inherits all basic functionality from basic_managed_memory_impl<CharType, AllocationAlgorithm, IndexType>

### `basic_managed_mapped_file` public construct/copy/destruct

1.     basic_managed_mapped_file(create_only_t create_only, const char * name,
                                 std::size_t size, const void * addr = 0);

   Creates shared memory and creates and places the segment manager. This can throw.

2.     basic_managed_mapped_file(open_or_create_t open_or_create, const char * name,
                                 std::size_t size, const void * addr = 0);

   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.

3.     basic_managed_mapped_file(open_only_t open_only, const char * name,
                                 const void * addr = 0);

   Connects to a created shared memory and it's the segment manager. Never throws.

4.     basic_managed_mapped_file(unspecified moved);

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

5.     basic_managed_mapped_file& operator=(unspecified moved);

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

6.     ~basic_managed_mapped_file();

   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().

### `basic_managed_mapped_file` public member functions

1.     void swap(basic_managed_mapped_file & other) ;

   Swaps the ownership of the managed mapped memories managed by *this and other. Never throws.

2.     bool flush() ;

   Flushes cached data to file. Never throws

### `basic_managed_mapped_file` public static functions

1.     static bool grow(const char * filename, std::size_t extra_bytes) ;

   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

2.     static bool shrink_to_fit(const char * filename) ;

   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