summaryrefslogtreecommitdiff
path: root/ace/Atomic_Op.cpp
diff options
context:
space:
mode:
authorbala <bala@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2001-12-25 05:56:51 +0000
committerbala <bala@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2001-12-25 05:56:51 +0000
commit86e1d61a4262a8673bb7df920a265883bfb9539d (patch)
treef2aa3cca14e50dc33493d5b655be9a21c613d373 /ace/Atomic_Op.cpp
parent983ef1600885d022c2996422464f00c83bc8b531 (diff)
downloadATCD-86e1d61a4262a8673bb7df920a265883bfb9539d.tar.gz
ChangeLogTag: Mon Dec 24 23:52:43 2001 Balachandran Natarajan <bala@cs.wustl.edu>
Diffstat (limited to 'ace/Atomic_Op.cpp')
-rw-r--r--ace/Atomic_Op.cpp83
1 files changed, 83 insertions, 0 deletions
diff --git a/ace/Atomic_Op.cpp b/ace/Atomic_Op.cpp
new file mode 100644
index 00000000000..df82902efcb
--- /dev/null
+++ b/ace/Atomic_Op.cpp
@@ -0,0 +1,83 @@
+#ifndef ACE_ATOMIC_OP_C
+#define ACE_ATOMIC_OP_C
+
+#include "ace/Atomic_Op.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#if !defined (__ACE_INLINE__)
+// On non-Win32 platforms, this code will be treated as normal code.
+#if !defined (ACE_WIN32)
+#include "ace/Atomic_Op.i"
+#endif /* !ACE_WIN32 */
+#endif /* __ACE_INLINE__ */
+
+
+ACE_ALLOC_HOOK_DEFINE(ACE_Atomic_Op_Ex)
+ACE_ALLOC_HOOK_DEFINE(ACE_Atomic_Op)
+
+ACE_RCSID(ace, Atomic_Op, "$Id$")
+
+// *************************************************
+template <class ACE_LOCK, class TYPE> ACE_LOCK &
+ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::mutex (void)
+{
+ // ACE_TRACE ("ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::mutex");
+ return this->mutex_;
+}
+
+template <class ACE_LOCK, class TYPE> void
+ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::dump (void) const
+{
+ // ACE_TRACE ("ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::dump");
+ ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
+ this->mutex_.dump ();
+ ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
+}
+
+template <class ACE_LOCK, class TYPE>
+ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::ACE_Atomic_Op_Ex
+ (ACE_LOCK &mtx)
+ : mutex_ (mtx),
+ value_ (0)
+{
+ // ACE_TRACE ("ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::ACE_Atomic_Op_Ex");
+}
+
+template <class ACE_LOCK, class TYPE>
+ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::ACE_Atomic_Op_Ex
+ (ACE_LOCK &mtx, const TYPE &c)
+ : mutex_ (mtx),
+ value_ (c)
+{
+// ACE_TRACE ("ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::ACE_Atomic_Op_Ex");
+}
+
+// ****************************************************************
+
+template <class ACE_LOCK, class TYPE>
+ACE_Atomic_Op<ACE_LOCK, TYPE>::ACE_Atomic_Op (void)
+ : ACE_Atomic_Op_Ex < ACE_LOCK,TYPE > (this->own_mutex_)
+{
+ // ACE_TRACE ("ACE_Atomic_Op<ACE_LOCK, TYPE>::ACE_Atomic_Op");
+}
+
+template <class ACE_LOCK, class TYPE>
+ACE_Atomic_Op<ACE_LOCK, TYPE>::ACE_Atomic_Op (const TYPE &c)
+ : ACE_Atomic_Op_Ex < ACE_LOCK,TYPE > (this->own_mutex_, c)
+{
+ // ACE_TRACE ("ACE_Atomic_Op<ACE_LOCK, TYPE>::ACE_Atomic_Op");
+}
+
+template <class ACE_LOCK, class TYPE> ACE_INLINE
+ACE_Atomic_Op<ACE_LOCK, TYPE>::ACE_Atomic_Op
+ (const ACE_Atomic_Op<ACE_LOCK, TYPE> &rhs)
+ : ACE_Atomic_Op_Ex < ACE_LOCK,TYPE >
+ ( this->own_mutex_, rhs.value() )
+{
+// ACE_TRACE ("ACE_Atomic_Op<ACE_LOCK, TYPE>::ACE_Atomic_Op");
+}
+
+#endif /*ACE_ATOMIC_OP */