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:30:30 UTC 2011 |