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

Class template cached_node_allocator

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 template cached_node_allocator

boost::interprocess::cached_node_allocator

Synopsis

// In header: <boost/interprocess/allocators/cached_node_allocator.hpp>
template<typename T, typename SegmentManager, std::size_t NodesPerBlock> 
class cached_node_allocator {
public:
  // types
  typedef implementation_defined::segment_manager segment_manager;
  typedef segment_manager::void_pointer           void_pointer;   
  typedef implementation_defined::pointer         pointer;        
  typedef implementation_defined::const_pointer   const_pointer;  
  typedef T                                       value_type;     
  typedef unspecified                             reference;      
  typedef unspecified                             const_reference;
  typedef SegmentManager::size_type               size_type;      
  typedef SegmentManager::difference_type         difference_type;
  // member classes/structs/unions
  template<typename T2> 
  struct rebind {
    // types
    typedef cached_node_allocator< T2, SegmentManager > other;
  };
  // construct/copy/destruct
  cached_node_allocator(segment_manager *);
  cached_node_allocator(const cached_node_allocator &);
  template<typename T2> 
    cached_node_allocator(const cached_node_allocator< T2, SegmentManager, NodesPerBlock > &);
  template<typename T2, typename SegmentManager2, std::size_t N2> 
    cached_node_allocator & 
    operator=(const cached_node_allocator< T2, SegmentManager2, N2 > &);
  cached_node_allocator & operator=(const cached_node_allocator &);
  ~cached_node_allocator();
  // public member functions
  node_pool_t * get_node_pool() const;
  segment_manager * get_segment_manager() const;
  size_type max_size() const;
  pointer allocate(size_type, cvoid_pointer = 0);
  void deallocate(const pointer &, size_type);
  void deallocate_free_blocks();
  pointer address(reference) const;
  const_pointer address(const_reference) const;
  void construct(const pointer &, const_reference);
  void destroy(const pointer &);
  size_type size(const pointer &) const;
  pointer allocation_command(boost::interprocess::allocation_type, size_type, 
                             size_type &, pointer &);
  void allocate_many(size_type, size_type, multiallocation_chain &);
  void allocate_many(const size_type *, size_type, multiallocation_chain &);
  void deallocate_many(multiallocation_chain &);
  pointer allocate_one();
  multiallocation_chain allocate_individual(size_type);
  void deallocate_one(const pointer &);
  void deallocate_individual(multiallocation_chain);
  void set_max_cached_nodes(size_type);
  size_type get_max_cached_nodes() const;
  // friend functions
  friend void swap(self_t &, self_t &);
};

Description

cached_node_allocator public construct/copy/destruct

  1. cached_node_allocator(segment_manager * segment_mngr);

    Конструктор от менеджера сегмента. Если нет, то строит узел. Увеличивает исходный счет ассоциированного узла. Может бросить загрузить::interprocess::bad_alloc

  2. cached_node_allocator(const cached_node_allocator & другие);

    Copy конструктор из других cached_node_allocator. Увеличивает исходный счет ассоциированного узла. Никогда не бросайте

  3. >>>>T2>>>>>>>>>>>>>>>>T2>>>>>Установка>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Если нет, то строит узел. Увеличивает исходный счет ассоциированного узла. Может бросить Буста::interprocess::bad_alloc

  4. > > >> > > > > > > > > > > >> >>> >>>>>> >>>> &
  5. cached_node_allocator & оператор=(const cached_node_allocator &);

    Не присваивается из других cached_node_allocator228>

  6. ~cached_node_allocator();

    Destructor, удаляет node_pool_t из памяти, если его исходное число достигает нуля. Никогда не бросайте

