Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Class shared_memory_object

boost::interprocess::shared_memory_object

Synopsis

// In header: <boost/interprocess/shared_memory_object.hpp>


class shared_memory_object {
public:
  // construct/copy/destruct
  shared_memory_object() noexcept;
  shared_memory_object(create_only_t, const char *, mode_t, 
                       const permissions & = permissions());
  shared_memory_object(open_or_create_t, const char *, mode_t, 
                       const permissions & = permissions());
  shared_memory_object(open_only_t, const char *, mode_t);
  shared_memory_object(create_only_t, const wchar_t *, mode_t, 
                       const permissions & = permissions());
  shared_memory_object(open_or_create_t, const wchar_t *, mode_t, 
                       const permissions & = permissions());
  shared_memory_object(open_only_t, const wchar_t *, mode_t);
  shared_memory_object(shared_memory_object &&) noexcept;
  shared_memory_object & operator=(shared_memory_object &&) noexcept;
  ~shared_memory_object();

  // public member functions
  void swap(shared_memory_object &) noexcept;
  void truncate(offset_t);
  const char * get_name() const noexcept;
  bool get_size(offset_t &) const noexcept;
  mode_t get_mode() const noexcept;
  mapping_handle_t get_mapping_handle() const noexcept;

  // public static functions
  static bool remove(const char *);
  static bool remove(const wchar_t *);
};

Description

A class that wraps a shared memory mapping that can be used to create mapped regions from the mapped files

shared_memory_object public construct/copy/destruct

  1. shared_memory_object() noexcept;
    Default constructor. Represents an empty shared_memory_object.
  2. shared_memory_object(create_only_t, const char * name, mode_t mode, 
                         const permissions & perm = permissions());

    Creates a shared memory object with name "name" and mode "mode", with the access mode "mode" If the file previously exists, throws an error.*<zwj></zwj>/

  3. shared_memory_object(open_or_create_t, const char * name, mode_t mode, 
                         const permissions & perm = permissions());

    Tries to create a shared memory object with name "name" and mode "mode", with the access mode "mode". If the file previously exists, it tries to open it with mode "mode". Otherwise throws an error.

  4. shared_memory_object(open_only_t, const char * name, mode_t mode);

    Tries to open a shared memory object with name "name", with the access mode "mode". If the file does not previously exist, it throws an error.

  5. shared_memory_object(create_only_t, const wchar_t * name, mode_t mode, 
                         const permissions & perm = permissions());

    Creates a shared memory object with name "name" and mode "mode", with the access mode "mode" If the file previously exists, throws an error.

    Note: This function is only available on operating systems with native wchar_t APIs (e.g. Windows).

  6. shared_memory_object(open_or_create_t, const wchar_t * name, mode_t mode, 
                         const permissions & perm = permissions());

    Tries to create a shared memory object with name "name" and mode "mode", with the access mode "mode". If the file previously exists, it tries to open it with mode "mode". Otherwise throws an error.

    Note: This function is only available on operating systems with native wchar_t APIs (e.g. Windows).

  7. shared_memory_object(open_only_t, const wchar_t * name, mode_t mode);

    Tries to open a shared memory object with name "name", with the access mode "mode". If the file does not previously exist, it throws an error.

    Note: This function is only available on operating systems with native wchar_t APIs (e.g. Windows).

  8. shared_memory_object(shared_memory_object && moved) noexcept;

    Moves the ownership of "moved"'s shared memory object to *this. After the call, "moved" does not represent any shared memory object. Does not throw

  9. shared_memory_object & operator=(shared_memory_object && moved) noexcept;

    Moves the ownership of "moved"'s shared memory to *this. After the call, "moved" does not represent any shared memory. Does not throw

  10. ~shared_memory_object();

    Destroys *this and indicates that the calling process is finished using the resource. All mapped regions are still valid after destruction. 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().

shared_memory_object public member functions

  1. void swap(shared_memory_object & moved) noexcept;
    Swaps the shared_memory_objects. Does not throw.
  2. void truncate(offset_t length);
    Sets the size of the shared memory mapping.
  3. const char * get_name() const noexcept;
    Returns the name of the shared memory object.
  4. bool get_size(offset_t & size) const noexcept;

    Returns true if the size of the shared memory object can be obtained and writes the size in the passed reference

  5. mode_t get_mode() const noexcept;
    Returns access mode.
  6. mapping_handle_t get_mapping_handle() const noexcept;
    Returns mapping handle. Never throws.

shared_memory_object public static functions

  1. static bool remove(const char * name);

    Erases a shared memory object from the system. Returns false on error. Never throws

  2. static bool remove(const wchar_t * name);

    Erases a shared memory object from the system. Returns false on error. Never throws

    Note: This function is only available on operating systems with native wchar_t APIs (e.g. Windows).


PrevUpHomeNext