ARC SDK
Public Member Functions
Arc::ThreadedPointer< T > Class Template Reference

Wrapper for pointer with automatic destruction and multiple references. More...

#include <arc/Thread.h>

Public Member Functions

 ThreadedPointer (T *p)
 
 ThreadedPointer (const ThreadedPointer< T > &p)
 
ThreadedPointer< T > & operator= (T *p)
 Assign a new ThreadedPointer from a pointer to an object. More...
 
ThreadedPointer< T > & operator= (const ThreadedPointer< T > &p)
 Assign a new ThreadedPointer from another ThreadedPointer. More...
 
T & operator* (void) const
 For referring to wrapped object. More...
 
T * operator-> (void) const
 For referring to wrapped object. More...
 
 operator bool (void) const
 Returns false if pointer is NULL and true otherwise. More...
 
bool operator! (void) const
 Returns true if pointer is NULL and false otherwise. More...
 
bool operator== (const ThreadedPointer &p) const
 Returns true if pointers are equal. More...
 
bool operator!= (const ThreadedPointer &p) const
 Returns true if pointers are not equal. More...
 
bool operator< (const ThreadedPointer &p) const
 Comparison operator. More...
 
T * Ptr (void) const
 Cast to original pointer. More...
 
T * Release (void)
 Release referred object so that it can be passed to other container. More...
 
unsigned int Holders (void)
 Returns number of ThreadedPointer instances referring to underlying object. More...
 
unsigned int WaitOutRange (unsigned int minThr, unsigned int maxThr)
 Waits till number of ThreadedPointer instances <= minThr or >= maxThr. More...
 
unsigned int WaitOutRange (unsigned int minThr, unsigned int maxThr, int timeout)
 Waits till number of ThreadedPointer instances <= minThr or >= maxThr. More...
 
unsigned int WaitInRange (unsigned int minThr, unsigned int maxThr)
 Waits till number of ThreadedPointer instances >= minThr and <= maxThr. More...
 
unsigned int WaitInRange (unsigned int minThr, unsigned int maxThr, int timeout)
 Waits till number of ThreadedPointer instances >= minThr and <= maxThr. More...
 

Detailed Description

template<typename T>
class Arc::ThreadedPointer< T >

Wrapper for pointer with automatic destruction and multiple references.

See for CountedPointer for description. Differently from CountedPointer this class provides thread safe destruction of referred object. But the instance of ThreadedPointer itself is not thread safe. Hence it is advisable to use different instances in different threads.

Member Function Documentation

◆ Holders()

template<typename T>
unsigned int Arc::ThreadedPointer< T >::Holders ( void  )
inline

Returns number of ThreadedPointer instances referring to underlying object.

◆ operator bool()

template<typename T>
Arc::ThreadedPointer< T >::operator bool ( void  ) const
inline

Returns false if pointer is NULL and true otherwise.

◆ operator!()

template<typename T>
bool Arc::ThreadedPointer< T >::operator! ( void  ) const
inline

Returns true if pointer is NULL and false otherwise.

Python interface deviation
Method is unavailable in Python interface

◆ operator!=()

template<typename T>
bool Arc::ThreadedPointer< T >::operator!= ( const ThreadedPointer< T > &  p) const
inline

Returns true if pointers are not equal.

◆ operator*()

template<typename T>
T& Arc::ThreadedPointer< T >::operator* ( void  ) const
inline

For referring to wrapped object.

◆ operator->()

template<typename T>
T* Arc::ThreadedPointer< T >::operator-> ( void  ) const
inline

For referring to wrapped object.

◆ operator<()

template<typename T>
bool Arc::ThreadedPointer< T >::operator< ( const ThreadedPointer< T > &  p) const
inline

Comparison operator.

◆ operator=() [1/2]

template<typename T>
ThreadedPointer<T>& Arc::ThreadedPointer< T >::operator= ( T *  p)
inline

Assign a new ThreadedPointer from a pointer to an object.

◆ operator=() [2/2]

template<typename T>
ThreadedPointer<T>& Arc::ThreadedPointer< T >::operator= ( const ThreadedPointer< T > &  p)
inline

Assign a new ThreadedPointer from another ThreadedPointer.

◆ operator==()

template<typename T>
bool Arc::ThreadedPointer< T >::operator== ( const ThreadedPointer< T > &  p) const
inline

Returns true if pointers are equal.

◆ Ptr()

template<typename T>
T* Arc::ThreadedPointer< T >::Ptr ( void  ) const
inline

Cast to original pointer.

◆ Release()

template<typename T>
T* Arc::ThreadedPointer< T >::Release ( void  )
inline

Release referred object so that it can be passed to other container.

After Release() is called referred object is will not be destroyed automatically anymore.

◆ WaitInRange() [1/2]

template<typename T>
unsigned int Arc::ThreadedPointer< T >::WaitInRange ( unsigned int  minThr,
unsigned int  maxThr 
)
inline

Waits till number of ThreadedPointer instances >= minThr and <= maxThr.

◆ WaitInRange() [2/2]

template<typename T>
unsigned int Arc::ThreadedPointer< T >::WaitInRange ( unsigned int  minThr,
unsigned int  maxThr,
int  timeout 
)
inline

Waits till number of ThreadedPointer instances >= minThr and <= maxThr.

Waits no longer than timeout milliseconds. If timeout is negative - wait forever. Returns current number of instances.

◆ WaitOutRange() [1/2]

template<typename T>
unsigned int Arc::ThreadedPointer< T >::WaitOutRange ( unsigned int  minThr,
unsigned int  maxThr 
)
inline

Waits till number of ThreadedPointer instances <= minThr or >= maxThr.

◆ WaitOutRange() [2/2]

template<typename T>
unsigned int Arc::ThreadedPointer< T >::WaitOutRange ( unsigned int  minThr,
unsigned int  maxThr,
int  timeout 
)
inline

Waits till number of ThreadedPointer instances <= minThr or >= maxThr.

Waits no longer than timeout milliseconds. If timeout is negative - wait forever. Returns current number of instances.


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