OpenCV  3.4.19
Open Source Computer Vision
Public Member Functions | Protected Member Functions | List of all members
cv::TLSDataAccumulator< T > Class Template Reference

TLS data accumulator with gathering methods. More...

#include <opencv2/core/utils/tls.hpp>

Inheritance diagram for cv::TLSDataAccumulator< T >:
cv::TLSData< T > cv::TLSDataContainer

Public Member Functions

 TLSDataAccumulator ()
 
 ~TLSDataAccumulator ()
 
void cleanup ()
 Release associated thread data. More...
 
void cleanupDetachedData ()
 Release associated thread data returned by detachData() call. More...
 
std::vector< T * > & detachData ()
 Get and detach data from all threads. More...
 
void gather (std::vector< T *> &data) const
 Get data from all threads. More...
 
void release ()
 Release associated thread data and free TLS key. More...
 
- Public Member Functions inherited from cv::TLSData< T >
 TLSData ()
 
 ~TLSData ()
 
void cleanup ()
 Release associated thread data. More...
 
T * get () const
 Get data associated with key. More...
 
T & getRef () const
 Get data associated with key. More...
 

Protected Member Functions

void _cleanupDetachedData ()
 
void _cleanupTerminatedData ()
 
virtual void * createDataInstance () const CV_OVERRIDE
 Wrapper to allocate data by template. More...
 
virtual void deleteDataInstance (void *pData) const CV_OVERRIDE
 Wrapper to release data by template. More...
 
- Protected Member Functions inherited from cv::TLSDataContainer
 TLSDataContainer ()
 
virtual ~TLSDataContainer ()
 
void detachData (std::vector< void *> &data)
 get TLS data and detach all data from threads (similar to cleanup() call) More...
 
void gatherData (std::vector< void *> &data) const
 
void * getData () const
 
void release ()
 
void cleanup ()
 Release created TLS data container objects. It is similar to release() call, but it keeps TLS container valid. More...
 

Additional Inherited Members

- Protected Attributes inherited from cv::TLSDataContainer
int key_
 

Detailed Description

template<typename T>
class cv::TLSDataAccumulator< T >

TLS data accumulator with gathering methods.

Constructor & Destructor Documentation

◆ TLSDataAccumulator()

template<typename T>
cv::TLSDataAccumulator< T >::TLSDataAccumulator ( )
inline

◆ ~TLSDataAccumulator()

template<typename T>
cv::TLSDataAccumulator< T >::~TLSDataAccumulator ( )
inline

Member Function Documentation

◆ _cleanupDetachedData()

template<typename T>
void cv::TLSDataAccumulator< T >::_cleanupDetachedData ( )
inlineprotected

◆ _cleanupTerminatedData()

template<typename T>
void cv::TLSDataAccumulator< T >::_cleanupTerminatedData ( )
inlineprotected

◆ cleanup()

template<typename T>
void cv::TLSDataAccumulator< T >::cleanup ( )
inline

Release associated thread data.

◆ cleanupDetachedData()

template<typename T>
void cv::TLSDataAccumulator< T >::cleanupDetachedData ( )
inline

Release associated thread data returned by detachData() call.

◆ createDataInstance()

template<typename T>
virtual void* cv::TLSDataAccumulator< T >::createDataInstance ( ) const
inlineprotectedvirtual

Wrapper to allocate data by template.

Reimplemented from cv::TLSData< T >.

◆ deleteDataInstance()

template<typename T>
virtual void cv::TLSDataAccumulator< T >::deleteDataInstance ( void *  pData) const
inlineprotectedvirtual

Wrapper to release data by template.

Reimplemented from cv::TLSData< T >.

◆ detachData()

template<typename T>
std::vector<T*>& cv::TLSDataAccumulator< T >::detachData ( )
inline

Get and detach data from all threads.

Call cleanupDetachedData() when returned vector is not needed anymore.

Returns
Vector with associated data. Content is preserved (including lifetime of attached data pointers) until next detachData()/cleanupDetachedData()/cleanup()/release() calls

◆ gather()

template<typename T>
void cv::TLSDataAccumulator< T >::gather ( std::vector< T *> &  data) const
inline

Get data from all threads.

Deprecated:
replaced by detachData()

Lifetime of vector data is valid until next detachData()/cleanup()/release() calls

Parameters
[out]dataresult buffer (should be empty)

◆ release()

template<typename T>
void cv::TLSDataAccumulator< T >::release ( )
inline

Release associated thread data and free TLS key.


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