mbo::LockedVar< _Ty, _THREAD_MODEL > Class Template Reference

locked variable More...

#include <MboLockedVar.h>

Collaboration diagram for mbo::LockedVar< _Ty, _THREAD_MODEL >:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 LockedVar ()
 locked variable
 LockedVar (const _Ty &tIn)
 operator _Ty ()
 operator const _Ty () const
_Ty & operator * ()
const _Ty & operator * () const
const _Ty & operator= (const _Ty &tIn)
_Ty __exchange (const _Ty &tIn)
mbo::CLock __getLock () const

Protected Attributes

_Ty m_val


Detailed Description

template<class _Ty, class _THREAD_MODEL = ThreadModel>
class mbo::LockedVar< _Ty, _THREAD_MODEL >

locked variable

LockedVar is used to define locked variables (mostly class members) that are guarded by a mutex. These variables can be accessed by copy only since that is needed to ensure the lock mechanism. If you need locked members and gain reference access to them you'll need to define a separate mutex or lock and have no need for this LockVar type.

Definition at line 59 of file MboLockedVar.h.


Constructor & Destructor Documentation

template<class _Ty, class _THREAD_MODEL = ThreadModel>
mbo::LockedVar< _Ty, _THREAD_MODEL >::LockedVar (  )  [inline]

locked variable

Default Constructor

Definition at line 76 of file MboLockedVar.h.

00077         : m_val()
00078     {
00079     }

template<class _Ty, class _THREAD_MODEL = ThreadModel>
mbo::LockedVar< _Ty, _THREAD_MODEL >::LockedVar ( const _Ty &  tIn  )  [inline]

Standrad Constructor

Parameters:
tIn initial value

Definition at line 84 of file MboLockedVar.h.

00085         : m_val(tIn)
00086     {
00087     }


Member Function Documentation

template<class _Ty, class _THREAD_MODEL = ThreadModel>
mbo::LockedVar< _Ty, _THREAD_MODEL >::operator _Ty (  )  [inline]

access to locked value (a copy is returned)

Returns:
not locked copy of the value
Note:
This returns a copy because returning a reference would bypass locking.

Definition at line 94 of file MboLockedVar.h.

References mbo::LockedVar< _Ty, _THREAD_MODEL >::m_val.

00095     {
00096         Lock lock(&m_mx);
00097         return m_val;
00098     }

template<class _Ty, class _THREAD_MODEL = ThreadModel>
mbo::LockedVar< _Ty, _THREAD_MODEL >::operator const _Ty (  )  const [inline]

const access to locked value (a const copy is returned)

Returns:
not locked const copy of the value
Note:
This returns a copy because returning a reference would bypass locking.

Definition at line 105 of file MboLockedVar.h.

References mbo::LockedVar< _Ty, _THREAD_MODEL >::m_val.

00106     {
00107         Lock lock(&m_mx);
00108         return m_val;
00109     }

template<class _Ty, class _THREAD_MODEL = ThreadModel>
_Ty& mbo::LockedVar< _Ty, _THREAD_MODEL >::operator * (  )  [inline]

Returns:
non const access to locked value

Definition at line 113 of file MboLockedVar.h.

References mbo::LockedVar< _Ty, _THREAD_MODEL >::m_val.

00114     {
00115         Lock lock(&m_mx);
00116         return m_val;
00117     }

template<class _Ty, class _THREAD_MODEL = ThreadModel>
const _Ty& mbo::LockedVar< _Ty, _THREAD_MODEL >::operator * (  )  const [inline]

Returns:
const access to locked value

Definition at line 121 of file MboLockedVar.h.

References mbo::LockedVar< _Ty, _THREAD_MODEL >::m_val.

00122     {
00123         Lock lock(&m_mx);
00124         return m_val;
00125     }

template<class _Ty, class _THREAD_MODEL = ThreadModel>
const _Ty& mbo::LockedVar< _Ty, _THREAD_MODEL >::operator= ( const _Ty &  tIn  )  [inline]

assignment

Parameters:
tIn new value
Note:
This returns a reference to the input. It is not feasible to return the value itself. A copy would be to slow and a reference would bypass locking.

Definition at line 133 of file MboLockedVar.h.

References mbo::LockedVar< _Ty, _THREAD_MODEL >::m_val.

00134     {
00135         Lock lock(&m_mx);
00136         m_val = tIn;
00137         return tIn; /* tIn not t */
00138     }

template<class _Ty, class _THREAD_MODEL = ThreadModel>
_Ty mbo::LockedVar< _Ty, _THREAD_MODEL >::__exchange ( const _Ty &  tIn  )  [inline]

value exchangement

Parameters:
tIn the new value
Returns:
the old value

Definition at line 145 of file MboLockedVar.h.

References mbo::LockedVar< _Ty, _THREAD_MODEL >::m_val.

00146     {
00147         Lock lock(&m_mx);
00148         T tOld(m_val);
00149         m_val = tIn;
00150         return tOld; /* the old value */
00151     }

template<class _Ty, class _THREAD_MODEL = ThreadModel>
mbo::CLock mbo::LockedVar< _Ty, _THREAD_MODEL >::__getLock (  )  const [inline]

Returns:
Lock for variable

Definition at line 155 of file MboLockedVar.h.

00156     {
00157         return mbo::CLockSingle(&m_mx);
00158     }


Member Data Documentation

template<class _Ty, class _THREAD_MODEL = ThreadModel>
_Ty mbo::LockedVar< _Ty, _THREAD_MODEL >::m_val [protected]

Definition at line 70 of file MboLockedVar.h.

Referenced by mbo::LockedVar< bool >::__exchange(), mbo::LockedVar< _Ty, _THREAD_MODEL >::__exchange(), mbo::LockedVar< bool >::operator *(), mbo::LockedVar< _Ty, _THREAD_MODEL >::operator *(), mbo::LockedVar< bool >::operator _Ty(), mbo::LockedVar< _Ty, _THREAD_MODEL >::operator _Ty(), mbo::LockedVar< bool >::operator const _Ty(), mbo::LockedVar< _Ty, _THREAD_MODEL >::operator const _Ty(), mbo::LockedVar< bool >::operator=(), and mbo::LockedVar< _Ty, _THREAD_MODEL >::operator=().


The documentation for this class was generated from the following file:
  Hosted on code.google.com  
© Marcus Börger
Generated on Fri Jan 18 21:21:11 2008 for MBO-lib by doxygen 1.5.4