Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Class mapped_region

Boost , The Boost C++ Libraries BoostBook Documentation Subset , Indexes and Reference

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 mapped_region

boost::interprocess::mapped_region

Synopsis

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

class mapped_region {
public:
  enum advice_types;
  // construct/copy/destruct
  template<typename MemoryMappable> 
    mapped_region(const MemoryMappable &, mode_t, offset_t = 0, 
                  std::size_t = 0, const void * = 0, 
                  map_options_t = default_map_options);
  mapped_region();
  mapped_region(mapped_region &&);
  mapped_region & operator=(mapped_region &&);
  ~mapped_region();
  // public member functions
  void swap(mapped_region &);
  std::size_t get_size() const;
  void * get_address() const;
  mode_t get_mode() const;
  bool flush(std::size_t = 0, std::size_t = 0, bool = true);
  bool shrink_by(std::size_t, bool = true);
  bool advise(advice_types);
  // public static functions
  static std::size_t get_page_size();
};

Description

mapped_regionКласс представляет собой часть или область, созданную из объекта памяти.

ОС может отображать область больше запрашиваемой, поскольку область должна быть кратна размеру страницы, ноmapped_regionвсегда будет ссылаться на область, указанную пользователем.

mapped_region public construct/copy/destruct

  1. <
    template<typenameMemoryMappable>
     mapped_region(constMemoryMappable&mapping,mode_tmode,
                   offset_toffset=0,std::size_tsize=0,
                   constvoid*address=0,
                   map_options_tmap_options=default_map_options);
    >

    Создает область отображения отображенной памяти «картирование», начиная со смещения «зачет», и размер отображения будет «размером». Картографирование может быть открыто только для чтения, чтения-записи или копирования-на-записи.

    Если адрес указан, то и смещение, и адрес должны быть кратны размеру страницы.

    Карта создается с использованием «default_map_options». Этот флаг зависит от ОС и не должен быть изменен, если пользователю не нужно указать специальные параметры.

    В системах Windows «map_options» — значение DWORD, передаваемое как «dwDesiredAccess» на «MapViewOfFileEx». Если «default_map_options» пройден, он инициализируется до нуля. «map_options» (карта_опционы) XORed with FILE_MAP_[COPY | READ |WRITE].

    В системах UNIX и POSIX отображениях «map_options» представляет собой значение int, передаваемое как «флаги» на «mmap». Если указано «default_map_options», оно инициализируется в MAP_. NOSYNC, если такой вариант существует, и до нуля в противном случае. «map_options» с поддержкой MAP_ PRIVATE или MAP_SHARED.

    В системах UNIX и XSI отображениях «map_options» представляет собой значение int, передаваемое как «shmflg» на «shmat». Если указана «default_map_options», она инициализируется до нуля. При необходимости «map_options» XORed with SHM_RDONLY.

    ОС может выделять больше страниц, чем размер/размер страницы(), но get_address() всегда возвращает адрес, пройденный в этой функции (если не нулевой) и get_size() возвращает указанный размер.

  2. <
    mapped_region();
    >

    Конструктор по умолчанию. Адрес будет 0 (nullptr). Размер будет 0. Не бросать

  3. <
    mapped_region(mapped_region&&other);
    >

    Переместить конструктор. Это будет построено, принимая право собственности на «другой» регион, а «другой» останется в состоянии по умолчанию.

  4. <
    mapped_region&operator=(mapped_region&&other);
    >

    Перейдите к заданию. Если у этого есть область, нанесенная на карту памяти, она будет уничтожена, и она возьмет на себя ответственность за область, нанесенную на карту памяти «другого».

  5. <
    ~mapped_region();
    >

    Уничтожает нанесенный на карту регион. Не бросать

mapped_region public member functions

  1. <
    voidswap(mapped_region&other);
    >

    Переворачивает<mapped_region>с другой нанесенной на карту областью

  2. <
    std::size_tget_size()const;
    >Возвращает размер карты. Никогда не бросай.
  3. <
    void*get_address()const;
    >

    Возвращает базовый адрес отображения. Никогда не бросай.

  4. <
    mode_tget_mode()const;
    >

    Возвращает способ отображения, используемый для построения отображенной области. Никогда не бросай.

  5. <
    boolflush(std::size_tmapping_offset=0,std::size_tnumbytes=0,
              boolasync=true);
    >

    Подача на диск байтового диапазона в пределах отображенной памяти. Если «синхронизация» верна, функция вернется до завершения операции промывки, если «синхронизация» ложна, функция вернется после того, как данные были записаны в базовое устройство (т.е. в отображенных файлах кэшированная информация ОС записывается на диск). Никогда не бросай. Возврат ложный, если операция не была выполнена.

  6. <
    boolshrink_by(std::size_tbytes,boolfrom_back=true);
    >

    Сокращает текущую картографическую область. Если после сжатия больше не требуется отображаемая ранее страница памяти, доступ к этой странице может вызвать сбой сегментации. В зависимости от операционной системы эта операция может выйти из строя (общая память XSI), она может разорвать хранилище и освободить часть виртуального адресного пространства (например,POSIX) или эта функция может освободить некоторое физическое пространство памяти, освобождающее любое виртуальное адресное пространство (Windows). Вернусь к успеху. Никогда не бросай.

  7. <
    booladvise(advice_typesadvise);
    >

    Консультирует реализацию по ожидаемому поведению приложения в отношении данных в регионе. Реализация может использовать эту информацию для оптимизации обработки данных региона. Эта функция не влияет на семантику доступа к памяти в регионе, хотя может влиять на производительность доступа. Если тип рекомендации не известен реализации, функция возвращается ложной. Правда в другом.

mapped_region public static functions

  1. <
    staticstd::size_tget_page_size();
    >

    Возвращает размер страницы. Этот размер является минимальной памятью, которая будет использоваться системой при отображении отображаемого источника памяти и будет ограничивать адрес и смещение для отображения.


PrevUpHomeNext

Статья Class mapped_region раздела The Boost C++ Libraries BoostBook Documentation Subset Indexes and Reference может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Indexes and Reference ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 00:35:30/0.0069971084594727/1