cached_node_allocator public member functions

  1. node_pool_t * get_node_pool() const;

    Возвращает указатель к узелу. Никогда не бросайте

  2. segment_manager * get_segment_manager() const;

    Returns the segment manager. Никогда не бросайте

  3. size_type max_size() const;

    Никогда не бросайте

  4. pointer allocate(size_type count, cvoid_pointer Throws boost::interprocess::bad_alloc если нет достаточной памяти 

  5. void deallocate(const pointer & ptr, size_type count;

    Deallocate memory allocated. Никогда не бросайте

  6. void >deallocate_free_blocks();

    Deallocates все свободные блоки бассейна

  7. pointer адрес(reference value) const;

    Returns address of mutable object. Никогда не бросайте

  8. const_pointer адрес(const_reference value) const;

    Returns адрес нестабильного объекта. Никогда не бросайте

  9. void конструкция(const pointer & ptr, const_reference v);

    Default конструируют объект. Бросьте, если конструктор по умолчанию T бросает

  10. void destroy(constpointer & ptr);

    Destroys. Бросьте, если деструктор объекта бросает

  11. size_type size(const pointer & p>) const;

    Returns maximum the number of objects the previously allocated memory pointed by p can hold. Этот размер работает только для памяти, выделенной с выделением, выделением_командом и распределением_многих.

  12. pointer allocation_command(boost::interprocess::allocation_type command, size_type limit_size, size_type &
  13. void allocate_many(size_type elem_size, size_type num_elements, multiallocation_chain & chain;;

    Allocates many elements of size elem_size in a contig. Минимальное число, которое должно быть выделено, - min_elements, предпочтительное и максимальное число предпочтительно_элементов. Количество фактически распределенных элементов будет назначено на received_size. Элементы должны быть распределены с помощью...

  14. void allocate_many(const size_type * elem_sizes, size_type n_elements,  multilocation_chain& chain

    Элементы должны быть распределены

  15. void >deallocate_many(мультилокация_chain & цепочка);

    Аллектирует многие элементы размера elem_size в смежном блоке памяти. Минимальное число, которое должно быть выделено, - min_elements, предпочтительное и максимальное число предпочтительно_элементов. Количество фактически распределенных элементов будет назначено на received_size. Элементы должны быть распределены с помощью...

  16. pointer allocate_one();

    Аллокатирует только один объект. Память, выделенная с этой функцией, должна быть распределена только с deallocate_one(). Throws boost::interprocess::bad_alloc если нет достаточной памяти

  17. multiallocation_chain allocate_individual(size_type num_elements);

    = много элементов размера == 1 в смежном блоке памяти. Минимальное число, которое должно быть выделено, - min_elements, предпочтительное и максимальное число предпочтительно_элементов. Количество фактически распределенных элементов будет назначено на received_size. Память, выделенная с этой функцией, должна быть распределена только с deallocate_one().

  18. void deallocate_one(constpointer & p);

    Deallocates memory previously allocated with allocate_one(). Вы никогда не должны использовать deallocate_one для распределения памяти, распределенной с другими функциями, отличными от allocate_one(). Никогда не бросайте

  19. void deallocate_individual( multilocation_chain it);

    Аллоцирует многие элементы размера == 1 в смежном блоке памяти. Минимальное число, которое должно быть выделено, - min_elements, предпочтительное и максимальное число предпочтительно_элементов. Количество фактически распределенных элементов будет назначено на received_size. Память, выделенная с этой функцией, должна быть распределена только с deallocate_one().

  20. void set_max_cached_nodes(size_type newmax);

    Получает новое максимальное значение кэшированных узлов. Это может спровоцировать сделки, если «newmax» меньше текущих кэшированных узлов. Никогда не бросайте

  21. size_type get_max_cached_nodes() const;

    Returns the max cached nodes option. Никогда не бросайте

cached_node_allocator friend functions

  1. подруга void swap(self_t & alloc1, self_t & alloc2;;
    Не бросай. Если каждый аллокатор помещается в другой сегмент памяти, результат не определяется.


PrevUpHomeNext

Статья Class template cached_node_allocator раздела 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-19 17:43:49/0.010257959365845/1