libzmq  master
ZeroMQ C++ Core Engine (LIBZMQ)
zmq::atomic_ptr_t< T > Class Template Reference

#include <atomic_ptr.hpp>

Inheritance diagram for zmq::atomic_ptr_t< T >:
Collaboration diagram for zmq::atomic_ptr_t< T >:

Public Member Functions

 atomic_ptr_t ()
 
 ~atomic_ptr_t ()
 
T * cas (T *cmp_, T *val_)
 
void set (T *ptr_)
 
T * xchg (T *val_)
 

Private Member Functions

 atomic_ptr_t (const atomic_ptr_t &)
 
const atomic_ptr_toperator= (const atomic_ptr_t &)
 

Private Attributes

volatile T * ptr
 
mutex_t sync
 

Detailed Description

template<typename T>
class zmq::atomic_ptr_t< T >

Definition at line 72 of file atomic_ptr.hpp.

Constructor & Destructor Documentation

template<typename T>
zmq::atomic_ptr_t< T >::atomic_ptr_t ( )
inline

Definition at line 77 of file atomic_ptr.hpp.

template<typename T>
zmq::atomic_ptr_t< T >::~atomic_ptr_t ( )
inline

Definition at line 83 of file atomic_ptr.hpp.

template<typename T>
zmq::atomic_ptr_t< T >::atomic_ptr_t ( const atomic_ptr_t< T > &  )
private

Member Function Documentation

template<typename T>
T* zmq::atomic_ptr_t< T >::cas ( T *  cmp_,
T *  val_ 
)
inline

Definition at line 145 of file atomic_ptr.hpp.

template<typename T>
const atomic_ptr_t& zmq::atomic_ptr_t< T >::operator= ( const atomic_ptr_t< T > &  )
private
template<typename T>
void zmq::atomic_ptr_t< T >::set ( T *  ptr_)
inline

Definition at line 90 of file atomic_ptr.hpp.

template<typename T>
T* zmq::atomic_ptr_t< T >::xchg ( T *  val_)
inline

Definition at line 97 of file atomic_ptr.hpp.

Member Data Documentation

template<typename T>
mutex_t zmq::atomic_ptr_t< T >::sync
private