00001 #ifndef ACE_ATOMIC_OP_T_C
00002 #define ACE_ATOMIC_OP_T_C
00003
00004 #include "ace/Atomic_Op_T.h"
00005 #include "ace/Log_Msg.h"
00006
00007 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00008 # pragma once
00009 #endif
00010
00011 #if !defined (__ACE_INLINE__)
00012 #include "ace/Atomic_Op_T.i"
00013 #endif
00014
00015
00016 ACE_ALLOC_HOOK_DEFINE(ACE_Atomic_Op_Ex)
00017 ACE_ALLOC_HOOK_DEFINE(ACE_Atomic_Op)
00018
00019 ACE_RCSID(ace, Atomic_Op_T, "$Id: Atomic_Op_T.cpp,v 1.1.1.1 2003/02/21 18:36:32 chad Exp $")
00020
00021
00022 template <class ACE_LOCK, class TYPE> ACE_LOCK &
00023 ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::mutex (void)
00024 {
00025
00026 return this->mutex_;
00027 }
00028
00029 template <class ACE_LOCK, class TYPE> void
00030 ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::dump (void) const
00031 {
00032
00033 ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
00034 this->mutex_.dump ();
00035 ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
00036 }
00037
00038 template <class ACE_LOCK, class TYPE>
00039 ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::ACE_Atomic_Op_Ex
00040 (ACE_LOCK &mtx)
00041 : mutex_ (mtx),
00042 value_ (0)
00043 {
00044
00045 }
00046
00047 template <class ACE_LOCK, class TYPE>
00048 ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::ACE_Atomic_Op_Ex
00049 (ACE_LOCK &mtx, const TYPE &c)
00050 : mutex_ (mtx),
00051 value_ (c)
00052 {
00053
00054 }
00055
00056
00057
00058 template <class ACE_LOCK, class TYPE>
00059 ACE_Atomic_Op<ACE_LOCK, TYPE>::ACE_Atomic_Op (void)
00060 : impl_ (this->own_mutex_)
00061 {
00062
00063 }
00064
00065 template <class ACE_LOCK, class TYPE>
00066 ACE_Atomic_Op<ACE_LOCK, TYPE>::ACE_Atomic_Op (const TYPE &c)
00067 : impl_ (this->own_mutex_, c)
00068 {
00069
00070 }
00071
00072 template <class ACE_LOCK, class TYPE> ACE_INLINE
00073 ACE_Atomic_Op<ACE_LOCK, TYPE>::ACE_Atomic_Op
00074 (const ACE_Atomic_Op<ACE_LOCK, TYPE> &rhs)
00075 : impl_ (this->own_mutex_, rhs.value ())
00076 {
00077
00078 }
00079
00080 #endif