PACS System 0.1.0
PACS DICOM system library
Loading...
Searching...
No Matches
kcenon::pacs::core::pool_manager Class Reference

#include <pool_manager.h>

Collaboration diagram for kcenon::pacs::core::pool_manager:
Collaboration graph

Public Member Functions

auto acquire_element (dicom_tag tag, encoding::vr_type vr) -> tracked_pool< dicom_element >::unique_ptr_type
 Acquire a dicom_element from the pool.
 
auto acquire_dataset () -> tracked_pool< dicom_dataset >::unique_ptr_type
 Acquire a dicom_dataset from the pool.
 
auto element_statistics () const noexcept -> const pool_statistics &
 Get element pool statistics.
 
auto dataset_statistics () const noexcept -> const pool_statistics &
 Get dataset pool statistics.
 
void reserve_elements (std::size_t count)
 Reserve capacity in element pool.
 
void reserve_datasets (std::size_t count)
 Reserve capacity in dataset pool.
 
void clear_all ()
 Clear all pools.
 
void reset_statistics ()
 Reset all statistics.
 
 pool_manager (const pool_manager &)=delete
 
 pool_manager (pool_manager &&)=delete
 
auto operator= (const pool_manager &) -> pool_manager &=delete
 
auto operator= (pool_manager &&) -> pool_manager &=delete
 

Static Public Member Functions

static auto get () noexcept -> pool_manager &
 Get the thread-local pool manager instance.
 

Static Public Attributes

static constexpr std::size_t DEFAULT_ELEMENT_POOL_SIZE = 1024
 Default pool sizes.
 
static constexpr std::size_t DEFAULT_DATASET_POOL_SIZE = 128
 

Private Member Functions

 pool_manager ()
 
 ~pool_manager ()=default
 

Private Attributes

tracked_pool< dicom_elementelement_pool_
 
tracked_pool< dicom_datasetdataset_pool_
 

Detailed Description

Definition at line 156 of file pool_manager.h.

Constructor & Destructor Documentation

◆ pool_manager() [1/3]

kcenon::pacs::core::pool_manager::pool_manager ( const pool_manager & )
delete

◆ pool_manager() [2/3]

kcenon::pacs::core::pool_manager::pool_manager ( pool_manager && )
delete

◆ pool_manager() [3/3]

kcenon::pacs::core::pool_manager::pool_manager ( )
private
Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/core/pool_manager.h.

Definition at line 18 of file pool_manager.cpp.

static constexpr std::size_t DEFAULT_DATASET_POOL_SIZE
tracked_pool< dicom_element > element_pool_
static constexpr std::size_t DEFAULT_ELEMENT_POOL_SIZE
Default pool sizes.
tracked_pool< dicom_dataset > dataset_pool_

◆ ~pool_manager()

kcenon::pacs::core::pool_manager::~pool_manager ( )
privatedefault

Member Function Documentation

◆ acquire_dataset()

auto kcenon::pacs::core::pool_manager::acquire_dataset ( ) -> tracked_pool<dicom_dataset>::unique_ptr_type

Acquire a dicom_dataset from the pool.

Returns
A pooled dicom_dataset
Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/core/pool_manager.h.

Definition at line 32 of file pool_manager.cpp.

33 {
34 return dataset_pool_.acquire();
35}

◆ acquire_element()

auto kcenon::pacs::core::pool_manager::acquire_element ( dicom_tag tag,
encoding::vr_type vr ) -> tracked_pool<dicom_element>::unique_ptr_type

Acquire a dicom_element from the pool.

Parameters
tagThe DICOM tag
vrThe value representation
Returns
A pooled dicom_element
Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/core/pool_manager.h.

Definition at line 27 of file pool_manager.cpp.

28 {
29 return element_pool_.acquire(tag, vr);
30}
vr_encoding vr

References vr.

◆ clear_all()

void kcenon::pacs::core::pool_manager::clear_all ( )

Clear all pools.

Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/core/pool_manager.h.

Definition at line 53 of file pool_manager.cpp.

53 {
54 element_pool_.clear();
55 dataset_pool_.clear();
56}

References dataset_pool_, and element_pool_.

◆ dataset_statistics()

auto kcenon::pacs::core::pool_manager::dataset_statistics ( ) const -> const pool_statistics&
nodiscardnoexcept

Get dataset pool statistics.

Returns
Reference to dataset pool statistics
Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/core/pool_manager.h.

Definition at line 41 of file pool_manager.cpp.

41 {
42 return dataset_pool_.statistics();
43}

References dataset_pool_.

◆ element_statistics()

auto kcenon::pacs::core::pool_manager::element_statistics ( ) const -> const pool_statistics&
nodiscardnoexcept

Get element pool statistics.

Returns
Reference to element pool statistics
Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/core/pool_manager.h.

Definition at line 37 of file pool_manager.cpp.

37 {
38 return element_pool_.statistics();
39}

References element_pool_.

◆ get()

auto kcenon::pacs::core::pool_manager::get ( ) -> pool_manager&
staticnoexcept

Get the thread-local pool manager instance.

Returns
Reference to the current thread's pool manager
Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/core/pool_manager.h.

Definition at line 22 of file pool_manager.cpp.

22 {
23 thread_local pool_manager instance;
24 return instance;
25}

Referenced by kcenon::pacs::core::make_pooled_dataset(), kcenon::pacs::core::make_pooled_element(), and kcenon::pacs::core::make_pooled_element().

Here is the caller graph for this function:

◆ operator=() [1/2]

auto kcenon::pacs::core::pool_manager::operator= ( const pool_manager & ) -> pool_manager &=delete
delete

◆ operator=() [2/2]

auto kcenon::pacs::core::pool_manager::operator= ( pool_manager && ) -> pool_manager &=delete
delete

◆ reserve_datasets()

void kcenon::pacs::core::pool_manager::reserve_datasets ( std::size_t count)

Reserve capacity in dataset pool.

Parameters
countNumber of datasets to pre-allocate
Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/core/pool_manager.h.

Definition at line 49 of file pool_manager.cpp.

49 {
50 dataset_pool_.reserve(count);
51}

References dataset_pool_.

◆ reserve_elements()

void kcenon::pacs::core::pool_manager::reserve_elements ( std::size_t count)

Reserve capacity in element pool.

Parameters
countNumber of elements to pre-allocate
Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/core/pool_manager.h.

Definition at line 45 of file pool_manager.cpp.

45 {
46 element_pool_.reserve(count);
47}

References element_pool_.

◆ reset_statistics()

void kcenon::pacs::core::pool_manager::reset_statistics ( )

Reset all statistics.

Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/core/pool_manager.h.

Definition at line 58 of file pool_manager.cpp.

58 {
59 const_cast<pool_statistics&>(element_pool_.statistics()).reset();
60 const_cast<pool_statistics&>(dataset_pool_.statistics()).reset();
61}

References dataset_pool_, element_pool_, and kcenon::pacs::core::pool_statistics::reset().

Here is the call graph for this function:

Member Data Documentation

◆ dataset_pool_

◆ DEFAULT_DATASET_POOL_SIZE

std::size_t kcenon::pacs::core::pool_manager::DEFAULT_DATASET_POOL_SIZE = 128
staticconstexpr

◆ DEFAULT_ELEMENT_POOL_SIZE

std::size_t kcenon::pacs::core::pool_manager::DEFAULT_ELEMENT_POOL_SIZE = 1024
staticconstexpr

◆ element_pool_


The documentation for this class was generated from the following files: