Main MRPT website > C++ reference
MRPT logo
Public Member Functions | Private Attributes

mrpt::synch::CThreadSafeVariable< T > Class Template Reference


Detailed Description

template<typename T>
class mrpt::synch::CThreadSafeVariable< T >

A template for created thread-safe variables with an internal critical section controlled each read or write.

Example:

    CThreadSafeVariable<double>   var1;
           ...
    var.set(2.3);    // Sets the value
    double x = var.get();  // Reads the variable
    ...
    double foo = var;  // Also reads the variable
    var = 2.3;       // ERROR: Not allowed, use ".set()" instead.
See also:
CCriticalSection

Definition at line 53 of file CThreadSafeVariable.h.

#include <mrpt/synch/CThreadSafeVariable.h>

List of all members.

Public Member Functions

 CThreadSafeVariable ()
 CThreadSafeVariable (const T &init_val)
virtual ~CThreadSafeVariable ()
get () const
 Return a copy of the hold variable.
void get (T &out_val) const
 Return a copy of the hold variable.
 operator T (void) const
 Return a copy of the hold variable.
void set (const T &new_val)
 Return a copy of the hold variable.
void swap (T &in_out_var)
 Swap the current value of the hold variable and the passed one, as one atomic operation.

Private Attributes

CCriticalSection m_cs
m_val

Constructor & Destructor Documentation

template<typename T >
mrpt::synch::CThreadSafeVariable< T >::CThreadSafeVariable (  ) [inline]

Definition at line 59 of file CThreadSafeVariable.h.

template<typename T >
mrpt::synch::CThreadSafeVariable< T >::CThreadSafeVariable ( const T &  init_val ) [inline]

Definition at line 60 of file CThreadSafeVariable.h.

template<typename T >
virtual mrpt::synch::CThreadSafeVariable< T >::~CThreadSafeVariable (  ) [inline, virtual]

Definition at line 62 of file CThreadSafeVariable.h.


Member Function Documentation

template<typename T >
T mrpt::synch::CThreadSafeVariable< T >::get (  ) const [inline]

Return a copy of the hold variable.

Definition at line 65 of file CThreadSafeVariable.h.

References mrpt::synch::CThreadSafeVariable< T >::m_cs, and mrpt::synch::CThreadSafeVariable< T >::m_val.

template<typename T >
void mrpt::synch::CThreadSafeVariable< T >::get ( T &  out_val ) const [inline]

Return a copy of the hold variable.

Definition at line 76 of file CThreadSafeVariable.h.

References mrpt::synch::CThreadSafeVariable< T >::m_cs, and mrpt::synch::CThreadSafeVariable< T >::m_val.

template<typename T >
mrpt::synch::CThreadSafeVariable< T >::operator T ( void   ) const [inline]

Return a copy of the hold variable.

Definition at line 83 of file CThreadSafeVariable.h.

References mrpt::synch::CThreadSafeVariable< T >::m_cs, and mrpt::synch::CThreadSafeVariable< T >::m_val.

template<typename T >
void mrpt::synch::CThreadSafeVariable< T >::set ( const T &  new_val ) [inline]

Return a copy of the hold variable.

Definition at line 90 of file CThreadSafeVariable.h.

References mrpt::synch::CThreadSafeVariable< T >::m_cs, and mrpt::synch::CThreadSafeVariable< T >::m_val.

template<typename T >
void mrpt::synch::CThreadSafeVariable< T >::swap ( T &  in_out_var ) [inline]

Swap the current value of the hold variable and the passed one, as one atomic operation.

Definition at line 97 of file CThreadSafeVariable.h.

References mrpt::synch::CThreadSafeVariable< T >::m_cs, and mrpt::synch::CThreadSafeVariable< T >::m_val.


Member Data Documentation

template<typename T >
CCriticalSection mrpt::synch::CThreadSafeVariable< T >::m_cs [private]
template<typename T >
T mrpt::synch::CThreadSafeVariable< T >::m_val [private]



Page generated by Doxygen 1.7.2 for MRPT 0.9.4 SVN: at Mon Jan 10 22:46:17 UTC 2011