summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Huston <shuston@riverace.com>2005-11-15 16:36:49 +0000
committerSteve Huston <shuston@riverace.com>2005-11-15 16:36:49 +0000
commit0cbbea328e65d0fb7add38cbcdc070f110a7688d (patch)
treef223e62c1bf4574bf2263df4b5f52c5abac6eb09
parent5323379bb000e24b9b4d98869a59bd0e8100a548 (diff)
downloadATCD-0cbbea328e65d0fb7add38cbcdc070f110a7688d.tar.gz
ChangeLogTag:Tue Nov 15 11:31:41 2005 Steve Huston <shuston@riverace.com>
-rw-r--r--ace/Atomic_Op.h4
-rw-r--r--ace/Atomic_Op.inl4
-rw-r--r--ace/Event_Handler.cpp14
-rw-r--r--ace/Malloc_Instantiations.cpp5
-rw-r--r--protocols/ace/RMCast/Makefile.am3
-rw-r--r--protocols/ace/RMCast/Template_Instantiations.cpp27
6 files changed, 51 insertions, 6 deletions
diff --git a/ace/Atomic_Op.h b/ace/Atomic_Op.h
index 7454946a64f..3cd7dad0d86 100644
--- a/ace/Atomic_Op.h
+++ b/ace/Atomic_Op.h
@@ -64,7 +64,7 @@ public:
ACE_Atomic_Op (void);
/// Initialize <value_> to c.
- ACE_Atomic_Op (long c);
+ ACE_Atomic_Op (const long &c);
/// Manage copying...
ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, long> &c);
@@ -163,7 +163,7 @@ public:
ACE_Atomic_Op (void);
/// Initialize <value_> to c.
- ACE_Atomic_Op (unsigned long c);
+ ACE_Atomic_Op (const unsigned long &c);
/// Manage copying...
ACE_Atomic_Op (const ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long> &c);
diff --git a/ace/Atomic_Op.inl b/ace/Atomic_Op.inl
index 81bf9d8a9f3..007f653bbfa 100644
--- a/ace/Atomic_Op.inl
+++ b/ace/Atomic_Op.inl
@@ -14,7 +14,7 @@ ACE_Atomic_Op<ACE_Thread_Mutex, long>::ACE_Atomic_Op (void)
}
ACE_INLINE
-ACE_Atomic_Op<ACE_Thread_Mutex, long>::ACE_Atomic_Op (long c)
+ACE_Atomic_Op<ACE_Thread_Mutex, long>::ACE_Atomic_Op (const long &c)
: value_ (c)
{
}
@@ -159,7 +159,7 @@ ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::ACE_Atomic_Op (void)
}
ACE_INLINE
-ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::ACE_Atomic_Op (unsigned long c)
+ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::ACE_Atomic_Op (const unsigned long &c)
: value_ (c)
{
}
diff --git a/ace/Event_Handler.cpp b/ace/Event_Handler.cpp
index 10a2a472ed7..de0a347bdc1 100644
--- a/ace/Event_Handler.cpp
+++ b/ace/Event_Handler.cpp
@@ -6,6 +6,8 @@
#include "ace/OS_Errno.h"
#include "ace/Reactor.h"
#include "ace/Thread_Manager.h"
+/* Need to see if ACE_HAS_BUILTIN_ATOMIC_OP defined */
+#include "ace/Atomic_Op.h"
#if !defined (__ACE_INLINE__)
#include "ace/Event_Handler.inl"
@@ -407,4 +409,16 @@ ACE_Notification_Buffer::ACE_Notification_Buffer (ACE_Event_Handler *eh,
ACE_TRACE ("ACE_Notification_Buffer::ACE_Notification_Buffer");
}
+// ACE_HAS_BUILTIN_ATOMIC_OP triggers specialization of these, so the
+// instantiations aren't needed here.
+#if !defined (ACE_HAS_BUILTIN_ATOMIC_OP)
+# if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
+template class ACE_Atomic_Op<ACE_SYNCH_MUTEX, long>;
+template class ACE_Atomic_Op_Ex<ACE_SYNCH_MUTEX, long>;
+# elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
+# pragma instantiate ACE_Atomic_Op<ACE_SYNCH_MUTEX, long>
+# pragma instantiate ACE_Atomic_Op_Ex<ACE_SYNCH_MUTEX, long>
+# endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
+#endif /* ACE_HAS_BUILTIN_ATOMIC_OP */
+
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ace/Malloc_Instantiations.cpp b/ace/Malloc_Instantiations.cpp
index 87ad264e60f..5eea274f6bb 100644
--- a/ace/Malloc_Instantiations.cpp
+++ b/ace/Malloc_Instantiations.cpp
@@ -1,7 +1,10 @@
// $Id$
-#include "ace/Malloc.h"
+#include "ace/Local_Memory_Pool.h"
+#include "ace/Malloc_T.h"
#include "ace/Null_Mutex.h"
+#include "ace/Synch_Traits.h"
+#include "ace/Thread_Mutex.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/protocols/ace/RMCast/Makefile.am b/protocols/ace/RMCast/Makefile.am
index cfc1c88914b..1a121915c62 100644
--- a/protocols/ace/RMCast/Makefile.am
+++ b/protocols/ace/RMCast/Makefile.am
@@ -35,7 +35,8 @@ libACE_RMCast_la_SOURCES = \
Retransmit.cpp \
Simulator.cpp \
Socket.cpp \
- Stack.cpp
+ Stack.cpp \
+ Template_Instantiations.cpp
libACE_RMCast_la_LDFLAGS = \
-version-number @ACE_MAJOR@:@ACE_MINOR@:@ACE_BETA@
diff --git a/protocols/ace/RMCast/Template_Instantiations.cpp b/protocols/ace/RMCast/Template_Instantiations.cpp
new file mode 100644
index 00000000000..0e536969dec
--- /dev/null
+++ b/protocols/ace/RMCast/Template_Instantiations.cpp
@@ -0,0 +1,27 @@
+// $Id$
+
+// Note: this file is here only until support for explicit template
+// instantiations is removed from ACE, after ACE 5.5 is released.
+
+#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) || \
+ defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
+
+# include "ace/Hash_Map_Manager.h"
+# include "Acknowledge.h"
+
+#endif
+
+#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
+
+template class ACE_Hash_Map_Manager<unsigned long, ACE_RMCast::Acknowledge::Descr, ACE_Null_Mutex>;
+template class ACE_Hash_Map_Manager_Ex<unsigned long, ACE_RMCast::Acknowledge::Descr, ACE_Hash<unsigned long>, ACE_Equal_To<unsigned long>, ACE_Null_Mutex>;
+
+#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
+
+# pragma instantiate class ACE_Hash_Map_Manager<unsigned long, ACE_RMCast::Acknowledge::Descr, ACE_Null_Mutex>
+# pragma instantiate ACE_Hash_Map_Manager_Ex<unsigned long, ACE_RMCast::Acknowledge::Descr, ACE_Hash<unsigned long>, ACE_Equal_To<unsigned long>, ACE_Null_Mutex>
+
+#elif defined (__HP_aCC)
+// Make aC++ stop complaining about an empty translation unit
+static int shut_up_aCC = 0;
+#endif