YSTest: ystdex::pmr::resource_pool::chunk_t类 参考

YSTest PreAlpha_b900_20201012 The YSLib Test Project

Public 成员函数 | Private 属性 | 所有成员列表
ystdex::pmr::resource_pool::chunk_t类 参考final
ystdex::pmr::resource_pool::chunk_t 的协作图:
[图例]

## Public 成员函数

| chunk_t (resource_pool &pl, void *b, size_t c) ynothrow
| chunk_t (chunk_t &&cnk)
| ~chunk_t ()
chunk_t & | operator= (chunk_t &&) ynothrow
YB_ALLOCATOR YB_ATTR_returns_nonnull void * | allocate_block_free ()
YB_ALLOCATOR void * | allocate_block_seq ()
void | add_free (void *p) ynothrow
YB_ATTR_nodiscard YB_PURE bool | has_free_block () const ynothrow
YB_ATTR_nodiscard YB_PURE bool | is_empty () const ynothrow
YB_ATTR_nodiscard YB_PURE bool | is_full () const ynothrow

## Private 属性

lref< memory_resource > | mem_rsrc
size_t | block_size
intrusive_stack< slink > | free_blocks {}
size_t | free_count
size_t | capacity
byte * | base
size_t | next_available = 0

## 详细描述

自从
  build 863

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

## 构造及析构函数说明

## ◆ chunk_t() [1/2]

ystdex::pmr::resource_pool::chunk_t::chunk_t | ( | resource_pool & | pl,
|  | void * | b,
|  | size_t | c
| ) |  |

inline

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

## ◆ chunk_t() [2/2]

ystdex::pmr::resource_pool::chunk_t::chunk_t | ( | chunk_t && | cnk | ) |

inline

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

## ◆ ~chunk_t()

ystdex::pmr::resource_pool::chunk_t::~chunk_t | ( |  | ) |

inline

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

引用了 ystdex::pmr::resource_pool::access_meta(), base, block_size, capacity, ystdex::destruct_in(), mem_rsrc , 以及 next_available.

函数调用图:

## 成员函数说明

## ◆ add_free()

void ystdex::pmr::resource_pool::chunk_t::add_free | ( | void * | p | ) |

inline

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

引用了 free_blocks, free_count, ystdex::make_observer() , 以及 platform::p.

函数调用图:

## ◆ allocate_block_free()

YB_ALLOCATOR YB_ATTR_returns_nonnull void* ystdex::pmr::resource_pool::chunk_t::allocate_block_free | ( |  | ) |

inline

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

引用了 base, free_blocks, free_count, yassume , 以及 yverify.

## ◆ allocate_block_seq()

YB_ALLOCATOR void* ystdex::pmr::resource_pool::chunk_t::allocate_block_seq | ( |  | ) |

inline

前置条件
  断言：`base` 。

注解
  参数表示分配的区块大小。

自从
  build 864

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

引用了 base, block_size, capacity, free_count, next_available, yunseq , 以及 yverify.

## ◆ has_free_block()

YB_ATTR_nodiscard YB_PURE bool ystdex::pmr::resource_pool::chunk_t::has_free_block | ( |  | ) | const

inline

自从
  build 864

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

引用了 free_blocks.

## ◆ is_empty()

YB_ATTR_nodiscard YB_PURE bool ystdex::pmr::resource_pool::chunk_t::is_empty | ( |  | ) | const

inline

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

引用了 capacity , 以及 free_count.

## ◆ is_full()

YB_ATTR_nodiscard YB_PURE bool ystdex::pmr::resource_pool::chunk_t::is_full | ( |  | ) | const

inline

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

引用了 free_count.

## ◆ operator=()

resource_pool::chunk_t & ystdex::pmr::resource_pool::chunk_t::operator= | ( | chunk_t && | cnk | ) |

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

引用了 ystdex::cpp2017::swap() , 以及 yunseq.

函数调用图:

## 类成员变量说明

## ◆ base

byte* ystdex::pmr::resource_pool::chunk_t::base

private

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

被这些函数引用 allocate_block_free(), allocate_block_seq() , 以及 ~chunk_t().

## ◆ block_size

size_t ystdex::pmr::resource_pool::chunk_t::block_size

private

自从
  build 843

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

被这些函数引用 allocate_block_seq() , 以及 ~chunk_t().

## ◆ capacity

size_t ystdex::pmr::resource_pool::chunk_t::capacity

private

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

被这些函数引用 allocate_block_seq(), is_empty() , 以及 ~chunk_t().

## ◆ free_blocks

intrusive_stack<slink> ystdex::pmr::resource_pool::chunk_t::free_blocks {}

private

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

被这些函数引用 add_free(), allocate_block_free() , 以及 has_free_block().

## ◆ free_count

size_t ystdex::pmr::resource_pool::chunk_t::free_count

private

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

被这些函数引用 add_free(), allocate_block_free(), allocate_block_seq(), is_empty() , 以及 is_full().

## ◆ mem_rsrc

lref<memory_resource> ystdex::pmr::resource_pool::chunk_t::mem_rsrc

private

自从
  build 845

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

被这些函数引用 ~chunk_t().

## ◆ next_available

size_t ystdex::pmr::resource_pool::chunk_t::next_available = 0

private

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

被这些函数引用 allocate_block_seq() , 以及 ~chunk_t().

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

- memory_resource.cpp