YSTest: ystdex::pmr::pool_resource类 参考

YSTest PreAlpha_b900_20201012 The YSLib Test Project

Public 成员函数 | Protected 成员函数 | Private 类型 | Private 成员函数 | Private 属性 | 所有成员列表
ystdex::pmr::pool_resource类 参考

池资源。 更多...

`#include <memory_resource.h>`

类 ystdex::pmr::pool_resource 继承关系图:
[图例]
ystdex::pmr::pool_resource 的协作图:
[图例]

## Public 成员函数

| pool_resource ()
| pool_resource (const pool_options &, memory_resource *)
| pool_resource (memory_resource *upstream)
| pool_resource (const pool_options &opts)
| ~pool_resource () override
void | release ()
memory_resource * | upstream_resource () const
pool_options | options () const

## Protected 成员函数

void * | do_allocate (size_t, size_t) override
void | do_deallocate (void *, size_t, size_t) override
bool | do_is_equal (const memory_resource &) const override

## Private 类型

using | pools_t = std::vector< resource_pool, polymorphic_allocator< resource_pool > >

## Private 成员函数

std::pair< pools_t::iterator, size_t > | find_pool (size_t, size_t)
bool | pool_exists (const std::pair< pools_t::iterator, size_t > &)
memory_resource & | upstream ()

## Private 属性

pool_options | saved_options
oversized_map | oversized
pools_t | pools

## 详细描述

池资源。

自从
  build 843

接口同 ISO C++17 的 std::pmr::unsynchronized_pool_resource ， 但保证能在上游的分配器分配的区块为空时去配。

在文件 memory_resource.h 第 703 行定义.

## 成员类型定义说明

## ◆ pools_t

using ystdex::pmr::pool_resource::pools_t = std::vector<resource_pool, polymorphic_allocator<resource_pool> >

private

在文件 memory_resource.h 第 706 行定义.

## 构造及析构函数说明

## ◆ pool_resource() [1/4]

ystdex::pmr::pool_resource::pool_resource | ( |  | ) |

inline

注解
  实现定义：参见 adjust_pool_options 的调整的值。

参见
  adjust_pool_options

在文件 memory_resource.h 第 720 行定义.

## ◆ pool_resource() [2/4]

ystdex::pmr::pool_resource::pool_resource | ( | const pool_options & | opts,
|  | memory_resource * | p_up
| ) |  |

前置条件
  断言：指针参数非空。

在文件 memory_resource.cpp 第 663 行定义.

引用了 ystdex::pmr::adjust_pool_options().

函数调用图:

## ◆ pool_resource() [3/4]

ystdex::pmr::pool_resource::pool_resource | ( | memory_resource * | upstream | ) |

inlineexplicit

前置条件
  间接断言：指针参数非空。

在文件 memory_resource.h 第 728 行定义.

## ◆ pool_resource() [4/4]

ystdex::pmr::pool_resource::pool_resource | ( | const pool_options & | opts | ) |

inlineexplicit

在文件 memory_resource.h 第 732 行定义.

## ◆ ~pool_resource()

ystdex::pmr::pool_resource::~pool_resource | ( |  | ) |

overridedefault

## 成员函数说明

## ◆ do_allocate()

void * ystdex::pmr::pool_resource::do_allocate | ( | size_t | bytes,
|  | size_t | alignment
| ) |  |

overrideprotected

在文件 memory_resource.cpp 第 679 行定义.

引用了 alignment, ystdex::pmr::oversized_map::allocate(), find_pool(), ystdex::pmr::cpp2017::pool_options::largest_required_pool_block, ystdex::pmr::cpp2017::pool_options::max_blocks_per_chunk, ystdex::cpp2014::min(), oversized, pool_exists(), pools, saved_options , 以及 upstream().

被这些函数引用 ystdex::pmr::cpp2017::synchronized_pool_resource::do_allocate().

函数调用图:
这是这个函数的调用关系图:

## ◆ do_deallocate()

void ystdex::pmr::pool_resource::do_deallocate | ( | void * | p,
|  | size_t | bytes,
|  | size_t | alignment
| ) |  |

overrideprotected

在文件 memory_resource.cpp 第 695 行定义.

引用了 alignment, platform::p , 以及 yverify.

被这些函数引用 ystdex::pmr::cpp2017::synchronized_pool_resource::do_deallocate().

这是这个函数的调用关系图:

## ◆ do_is_equal()

bool ystdex::pmr::pool_resource::do_is_equal | ( | const memory_resource & |  | ) | const

overrideprotected

## ◆ find_pool()

std::pair<pools_t::iterator, size_t> ystdex::pmr::pool_resource::find_pool | ( | size_t | ,
|  | size_t |
| ) |  |

private

被这些函数引用 do_allocate().

这是这个函数的调用关系图:

## ◆ options()

pool_options ystdex::pmr::pool_resource::options | ( |  | ) | const

inline

在文件 memory_resource.h 第 748 行定义.

## ◆ pool_exists()

bool ystdex::pmr::pool_resource::pool_exists | ( | const std::pair< pools_t::iterator, size_t > & |  | ) |

private

被这些函数引用 do_allocate().

这是这个函数的调用关系图:

## ◆ release()

void ystdex::pmr::pool_resource::release | ( |  | ) |

在文件 memory_resource.cpp 第 672 行定义.

引用了 oversized, pools , 以及 ystdex::pmr::oversized_map::release().

被这些函数引用 ystdex::pmr::cpp2017::synchronized_pool_resource::release().

函数调用图:
这是这个函数的调用关系图:

## ◆ upstream()

memory_resource& ystdex::pmr::pool_resource::upstream | ( |  | ) |

inlineprivate

在文件 memory_resource.h 第 771 行定义.

引用了 yassume.

被这些函数引用 do_allocate().

这是这个函数的调用关系图:

## ◆ upstream_resource()

memory_resource* ystdex::pmr::pool_resource::upstream_resource | ( |  | ) | const

inline

在文件 memory_resource.h 第 742 行定义.

## 类成员变量说明

## ◆ oversized

oversized_map ystdex::pmr::pool_resource::oversized

private

自从
  build 863

在文件 memory_resource.h 第 711 行定义.

被这些函数引用 do_allocate() , 以及 release().

## ◆ pools

pools_t ystdex::pmr::pool_resource::pools

private

在文件 memory_resource.h 第 712 行定义.

被这些函数引用 do_allocate() , 以及 release().

## ◆ saved_options

pool_options ystdex::pmr::pool_resource::saved_options

private

在文件 memory_resource.h 第 709 行定义.

被这些函数引用 do_allocate().

该类的文档由以下文件生成:

- memory_resource.h
- memory_resource.cpp