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.
Definition at line 53 of file CThreadSafeVariable.h.
#include <mrpt/synch/CThreadSafeVariable.h>
Public Member Functions | |
CThreadSafeVariable () | |
CThreadSafeVariable (const T &init_val) | |
virtual | ~CThreadSafeVariable () |
T | 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 |
T | m_val |
mrpt::synch::CThreadSafeVariable< T >::CThreadSafeVariable | ( | ) | [inline] |
Definition at line 59 of file CThreadSafeVariable.h.
mrpt::synch::CThreadSafeVariable< T >::CThreadSafeVariable | ( | const T & | init_val ) | [inline] |
Definition at line 60 of file CThreadSafeVariable.h.
virtual mrpt::synch::CThreadSafeVariable< T >::~CThreadSafeVariable | ( | ) | [inline, virtual] |
Definition at line 62 of file CThreadSafeVariable.h.
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.
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.
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.
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.
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.
CCriticalSection mrpt::synch::CThreadSafeVariable< T >::m_cs [private] |
Definition at line 56 of file CThreadSafeVariable.h.
Referenced by mrpt::synch::CThreadSafeVariable< T >::get(), mrpt::synch::CThreadSafeVariable< T >::operator T(), mrpt::synch::CThreadSafeVariable< T >::set(), and mrpt::synch::CThreadSafeVariable< T >::swap().
T mrpt::synch::CThreadSafeVariable< T >::m_val [private] |
Definition at line 57 of file CThreadSafeVariable.h.
Referenced by mrpt::synch::CThreadSafeVariable< T >::get(), mrpt::synch::CThreadSafeVariable< T >::operator T(), mrpt::synch::CThreadSafeVariable< T >::set(), and mrpt::synch::CThreadSafeVariable< T >::swap().
Page generated by Doxygen 1.7.2 for MRPT 0.9.4 SVN: at Mon Jan 10 22:46:17 UTC 2011 |