Container System 0.1.0
High-performance C++20 type-safe container framework with SIMD-accelerated serialization
Loading...
Searching...
No Matches
kcenon::container::detail::circular_ref_guard Struct Reference
Collaboration diagram for kcenon::container::detail::circular_ref_guard:
Collaboration graph

Public Member Functions

 circular_ref_guard (const thread_safe_container *container)
 
 ~circular_ref_guard ()
 
bool is_circular () const
 

Public Attributes

const void * ptr
 
bool inserted
 

Detailed Description

Definition at line 22 of file value.cpp.

Constructor & Destructor Documentation

◆ circular_ref_guard()

kcenon::container::detail::circular_ref_guard::circular_ref_guard ( const thread_safe_container * container)
inlineexplicit

Definition at line 26 of file value.cpp.

27 : ptr(container), inserted(false) {
28 if (ptr) {
29 auto result = serializing_containers.insert(ptr);
30 inserted = result.second;
31 }
32 }
thread_local std::set< const void * > serializing_containers
Definition value.cpp:20

References inserted, ptr, and kcenon::container::detail::serializing_containers.

◆ ~circular_ref_guard()

kcenon::container::detail::circular_ref_guard::~circular_ref_guard ( )
inline

Definition at line 34 of file value.cpp.

34 {
35 if (inserted && ptr) {
37 }
38 }

References inserted, ptr, and kcenon::container::detail::serializing_containers.

Member Function Documentation

◆ is_circular()

bool kcenon::container::detail::circular_ref_guard::is_circular ( ) const
inline

Definition at line 40 of file value.cpp.

40{ return ptr && !inserted; }

References inserted, and ptr.

Referenced by kcenon::container::value::serialize_data().

Here is the caller graph for this function:

Member Data Documentation

◆ inserted

bool kcenon::container::detail::circular_ref_guard::inserted

Definition at line 24 of file value.cpp.

Referenced by circular_ref_guard(), is_circular(), and ~circular_ref_guard().

◆ ptr

const void* kcenon::container::detail::circular_ref_guard::ptr

Definition at line 23 of file value.cpp.

Referenced by circular_ref_guard(), is_circular(), and ~circular_ref_guard().


The documentation for this struct was generated from the following file: