summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2002-02-27 09:15:31 +0000
committercoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2002-02-27 09:15:31 +0000
commit657496006c6f2f3c698720c6970d2ec438fbad86 (patch)
treee64ea6810a0f8be2b7c1f7fddddba75761c5797c
parent946a8659af08e969b5fc38318028e3e286b38a36 (diff)
downloadATCD-657496006c6f2f3c698720c6970d2ec438fbad86.tar.gz
ChangeLogTag:Wed Feb 27 01:12:32 2002 Carlos O'Ryan <coryan@uci.edu>
-rw-r--r--ChangeLog8
-rw-r--r--ChangeLogs/ChangeLog-02a8
-rw-r--r--ChangeLogs/ChangeLog-03a8
-rw-r--r--ace/Swap.cpp25
-rw-r--r--ace/Swap.h46
-rw-r--r--ace/Swap.inl15
6 files changed, 110 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 781ba79dc52..b5f4332b2a5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Wed Feb 27 01:12:32 2002 Carlos O'Ryan <coryan@uci.edu>
+
+ * ace/Swap.h:
+ * ace/Swap.inl:
+ * ace/Swap.cpp:
+ Add helper template to swap variables, very useful when
+ implementing exception neutral/safe classes.
+
Wed Feb 26 00:38:50 2002 UTC Don Hinton <dhinton@ieee.org>
* ace/Select_Reactor_Base.h:
diff --git a/ChangeLogs/ChangeLog-02a b/ChangeLogs/ChangeLog-02a
index 781ba79dc52..b5f4332b2a5 100644
--- a/ChangeLogs/ChangeLog-02a
+++ b/ChangeLogs/ChangeLog-02a
@@ -1,3 +1,11 @@
+Wed Feb 27 01:12:32 2002 Carlos O'Ryan <coryan@uci.edu>
+
+ * ace/Swap.h:
+ * ace/Swap.inl:
+ * ace/Swap.cpp:
+ Add helper template to swap variables, very useful when
+ implementing exception neutral/safe classes.
+
Wed Feb 26 00:38:50 2002 UTC Don Hinton <dhinton@ieee.org>
* ace/Select_Reactor_Base.h:
diff --git a/ChangeLogs/ChangeLog-03a b/ChangeLogs/ChangeLog-03a
index 781ba79dc52..b5f4332b2a5 100644
--- a/ChangeLogs/ChangeLog-03a
+++ b/ChangeLogs/ChangeLog-03a
@@ -1,3 +1,11 @@
+Wed Feb 27 01:12:32 2002 Carlos O'Ryan <coryan@uci.edu>
+
+ * ace/Swap.h:
+ * ace/Swap.inl:
+ * ace/Swap.cpp:
+ Add helper template to swap variables, very useful when
+ implementing exception neutral/safe classes.
+
Wed Feb 26 00:38:50 2002 UTC Don Hinton <dhinton@ieee.org>
* ace/Select_Reactor_Base.h:
diff --git a/ace/Swap.cpp b/ace/Swap.cpp
new file mode 100644
index 00000000000..4f62e72ade6
--- /dev/null
+++ b/ace/Swap.cpp
@@ -0,0 +1,25 @@
+/* -*- C++ -*- */
+/**
+ * @file Swap.cpp
+ *
+ * $Id$
+ *
+ * @author Carlos O'Ryan <coryan@uci.edu>
+ */
+
+#ifndef ACE_SWAP_C
+#define ACE_SWAP_C
+
+#include "ace/Swap.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#if !defined (__ACE_INLINE__)
+#include "ace/Swap.inl"
+#endif /* __ACE_INLINE__ */
+
+ACE_RCSID(ace, Swap, "$Id$")
+
+#endif /* ACE_SWAP_C */
diff --git a/ace/Swap.h b/ace/Swap.h
new file mode 100644
index 00000000000..0915eba17b2
--- /dev/null
+++ b/ace/Swap.h
@@ -0,0 +1,46 @@
+/* -*- C++ -*- */
+/**
+ * @file Swap.h
+ *
+ * $Id$
+ *
+ * @author Carlos O'Ryan <coryan@uci.edu>
+ */
+
+#ifndef ACE_SWAP_H
+#define ACE_SWAP_H
+#include "ace/pre.h"
+
+#include "ace/config-all.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+/**
+ * @class ACE_Swap
+ *
+ * @brief Defines a function to swap two variables.
+ *
+ */
+template<class T> class ACE_Swap
+{
+public:
+ /// Swap two variables
+ static void swap (T &lhs, T &rhs);
+};
+
+#if defined (__ACE_INLINE__)
+#include "ace/Swap.inl"
+#endif /* __ACE_INLINE__ */
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "ace/Swap.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("Swap.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+#include "ace/post.h"
+#endif /* ACE_FUNCTOR_H */
diff --git a/ace/Swap.inl b/ace/Swap.inl
new file mode 100644
index 00000000000..b1139ca3ffb
--- /dev/null
+++ b/ace/Swap.inl
@@ -0,0 +1,15 @@
+/**
+ * @file Swap.inl
+ *
+ * $Id$
+ *
+ * @author Carlos O'Ryan <coryan@uci.edu>
+ */
+
+template<class T> ACE_INLINE void
+ACE_Swap<T>::swap (T &lhs, T& rhs)
+{
+ T tmp = lhs;
+ lhs = rhs;
+ rhs = tmp;
+}