MeshLib C++ Docs
Loading...
Searching...
No Matches
MR::UniqueThreadSafeOwner< T > Class Template Reference

#include <MRMesh/MRUniqueThreadSafeOwner.h>

Public Member Functions

 UniqueThreadSafeOwner ()
 UniqueThreadSafeOwner (const UniqueThreadSafeOwner &)
UniqueThreadSafeOwneroperator= (const UniqueThreadSafeOwner &)
 UniqueThreadSafeOwner (UniqueThreadSafeOwner &&b) noexcept
UniqueThreadSafeOwneroperator= (UniqueThreadSafeOwner &&b) noexcept
 ~UniqueThreadSafeOwner ()
void reset ()
 deletes owned object
T * get ()
 returns existing owned object and does not create new one
T & getOrCreate (const std::function< T()> &creator)
 returns existing owned object or creates new one using creator function
void update (const std::function< void(T &)> &updater)
 calls given updater for the owned object (if any)
size_t heapBytes () const
 returns the amount of memory this object occupies on heap

Detailed Description

template<typename T>
class MR::UniqueThreadSafeOwner< T >

This class is base class for unique thread safe owning of some objects, for example AABBTree classes derived from this one should have function like getOrCreate

Constructor & Destructor Documentation

◆ UniqueThreadSafeOwner() [1/3]

template<typename T>
MR::UniqueThreadSafeOwner< T >::UniqueThreadSafeOwner ( )

◆ UniqueThreadSafeOwner() [2/3]

template<typename T>
MR::UniqueThreadSafeOwner< T >::UniqueThreadSafeOwner ( const UniqueThreadSafeOwner< T > & )

◆ UniqueThreadSafeOwner() [3/3]

template<typename T>
MR::UniqueThreadSafeOwner< T >::UniqueThreadSafeOwner ( UniqueThreadSafeOwner< T > && b)
noexcept

◆ ~UniqueThreadSafeOwner()

template<typename T>
MR::UniqueThreadSafeOwner< T >::~UniqueThreadSafeOwner ( )

Member Function Documentation

◆ get()

template<typename T>
T * MR::UniqueThreadSafeOwner< T >::get ( )
inline

returns existing owned object and does not create new one

◆ getOrCreate()

template<typename T>
T & MR::UniqueThreadSafeOwner< T >::getOrCreate ( const std::function< T()> & creator)

returns existing owned object or creates new one using creator function

◆ heapBytes()

template<typename T>
size_t MR::UniqueThreadSafeOwner< T >::heapBytes ( ) const
nodiscard

returns the amount of memory this object occupies on heap

◆ operator=() [1/2]

template<typename T>
UniqueThreadSafeOwner & MR::UniqueThreadSafeOwner< T >::operator= ( const UniqueThreadSafeOwner< T > & )

◆ operator=() [2/2]

template<typename T>
UniqueThreadSafeOwner & MR::UniqueThreadSafeOwner< T >::operator= ( UniqueThreadSafeOwner< T > && b)
noexcept

◆ reset()

template<typename T>
void MR::UniqueThreadSafeOwner< T >::reset ( )

deletes owned object

◆ update()

template<typename T>
void MR::UniqueThreadSafeOwner< T >::update ( const std::function< void(T &)> & updater)

calls given updater for the owned object (if any)


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