summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ace/Activation_Queue.cpp4
-rw-r--r--ace/Activation_Queue.h4
-rw-r--r--ace/Activation_Queue.i4
-rw-r--r--ace/Dynamic.h1
-rw-r--r--ace/Dynamic.i6
-rw-r--r--ace/Event_Handler.h3
-rw-r--r--ace/Event_Handler.i5
-rw-r--r--ace/Get_Opt.h3
-rw-r--r--ace/Get_Opt.i4
-rw-r--r--ace/Handle_Set.h8
-rw-r--r--ace/Handle_Set.i12
-rw-r--r--ace/High_Res_Timer.h3
-rw-r--r--ace/High_Res_Timer.i5
-rw-r--r--ace/INET_Addr.h3
-rw-r--r--ace/INET_Addr.i6
-rw-r--r--ace/IO_SAP.h3
-rw-r--r--ace/IO_SAP.i6
-rw-r--r--ace/IPC_SAP.h3
-rw-r--r--ace/IPC_SAP.i6
-rw-r--r--ace/Local_Tokens.h26
-rw-r--r--ace/Local_Tokens.i45
-rw-r--r--ace/Log_Record.h3
-rw-r--r--ace/Log_Record.i5
-rw-r--r--ace/Malloc.h1
-rw-r--r--ace/Malloc.i5
-rw-r--r--ace/OS.h8
-rw-r--r--ace/OS.i23
-rw-r--r--ace/Obstack.cpp4
-rw-r--r--ace/Obstack.h7
-rw-r--r--ace/Obstack.i5
-rw-r--r--ace/Parse_Node.h5
-rw-r--r--ace/Parse_Node.i13
-rw-r--r--ace/Pipe.h3
-rw-r--r--ace/Pipe.i7
-rw-r--r--ace/Process_Manager.h2
-rw-r--r--ace/Process_Manager.i5
-rw-r--r--ace/SOCK.h3
-rw-r--r--ace/SOCK.i6
-rw-r--r--ace/SOCK_Acceptor.cpp4
-rw-r--r--ace/SOCK_Acceptor.h7
-rw-r--r--ace/SOCK_Acceptor.i5
-rw-r--r--ace/SOCK_CODgram.h4
-rw-r--r--ace/SOCK_CODgram.i6
-rw-r--r--ace/SOCK_Connector.h3
-rw-r--r--ace/SOCK_Connector.i6
-rw-r--r--ace/SOCK_Dgram.h3
-rw-r--r--ace/SOCK_Dgram.i6
-rw-r--r--ace/SOCK_Dgram_Bcast.h6
-rw-r--r--ace/SOCK_Dgram_Bcast.i11
-rw-r--r--ace/SOCK_Dgram_Mcast.h3
-rw-r--r--ace/SOCK_Dgram_Mcast.i5
-rw-r--r--ace/SOCK_IO.h4
-rw-r--r--ace/SOCK_IO.i12
-rw-r--r--ace/SOCK_Stream.h4
-rw-r--r--ace/SOCK_Stream.i12
-rw-r--r--ace/SString.h3
-rw-r--r--ace/SString.i5
-rw-r--r--ace/Sched_Params.h3
-rw-r--r--ace/Sched_Params.i6
-rw-r--r--ace/Select_Reactor.h11
-rw-r--r--ace/Select_Reactor.i25
-rw-r--r--ace/Service_Manager.h1
-rw-r--r--ace/Service_Manager.i6
-rw-r--r--ace/Service_Repository.h3
-rw-r--r--ace/Service_Repository.i4
-rw-r--r--ace/Service_Types.h6
-rw-r--r--ace/Service_Types.i19
-rw-r--r--ace/Shared_Object.h2
-rw-r--r--ace/Shared_Object.i5
-rw-r--r--ace/Signal.h8
-rw-r--r--ace/Signal.i21
-rw-r--r--ace/Strategies.cpp4
-rw-r--r--ace/Strategies.h11
-rw-r--r--ace/Strategies.i10
-rw-r--r--ace/Strategies_T.cpp4
-rw-r--r--ace/Strategies_T.h7
-rw-r--r--ace/Synch.cpp5
-rw-r--r--ace/Synch.h28
-rw-r--r--ace/Synch.i66
-rw-r--r--ace/Synch_Options.cpp4
-rw-r--r--ace/Synch_Options.h7
-rw-r--r--ace/Synch_Options.i5
-rw-r--r--ace/Timer_Heap_T.cpp5
-rw-r--r--ace/Timer_Heap_T.h3
-rw-r--r--ace/Timer_List_T.cpp5
-rw-r--r--ace/Timer_List_T.h3
-rw-r--r--ace/Timer_Queue_T.cpp16
-rw-r--r--ace/Timer_Queue_T.h6
-rw-r--r--ace/Timer_Wheel_T.cpp4
-rw-r--r--ace/Timer_Wheel_T.h3
90 files changed, 663 insertions, 27 deletions
diff --git a/ace/Activation_Queue.cpp b/ace/Activation_Queue.cpp
index 1dac80cdea9..5d9d2818cf1 100644
--- a/ace/Activation_Queue.cpp
+++ b/ace/Activation_Queue.cpp
@@ -5,6 +5,10 @@
#include "ace/Activation_Queue.h"
+#if !defined (__ACE_INLINE__)
+#include "ace/Activation_Queue.i"
+#endif /* __ACE_INLINE__ */
+
// Dump the state of an object.
void
diff --git a/ace/Activation_Queue.h b/ace/Activation_Queue.h
index f62ae1f5d43..3516b33b497 100644
--- a/ace/Activation_Queue.h
+++ b/ace/Activation_Queue.h
@@ -58,5 +58,9 @@ protected:
// Keeps track of whether we need to delete the queue.
};
+#if defined (__ACE_INLINE__)
+#include "ace/Activation_Queue.i"
+#endif /* __ACE_INLINE__ */
+
#endif /* ACE_ACTIVATION_QUEUE_H */
diff --git a/ace/Activation_Queue.i b/ace/Activation_Queue.i
new file mode 100644
index 00000000000..4bf8874117c
--- /dev/null
+++ b/ace/Activation_Queue.i
@@ -0,0 +1,4 @@
+/* -*- C++ -*- */
+// $Id$
+
+// Activation_Queue.i
diff --git a/ace/Dynamic.h b/ace/Dynamic.h
index 90e4b426882..9015992b8c0 100644
--- a/ace/Dynamic.h
+++ b/ace/Dynamic.h
@@ -30,6 +30,7 @@ class ACE_Export ACE_Dynamic
// the call to operator new and the call to the constructor.
public:
ACE_Dynamic (void);
+ ~ACE_Dynamic (void);
void set (void);
// Sets a flag that indicates that the object was dynamically
diff --git a/ace/Dynamic.i b/ace/Dynamic.i
index a8395adc4a5..6a32b94d4e6 100644
--- a/ace/Dynamic.i
+++ b/ace/Dynamic.i
@@ -3,6 +3,12 @@
// Dynamic.i
+ACE_INLINE
+ACE_Dynamic::~ACE_Dynamic (void)
+{
+ ACE_TRACE ("ACE_Dynamic::~ACE_Dynamic");
+}
+
ACE_INLINE void
ACE_Dynamic::set (void)
{
diff --git a/ace/Event_Handler.h b/ace/Event_Handler.h
index 4eab2c20423..c5cc51a7518 100644
--- a/ace/Event_Handler.h
+++ b/ace/Event_Handler.h
@@ -137,6 +137,9 @@ public:
ACE_Notification_Buffer (ACE_Event_Handler *eh,
ACE_Reactor_Mask mask);
+ ~ACE_Notification_Buffer (void);
+ // Default dtor.
+
ACE_Event_Handler *eh_;
// Pointer to the Event_Handler that will be dispatched
// by the main event loop.
diff --git a/ace/Event_Handler.i b/ace/Event_Handler.i
index 18110dfeffe..6ecccb4b1db 100644
--- a/ace/Event_Handler.i
+++ b/ace/Event_Handler.i
@@ -1,7 +1,10 @@
/* -*- C++ -*- */
// $Id$
-#include "ace/Event_Handler.h"
// Event_Handler.i
+ACE_INLINE
+ACE_Notification_Buffer::~ACE_Notification_Buffer (void)
+{
+}
diff --git a/ace/Get_Opt.h b/ace/Get_Opt.h
index fe31b26b4e7..7409e0bef6d 100644
--- a/ace/Get_Opt.h
+++ b/ace/Get_Opt.h
@@ -52,6 +52,9 @@ public:
// or the text of the following <argv>-element, is returned in
// <optarg>.
+ ~ACE_Get_Opt (void);
+ // Default dtor.
+
int operator () (void);
// Scan elements of <argv> (whose length is <argc>) for option
// characters given in <optstring>.
diff --git a/ace/Get_Opt.i b/ace/Get_Opt.i
index b5a6d1869cd..eceace918fa 100644
--- a/ace/Get_Opt.i
+++ b/ace/Get_Opt.i
@@ -3,3 +3,7 @@
// Get_Opt.i
+ACE_INLINE
+ACE_Get_Opt::~ACE_Get_Opt (void)
+{
+}
diff --git a/ace/Handle_Set.h b/ace/Handle_Set.h
index 0dc7a1cf72d..59662920575 100644
--- a/ace/Handle_Set.h
+++ b/ace/Handle_Set.h
@@ -39,6 +39,11 @@ public:
ACE_Handle_Set (const ACE_FD_SET_TYPE &mask);
+#if defined (ACE_HAS_WINCE)
+ ~ACE_Handle_Set (void);
+ // Default dtor.
+#endif /* ACE_HAS_WINCE */
+
// = Methods for manipulating bitsets.
void reset (void);
// Initialize the bitmask to all 0s and reset the associated fields.
@@ -124,6 +129,9 @@ public:
ACE_Handle_Set_Iterator (const ACE_Handle_Set &hs);
// Constructor.
+ ~ACE_Handle_Set_Iterator (void);
+ // Default dtor.
+
ACE_HANDLE operator () (void);
// "Next" operator. Returns the next unseen <ACE_HANDLE> in the
// <Handle_Set> up to <handle_set_.max_handle_>). When all the
diff --git a/ace/Handle_Set.i b/ace/Handle_Set.i
index 32c8608744b..cc8808b964c 100644
--- a/ace/Handle_Set.i
+++ b/ace/Handle_Set.i
@@ -5,6 +5,14 @@
// Initialize the bitmask to all 0s and reset the associated fields.
+#if defined (ACE_HAS_WINCE)
+ACE_INLINE
+ACE_Handle_Set::~ACE_Handle_Set (void)
+{
+ ACE_TRACE ("ACE_Handle_Set::~ACE_Handle_Set");
+}
+#endif /* ACE_HAS_WINCE */
+
ACE_INLINE void
ACE_Handle_Set::reset (void)
{
@@ -133,3 +141,7 @@ ACE_Handle_Set::operator fd_set *()
return (fd_set*) NULL;
}
+ACE_INLINE
+ACE_Handle_Set_Iterator::~ACE_Handle_Set_Iterator (void)
+{
+}
diff --git a/ace/High_Res_Timer.h b/ace/High_Res_Timer.h
index ce81b0b8a72..84933d0eff7 100644
--- a/ace/High_Res_Timer.h
+++ b/ace/High_Res_Timer.h
@@ -86,6 +86,9 @@ public:
ACE_High_Res_Timer (void);
// Initialize the timer.
+ ~ACE_High_Res_Timer (void);
+ // dtor.
+
void reset (void);
// Reinitialize the timer.
diff --git a/ace/High_Res_Timer.i b/ace/High_Res_Timer.i
index 2f6c007dbc3..44b991509c6 100644
--- a/ace/High_Res_Timer.i
+++ b/ace/High_Res_Timer.i
@@ -68,6 +68,11 @@ ACE_High_Res_Timer::ACE_High_Res_Timer (void)
this->reset ();
}
+ACE_INLINE
+ACE_High_Res_Timer::~ACE_High_Res_Timer (void)
+{
+}
+
ACE_INLINE void
ACE_High_Res_Timer::start (const ACE_OS::ACE_HRTimer_Op op)
{
diff --git a/ace/INET_Addr.h b/ace/INET_Addr.h
index 3fd2fd93b9a..b515b186d65 100644
--- a/ace/INET_Addr.h
+++ b/ace/INET_Addr.h
@@ -60,6 +60,9 @@ public:
// <port_name> and an Internet <ip_addr>. This method assumes that
// <ip_addr> is in host byte order.
+ ~ACE_INET_Addr (void);
+ // Default dtor.
+
// = Direct initialization methods (useful after the object has been
// constructed).
int set (const ACE_INET_Addr &);
diff --git a/ace/INET_Addr.i b/ace/INET_Addr.i
index ebeefaca31c..c22638c576e 100644
--- a/ace/INET_Addr.i
+++ b/ace/INET_Addr.i
@@ -3,6 +3,12 @@
// INET_Addr.i
+// Default dtor.
+ACE_INLINE
+ACE_INET_Addr::~ACE_INET_Addr (void)
+{
+}
+
// Return the port number, converting it into host byte order...
ACE_INLINE u_short
diff --git a/ace/IO_SAP.h b/ace/IO_SAP.h
index 5ca0d037fee..50f5af6e0d7 100644
--- a/ace/IO_SAP.h
+++ b/ace/IO_SAP.h
@@ -31,6 +31,9 @@ public:
INVALID_HANDLE = -1 // Be consistent with Winsock
};
+ ~ACE_IO_SAP (void);
+ // Default dtor.
+
int control (int cmd, void *) const;
// Interface for ioctl.
diff --git a/ace/IO_SAP.i b/ace/IO_SAP.i
index 3d87ca16d80..5bb805d48f4 100644
--- a/ace/IO_SAP.i
+++ b/ace/IO_SAP.i
@@ -3,6 +3,12 @@
// IO_SAP.i
+ASYS_INLINE
+ACE_IO_SAP::~ACE_IO_SAP (void)
+{
+ ACE_TRACE ("ACE_IO_SAP::~ACE_IO_SAP");
+}
+
// Used to return the underlying handle_.
ASYS_INLINE ACE_HANDLE
diff --git a/ace/IPC_SAP.h b/ace/IPC_SAP.h
index 2081d5de64c..3cd8f7d3bc7 100644
--- a/ace/IPC_SAP.h
+++ b/ace/IPC_SAP.h
@@ -25,6 +25,9 @@ class ACE_Export ACE_IPC_SAP
// Defines the member functions for the base class of the
// ACE_IPC_SAP abstraction.
public:
+ ~ACE_IPC_SAP (void);
+ // Default dtor.
+
int control (int cmd, void *) const;
// Interface for ioctl.
diff --git a/ace/IPC_SAP.i b/ace/IPC_SAP.i
index 4d3f0dbbead..bb5915dd589 100644
--- a/ace/IPC_SAP.i
+++ b/ace/IPC_SAP.i
@@ -5,6 +5,12 @@
// Used to return the underlying handle_.
+ASYS_INLINE
+ACE_IPC_SAP::~ACE_IPC_SAP (void)
+{
+ ACE_TRACE ("ACE_IPC_SAP::~ACE_IPC_SAP");
+}
+
ASYS_INLINE ACE_HANDLE
ACE_IPC_SAP::get_handle (void) const
{
diff --git a/ace/Local_Tokens.h b/ace/Local_Tokens.h
index 3cc4440432a..22e98744fbc 100644
--- a/ace/Local_Tokens.h
+++ b/ace/Local_Tokens.h
@@ -179,6 +179,9 @@ public:
// These are passed to the constructor of ACE_TPQ_Entry in
// make_TSS_TYPE
+ ~ACE_TSS_TPQ_Entry (void);
+ // Destructor.
+
virtual ACE_TPQ_Entry *make_TSS_TYPE (void) const;
// Allows us to pass args to the construction of the TSS object.
@@ -224,6 +227,9 @@ public:
ACE_TPQ_Iterator (ACE_Token_Proxy_Queue &q);
// Construction.
+ ~ACE_TPQ_Iterator (void);
+ // Destructor.
+
int next (ACE_TPQ_Entry *&next_item);
// Pass back the <next_item>.
@@ -262,6 +268,9 @@ public:
ACE_Token_Proxy_Queue (void);
// Construction.
+ ~ACE_Token_Proxy_Queue (void);
+ // Destructor
+
void enqueue (ACE_TPQ_Entry* new_entry,
int position);
// Enqueue a proxy, nesting level, client_id, and a magic cookie at
@@ -321,6 +330,9 @@ public:
ACE_Tokens (void);
// Null constructor.
+ ~ACE_Tokens (void);
+ // Destructor
+
virtual int acquire (ACE_TPQ_Entry *caller,
int ignore_deadlock,
int notify) = 0;
@@ -819,9 +831,12 @@ class ACE_Export ACE_Null_Token : public ACE_Token_Proxy
// = TITLE
// No op class for nonthreaded platform protocols.
public:
- ACE_Null_Token (void) {};
+ ACE_Null_Token (void);
// Construction.
+ ~ACE_Null_Token (void);
+ // Destructor
+
virtual int acquire (int /* notify */ = 0,
void (* /* sleep_hook */ )(void *) = 0,
ACE_Synch_Options & /* options */ =
@@ -882,6 +897,9 @@ public:
// <ignore_deadlock> will allow deadlock to occur (useful for
// testing). <debug> prints a bunch of messages.
+ ~ACE_Local_Mutex (void);
+ // Destructor
+
void dump (void) const;
// Dump the state of the class.
@@ -929,6 +947,9 @@ public:
// <ignore_deadlock> will allow deadlock to occur (useful for
// testing). <debug> prints a bunch of messages.
+ ~ACE_Local_RLock (void);
+ // Destructor
+
void dump (void) const;
// Dump the state of the class.
@@ -979,6 +1000,9 @@ public:
// <ignore_deadlock> will allow deadlock to occur (useful for
// testing). <debug> prints a bunch of messages.
+ ~ACE_Local_WLock (void);
+ // Destructor
+
void dump (void) const;
// Dump the state of the class.
diff --git a/ace/Local_Tokens.i b/ace/Local_Tokens.i
index 263d83b5a3e..2af8cf5fc45 100644
--- a/ace/Local_Tokens.i
+++ b/ace/Local_Tokens.i
@@ -89,6 +89,26 @@ ACE_TPQ_Entry::proxy (ACE_Token_Proxy *proxy)
this->proxy_ = proxy;
}
+ACE_INLINE
+ACE_TSS_TPQ_Entry::~ACE_TSS_TPQ_Entry (void)
+{
+}
+
+ACE_INLINE
+ACE_TPQ_Iterator::~ACE_TPQ_Iterator (void)
+{
+}
+
+ACE_INLINE
+ACE_Token_Proxy_Queue::~ACE_Token_Proxy_Queue (void)
+{
+}
+
+ACE_INLINE
+ACE_Tokens::~ACE_Tokens (void)
+{
+}
+
ACE_INLINE void
ACE_Tokens::remove (ACE_TPQ_Entry *caller)
{
@@ -313,6 +333,21 @@ ACE_Local_Mutex::create_token (const ASYS_TCHAR *name)
return new ACE_Mutex_Token (name);
}
+ACE_INLINE
+ACE_Null_Token::ACE_Null_Token (void)
+{
+}
+
+ACE_INLINE
+ACE_Null_Token::~ACE_Null_Token (void)
+{
+}
+
+ACE_INLINE
+ACE_Local_Mutex::~ACE_Local_Mutex (void)
+{
+}
+
// ************************************************************
ACE_INLINE
@@ -324,6 +359,11 @@ ACE_Local_RLock::ACE_Local_RLock (const ASYS_TCHAR *token_name,
this->open (token_name, ignore_deadlock, debug);
}
+ACE_INLINE
+ACE_Local_RLock::~ACE_Local_RLock (void)
+{
+}
+
ACE_INLINE ACE_Tokens *
ACE_Local_RLock::create_token (const ASYS_TCHAR *name)
{
@@ -355,6 +395,11 @@ ACE_Local_WLock::ACE_Local_WLock (const ASYS_TCHAR *token_name,
this->open (token_name, ignore_deadlock, debug);
}
+ACE_INLINE
+ACE_Local_WLock::~ACE_Local_WLock (void)
+{
+}
+
ACE_INLINE ACE_Tokens *
ACE_Local_WLock::create_token (const ASYS_TCHAR *name)
{
diff --git a/ace/Log_Record.h b/ace/Log_Record.h
index 7974361d4cf..425bf57082c 100644
--- a/ace/Log_Record.h
+++ b/ace/Log_Record.h
@@ -55,6 +55,9 @@ public:
// Create a <Log_Record> and set its priority, time stamp, and
// process id.
+ ~ACE_Log_Record (void);
+ // Default dtor.
+
#if !defined (ACE_HAS_WINCE) // @@ Sould this be ACE_LACKS_IOSTREAM_TOTALLY?
int print (const ASYS_TCHAR host_name[],
u_long verbose_flag,
diff --git a/ace/Log_Record.i b/ace/Log_Record.i
index 64a82d2ffcf..01730620d43 100644
--- a/ace/Log_Record.i
+++ b/ace/Log_Record.i
@@ -3,6 +3,11 @@
// Log_Record.i
+ASYS_INLINE
+ACE_Log_Record::~ACE_Log_Record (void)
+{
+}
+
ASYS_INLINE void
ACE_Log_Record::encode (void)
{
diff --git a/ace/Malloc.h b/ace/Malloc.h
index 2ae78bcce75..1eb0aceb485 100644
--- a/ace/Malloc.h
+++ b/ace/Malloc.h
@@ -205,6 +205,7 @@ public:
// = Initialization methods.
ACE_Name_Node (const char *name, void *, ACE_Name_Node *);
ACE_Name_Node (void);
+ ~ACE_Name_Node (void);
char *name_;
// Name of the Node.
diff --git a/ace/Malloc.i b/ace/Malloc.i
index d087794d520..a257f7bc28b 100644
--- a/ace/Malloc.i
+++ b/ace/Malloc.i
@@ -1,6 +1,11 @@
/* -*- C++ -*- */
// $Id$
+ACE_INLINE
+ACE_Name_Node::~ACE_Name_Node (void)
+{
+}
+
ACE_INLINE void *
ACE_New_Allocator::malloc (size_t nbytes)
{
diff --git a/ace/OS.h b/ace/OS.h
index e96c923957f..8e4175557ce 100644
--- a/ace/OS.h
+++ b/ace/OS.h
@@ -5633,9 +5633,14 @@ private:
# if defined (ASYS_INLINE)
# undef ASYS_INLINE
# endif /* ASYS_INLINE */
-# define ASYS_INLINE
+# define ASYS_INLINE
+# if defined (ACE_HAS_INLINED_OSCALLS)
+# undef ACE_HAS_INLINED_OSCALLS
+# endif /* ACE_HAS_INLINED_OSCALLS */
#else
# define ASYS_INLINE inline
+#endif /* ACE_LACKS_INLINE_FUNCTIONS */
+
# if defined (ACE_HAS_INLINED_OSCALLS)
# if defined (ACE_INLINE)
# undef ACE_INLINE
@@ -5643,7 +5648,6 @@ private:
# define ACE_INLINE inline
# include "ace/OS.i"
# endif /* ACE_HAS_INLINED_OSCALLS */
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
#if defined (ACE_HAS_GNUC_BROKEN_TEMPLATE_INLINE_FUNCTIONS)
# define ACE_INLINE_FOR_GNUC ACE_INLINE
diff --git a/ace/OS.i b/ace/OS.i
index 856754142b6..1f2e78aeaed 100644
--- a/ace/OS.i
+++ b/ace/OS.i
@@ -1160,9 +1160,13 @@ ACE_OS::strchr (char *s, int c)
// ACE_TRACE ("ACE_OS::strchr");
return ::strchr (s, c);
#else
- ACE_UNUSED_ARG (s);
- ACE_UNUSED_ARG (c);
- ACE_NOTSUP_RETURN (0);
+ for (;;++s)
+ {
+ if (*s == c)
+ return s;
+ if (*s == 0)
+ return 0;
+ }
#endif /* ACE_HAS_WINCE */
}
@@ -1173,9 +1177,13 @@ ACE_OS::strchr (const char *s, int c)
// ACE_TRACE ("ACE_OS::strchr");
return (const char *) ::strchr (s, c);
#else
- ACE_UNUSED_ARG (s);
- ACE_UNUSED_ARG (c);
- ACE_NOTSUP_RETURN (0);
+ for (;;++s)
+ {
+ if (*s == c)
+ return s;
+ if (*s == 0)
+ return 0;
+ }
#endif /* ACE_HAS_WINCE */
}
@@ -5147,9 +5155,12 @@ ACE_OS::thr_getspecific (ACE_thread_key_t key, void **data)
int error = errno;
*data = ::TlsGetValue (key);
+#if !defined (ACE_HAS_WINCE)
if (*data == 0 && (errno = ::GetLastError ()) != NO_ERROR)
+
return -1;
else
+#endif /* ACE_HAS_WINCE */
{
errno = error;
return 0;
diff --git a/ace/Obstack.cpp b/ace/Obstack.cpp
index 9356488561d..574ac97959a 100644
--- a/ace/Obstack.cpp
+++ b/ace/Obstack.cpp
@@ -3,6 +3,10 @@
#define ACE_BUILD_DLL
#include "ace/Obstack.h"
+#if !defined (__ACE_INLINE__)
+#include "ace/Obstack.i"
+#endif /* __ACE_INLINE__ */
+
ACE_ALLOC_HOOK_DEFINE(ACE_Obstack)
void
diff --git a/ace/Obstack.h b/ace/Obstack.h
index a4d253ca3f7..5e6fb3748b2 100644
--- a/ace/Obstack.h
+++ b/ace/Obstack.h
@@ -29,6 +29,9 @@ public:
ACE_Obchunk (size_t size);
// Constructor.
+ ~ACE_Obchunk (void);
+ // dtor.
+
void dump (void) const;
// Dump the state of an object.
@@ -96,4 +99,8 @@ protected:
// Pointer to the current Obchunk.
};
+#if defined (__ACE_INLINE__)
+#include "ace/Obstack.i"
+#endif /* __ACE_INLINE__ */
+
#endif /* ACE_OBSTACK_H */
diff --git a/ace/Obstack.i b/ace/Obstack.i
index 893b926ad3a..7a47c3da4cc 100644
--- a/ace/Obstack.i
+++ b/ace/Obstack.i
@@ -2,3 +2,8 @@
// $Id$
// Obstack.i
+
+ACE_INLINE
+ACE_Obchunk::~ACE_Obchunk (void)
+{
+}
diff --git a/ace/Parse_Node.h b/ace/Parse_Node.h
index cd1cf422240..5fe0781c195 100644
--- a/ace/Parse_Node.h
+++ b/ace/Parse_Node.h
@@ -53,6 +53,7 @@ class ACE_Export ACE_Suspend_Node : public ACE_Parse_Node
// Suspend a Service Node.
public:
ACE_Suspend_Node (const char *name);
+ ~ACE_Suspend_Node (void);
virtual void apply (void);
@@ -69,6 +70,7 @@ class ACE_Export ACE_Resume_Node : public ACE_Parse_Node
// Resume a Service Node.
public:
ACE_Resume_Node (const char *name);
+ ~ACE_Resume_Node (void);
virtual void apply (void);
@@ -85,7 +87,8 @@ class ACE_Export ACE_Remove_Node : public ACE_Parse_Node
// Remove a Service Node.
public:
ACE_Remove_Node (const char *name);
-
+ ~ACE_Remove_Node (void);
+
virtual void apply (void);
void dump (void) const;
diff --git a/ace/Parse_Node.i b/ace/Parse_Node.i
index 84c7266d734..0728118ea80 100644
--- a/ace/Parse_Node.i
+++ b/ace/Parse_Node.i
@@ -3,4 +3,17 @@
// Parse_Node.i
+ACE_INLINE
+ACE_Suspend_Node::~ACE_Suspend_Node (void)
+{
+}
+ACE_INLINE
+ACE_Resume_Node::~ACE_Resume_Node (void)
+{
+}
+
+ACE_INLINE
+ACE_Remove_Node::~ACE_Remove_Node (void)
+{
+}
diff --git a/ace/Pipe.h b/ace/Pipe.h
index 664d1a7253d..51a07d5bc99 100644
--- a/ace/Pipe.h
+++ b/ace/Pipe.h
@@ -40,6 +40,9 @@ public:
ACE_Pipe (ACE_HANDLE read, ACE_HANDLE write);
// Initialize the <ACE_Pipe> from the <read> and <write> handles.
+ ~ACE_Pipe (void);
+ // Default dtor. It doesn't close the handles for you.
+
int open (ACE_HANDLE handles[2]);
// Open the pipe and initialize the handles.
diff --git a/ace/Pipe.i b/ace/Pipe.i
index 41d07f79926..0eb87370827 100644
--- a/ace/Pipe.i
+++ b/ace/Pipe.i
@@ -3,6 +3,13 @@
// Pipe.i
+ASYS_INLINE
+ACE_Pipe::~ACE_Pipe (void)
+{
+ ACE_TRACE ("ACE_Pipe::~ACE_Pipe");
+ // Notice that the destructor doesn't close the handles for you.
+}
+
ASYS_INLINE ACE_HANDLE
ACE_Pipe::read_handle (void) const
{
diff --git a/ace/Process_Manager.h b/ace/Process_Manager.h
index d4d8c3f48db..6449df5f376 100644
--- a/ace/Process_Manager.h
+++ b/ace/Process_Manager.h
@@ -28,6 +28,8 @@ private:
friend class ACE_Process_Manager;
ACE_Process_Descriptor (void);
+ ~ACE_Process_Descriptor (void);
+ // Default ctor/dtor.
pid_t proc_id_;
// Unique process ID.
diff --git a/ace/Process_Manager.i b/ace/Process_Manager.i
index 1be8c04c67d..35c192b71ef 100644
--- a/ace/Process_Manager.i
+++ b/ace/Process_Manager.i
@@ -2,3 +2,8 @@
// $Id$
// Process_Manager.i
+
+ACE_INLINE
+ACE_Process_Descriptor::~ACE_Process_Descriptor (void)
+{
+}
diff --git a/ace/SOCK.h b/ace/SOCK.h
index fc4aba6d552..8401326be13 100644
--- a/ace/SOCK.h
+++ b/ace/SOCK.h
@@ -34,6 +34,9 @@ class ACE_Export ACE_SOCK : public ACE_IPC_SAP
// set socket options, get the local and remote addresses, and
// close the socket.
public:
+ ~ACE_SOCK (void);
+ // Default ctor/dtor.
+
int set_option (int level,
int option,
void *optval,
diff --git a/ace/SOCK.i b/ace/SOCK.i
index fb8d9211ecb..74304ad4cb8 100644
--- a/ace/SOCK.i
+++ b/ace/SOCK.i
@@ -3,6 +3,12 @@
// SOCK.i
+ASYS_INLINE
+ACE_SOCK::~ACE_SOCK (void)
+{
+ ACE_TRACE ("ACE_SOCK::~ACE_SOCK");
+}
+
ASYS_INLINE int
ACE_SOCK::set_option (int level,
int option,
diff --git a/ace/SOCK_Acceptor.cpp b/ace/SOCK_Acceptor.cpp
index 677f5f9c255..b2e0f097117 100644
--- a/ace/SOCK_Acceptor.cpp
+++ b/ace/SOCK_Acceptor.cpp
@@ -4,9 +4,9 @@
#define ACE_BUILD_DLL
#include "ace/SOCK_Acceptor.h"
-#if !defined (__ACE_INLINE__)
+#if defined (ACE_LACKS_INLINE_FUNCTIONS)
#include "ace/SOCK_Acceptor.i"
-#endif /* __ACE_INLINE__ */
+#endif /* ACE_LACKS_INLINE_FUNCTIONS */
#include "ace/Synch.h"
diff --git a/ace/SOCK_Acceptor.h b/ace/SOCK_Acceptor.h
index d5253ab109b..7be8f0979bf 100644
--- a/ace/SOCK_Acceptor.h
+++ b/ace/SOCK_Acceptor.h
@@ -37,6 +37,9 @@ public:
int protocol = 0);
// Initiate a passive mode socket.
+ ~ACE_SOCK_Acceptor (void);
+ // Default dtor.
+
int open (const ACE_Addr &local_sap,
int reuse_addr = 0,
int protocol_family = PF_INET,
@@ -76,8 +79,8 @@ private:
// Do not allow this function to percolate up to this interface...
};
-#if defined (__ACE_INLINE__)
+#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
#include "ace/SOCK_Acceptor.i"
-#endif /* __ACE_INLINE__ */
+#endif /* ACE_LACKS_INLINE_FUNCTIONS */
#endif /* ACE_SOCK_ACCEPTOR_H */
diff --git a/ace/SOCK_Acceptor.i b/ace/SOCK_Acceptor.i
index 03d9f211645..0ba44700809 100644
--- a/ace/SOCK_Acceptor.i
+++ b/ace/SOCK_Acceptor.i
@@ -3,5 +3,10 @@
// SOCK_Acceptor.i
+ASYS_INLINE
+ACE_SOCK_Acceptor::~ACE_SOCK_Acceptor (void)
+{
+ ACE_TRACE ("ACE_SOCK_Acceptor::~ACE_SOCK_Acceptor");
+}
diff --git a/ace/SOCK_CODgram.h b/ace/SOCK_CODgram.h
index 2b2de5aae6a..757c5a88f53 100644
--- a/ace/SOCK_CODgram.h
+++ b/ace/SOCK_CODgram.h
@@ -36,6 +36,10 @@ public:
int protocol_family = PF_INET,
int protocol = 0,
int reuse_addr = 0);
+
+ ~ACE_SOCK_CODgram (void);
+ // Default dtor.
+
// Initiate a connected dgram.
int open (const ACE_Addr &remote_sap,
diff --git a/ace/SOCK_CODgram.i b/ace/SOCK_CODgram.i
index 1476db0366c..7dd5b40a1d6 100644
--- a/ace/SOCK_CODgram.i
+++ b/ace/SOCK_CODgram.i
@@ -9,4 +9,10 @@ ACE_SOCK_CODgram::ACE_SOCK_CODgram (void)
ACE_TRACE ("ACE_SOCK_CODgram::ACE_SOCK_CODgram");
}
+ASYS_INLINE
+ACE_SOCK_CODgram::~ACE_SOCK_CODgram (void)
+{
+ ACE_TRACE ("ACE_SOCK_CODgram::~ACE_SOCK_CODgram");
+}
+
diff --git a/ace/SOCK_Connector.h b/ace/SOCK_Connector.h
index 70aaef7ac65..ad0d7a3c8ef 100644
--- a/ace/SOCK_Connector.h
+++ b/ace/SOCK_Connector.h
@@ -56,6 +56,9 @@ public:
// the OS do the binding. If <reuse_addr> == 1 then the
// <local_addr> is reused, even if it hasn't been cleanedup yet.
+ ~ACE_SOCK_Connector (void);
+ // Default dtor.
+
int connect (ACE_SOCK_Stream &new_stream,
const ACE_Addr &remote_sap,
ACE_Time_Value *timeout = 0,
diff --git a/ace/SOCK_Connector.i b/ace/SOCK_Connector.i
index 26627977c5e..ebce17c7f53 100644
--- a/ace/SOCK_Connector.i
+++ b/ace/SOCK_Connector.i
@@ -7,6 +7,12 @@
// the specified REMOTE_SAP address using a blocking open.
ASYS_INLINE
+ACE_SOCK_Connector::~ACE_SOCK_Connector (void)
+{
+ ACE_TRACE ("ACE_SOCK_Connector::~ACE_SOCK_Connector");
+}
+
+ASYS_INLINE
ACE_SOCK_Connector::ACE_SOCK_Connector (ACE_SOCK_Stream &new_stream,
const ACE_Addr &remote_sap,
ACE_Time_Value *timeout,
diff --git a/ace/SOCK_Dgram.h b/ace/SOCK_Dgram.h
index d9447796b16..4b4313c11bc 100644
--- a/ace/SOCK_Dgram.h
+++ b/ace/SOCK_Dgram.h
@@ -36,6 +36,9 @@ public:
int reuse_addr = 0);
// Initiate a socket dgram.
+ ~ACE_SOCK_Dgram (void);
+ // Default dtor.
+
int open (const ACE_Addr &local,
int protocol_family = PF_INET,
int protocol = 0,
diff --git a/ace/SOCK_Dgram.i b/ace/SOCK_Dgram.i
index 3dcf3752396..efcb0b09974 100644
--- a/ace/SOCK_Dgram.i
+++ b/ace/SOCK_Dgram.i
@@ -11,6 +11,12 @@ ACE_SOCK_Dgram::ACE_SOCK_Dgram (void)
ACE_TRACE ("ACE_SOCK_Dgram::ACE_SOCK_Dgram");
}
+ASYS_INLINE
+ACE_SOCK_Dgram::~ACE_SOCK_Dgram (void)
+{
+ ACE_TRACE ("ACE_SOCK_Dgram::~ACE_SOCK_Dgram");
+}
+
// <sendto> an N byte datagram to <addr> (connectionless version).
ASYS_INLINE ssize_t
diff --git a/ace/SOCK_Dgram_Bcast.h b/ace/SOCK_Dgram_Bcast.h
index 680861860b0..64e134b21c9 100644
--- a/ace/SOCK_Dgram_Bcast.h
+++ b/ace/SOCK_Dgram_Bcast.h
@@ -23,6 +23,8 @@ class ACE_Export ACE_Bcast_Node
{
public:
ACE_Bcast_Node (ACE_INET_Addr &, ACE_Bcast_Node *);
+ ~ACE_Bcast_Node (void);
+ // Default dtor.
ACE_INET_Addr bcast_addr_;
// Broadcast address for the interface.
@@ -46,6 +48,10 @@ public:
int protocol = 0,
int reuse_addr = 0,
const ASYS_TCHAR *host_name = 0);
+
+ ~ACE_SOCK_Dgram_Bcast (void);
+ // Default dtor.
+
// Initiate a connectionless datagram broadcast endpoint.
int open (const ACE_Addr &local,
diff --git a/ace/SOCK_Dgram_Bcast.i b/ace/SOCK_Dgram_Bcast.i
index fd85e1d84e8..9304ba1d933 100644
--- a/ace/SOCK_Dgram_Bcast.i
+++ b/ace/SOCK_Dgram_Bcast.i
@@ -3,6 +3,17 @@
// SOCK_Dgram_Bcast.i
+ASYS_INLINE
+ACE_Bcast_Node::~ACE_Bcast_Node (void)
+{
+}
+
+ASYS_INLINE
+ACE_SOCK_Dgram_Bcast::~ACE_SOCK_Dgram_Bcast (void)
+{
+ ACE_TRACE ("ACE_SOCK_Dgram_Bcast::~ACE_SOCK_Dgram_Bcast");
+}
+
// Broadcast an N byte datagram to ADDR (note that addr must be
// preassigned to the broadcast address of the subnet...)
diff --git a/ace/SOCK_Dgram_Mcast.h b/ace/SOCK_Dgram_Mcast.h
index b42dc55c42c..4e2f8165142 100644
--- a/ace/SOCK_Dgram_Mcast.h
+++ b/ace/SOCK_Dgram_Mcast.h
@@ -34,6 +34,9 @@ public:
// not listen) to the multicast group, use ACE_SOCK_Dgram or
// ACE_SOCK_CODgram.
+ ~ACE_SOCK_Dgram_Mcast (void);
+ // Default dtor.
+
// = Multicast group management routines.
int subscribe (const ACE_INET_Addr &mcast_addr,
diff --git a/ace/SOCK_Dgram_Mcast.i b/ace/SOCK_Dgram_Mcast.i
index 78a83bafbcb..196171208b8 100644
--- a/ace/SOCK_Dgram_Mcast.i
+++ b/ace/SOCK_Dgram_Mcast.i
@@ -3,6 +3,11 @@
// SOCK_Dgram_Mcast.i
+ASYS_INLINE
+ACE_SOCK_Dgram_Mcast::~ACE_SOCK_Dgram_Mcast (void)
+{
+}
+
ASYS_INLINE int
ACE_SOCK_Dgram_Mcast::set_option (int option,
char optval)
diff --git a/ace/SOCK_IO.h b/ace/SOCK_IO.h
index d6cb964050e..92e1376c7cf 100644
--- a/ace/SOCK_IO.h
+++ b/ace/SOCK_IO.h
@@ -26,6 +26,10 @@ class ACE_Export ACE_SOCK_IO : public ACE_SOCK
// Defines the methods for the ACE socket wrapper I/O routines
// (e.g., send/recv).
public:
+ ACE_SOCK_IO (void);
+ ~ACE_SOCK_IO (void);
+ // Default ctor/dtor.
+
ssize_t send (const void *buf,
size_t n,
int flags) const;
diff --git a/ace/SOCK_IO.i b/ace/SOCK_IO.i
index 555e6cbcef6..b36698dc257 100644
--- a/ace/SOCK_IO.i
+++ b/ace/SOCK_IO.i
@@ -5,6 +5,18 @@
// Send an n byte message to the connected socket.
+ASYS_INLINE
+ACE_SOCK_IO::ACE_SOCK_IO (void)
+{
+ ACE_TRACE ("ACE_SOCK_IO::ACE_SOCK_IO");
+}
+
+ASYS_INLINE
+ACE_SOCK_IO::~ACE_SOCK_IO (void)
+{
+ ACE_TRACE ("ACE_SOCK_IO::~ACE_SOCK_IO");
+}
+
ASYS_INLINE ssize_t
ACE_SOCK_IO::send (const void *buf, size_t n, int flags) const
{
diff --git a/ace/SOCK_Stream.h b/ace/SOCK_Stream.h
index 705078d55d4..d07d332c93f 100644
--- a/ace/SOCK_Stream.h
+++ b/ace/SOCK_Stream.h
@@ -30,6 +30,10 @@ class ACE_Export ACE_SOCK_Stream : public ACE_SOCK_IO
// This adds additional wrapper methods atop the <ACE_SOCK_IO>
// class.
public:
+ ACE_SOCK_Stream (void);
+ ~ACE_SOCK_Stream (void);
+ // Default ctor/dtor.
+
//= The following two methods use write and read system calls.
ssize_t send_n (const void *buf, int n) const;
// Send n bytes, keep trying until n are sent.
diff --git a/ace/SOCK_Stream.i b/ace/SOCK_Stream.i
index b48ce0ef64f..3fc19e0d070 100644
--- a/ace/SOCK_Stream.i
+++ b/ace/SOCK_Stream.i
@@ -7,6 +7,18 @@
// Shut down just the reading end of a ACE_SOCK.
+ASYS_INLINE
+ACE_SOCK_Stream::ACE_SOCK_Stream (void)
+{
+ ACE_TRACE ("ACE_SOCK_Stream::ACE_SOCK_Stream");
+}
+
+ASYS_INLINE
+ACE_SOCK_Stream::~ACE_SOCK_Stream (void)
+{
+ ACE_TRACE ("ACE_SOCK_Stream::~ACE_SOCK_Stream");
+}
+
ASYS_INLINE int
ACE_SOCK_Stream::close_reader (void)
{
diff --git a/ace/SString.h b/ace/SString.h
index 3b50ce5b89a..ea49879328d 100644
--- a/ace/SString.h
+++ b/ace/SString.h
@@ -208,6 +208,9 @@ public:
ACE_SString (char c, ACE_Allocator *alloc = 0);
// Constructor that copies <c> into dynamically allocated memory.
+ ~ACE_SString (void);
+ // Default dtor.
+
char operator[] (size_t index) const;
// Return the <index'th> character in the string (doesn't perform
// bounds checking).
diff --git a/ace/SString.i b/ace/SString.i
index b4cc402c73c..4625beaecbb 100644
--- a/ace/SString.i
+++ b/ace/SString.i
@@ -141,6 +141,11 @@ ACE_CString::hash (void) const
return ACE::hash_pjw (this->rep_);
}
+ACE_INLINE
+ACE_SString::~ACE_SString (void)
+{
+}
+
ACE_INLINE ACE_SString
ACE_SString::substr (size_t offset,
ssize_t length) const
diff --git a/ace/Sched_Params.h b/ace/Sched_Params.h
index 22d0582353d..fcae97937f4 100644
--- a/ace/Sched_Params.h
+++ b/ace/Sched_Params.h
@@ -172,6 +172,9 @@ public:
// Initialize the iterator, the arguments define the scheduling
// policy and scope for the priorities (see ACE_Sched_Param).
+ ~ACE_Sched_Priority_Iterator (void);
+ // Default dtor.
+
int more (void) const;
// Check if there are more priorities.
diff --git a/ace/Sched_Params.i b/ace/Sched_Params.i
index 201b933f5f9..a764423a954 100644
--- a/ace/Sched_Params.i
+++ b/ace/Sched_Params.i
@@ -106,6 +106,12 @@ ACE_Sched_Priority_Iterator::ACE_Sched_Priority_Iterator (const ACE_Sched_Params
this->done_ = 0;
}
+ACE_INLINE
+ACE_Sched_Priority_Iterator::~ACE_Sched_Priority_Iterator (void)
+{
+ ACE_TRACE ("ACE_Sched_Priority_Iterator::~ACE_Sched_Priority_Iterator");
+}
+
ACE_INLINE int
ACE_Sched_Priority_Iterator::more (void) const
{
diff --git a/ace/Select_Reactor.h b/ace/Select_Reactor.h
index 0e0fa642aa7..2674189978d 100644
--- a/ace/Select_Reactor.h
+++ b/ace/Select_Reactor.h
@@ -145,6 +145,7 @@ class ACE_Export ACE_Event_Tuple
public:
ACE_Event_Tuple (void);
ACE_Event_Tuple (ACE_Event_Handler* eh, ACE_HANDLE h);
+ ~ACE_Event_Tuple (void);
int operator== (const ACE_Event_Tuple &rhs) const;
// Equality operator.
@@ -175,6 +176,10 @@ class ACE_Export ACE_Select_Reactor_Notify : public ACE_Event_Handler
// passed to <notify>, the appropriate <handle_*> method is
// dispatched in the context of the <ACE_Select_Reactor> thread.
public:
+ ACE_Select_Reactor_Notify (void);
+ ~ACE_Select_Reactor_Notify (void);
+ // Default dtor.
+
// = Initialization and termination methods.
int open (ACE_Select_Reactor *, int disable_notify_pipe);
int close (void);
@@ -237,6 +242,9 @@ public:
ACE_Select_Reactor_Handler_Repository (ACE_Select_Reactor &);
// Default "do-nothing" constructor.
+ ~ACE_Select_Reactor_Handler_Repository (void);
+ // dtor.
+
int open (size_t size);
// Initialize a repository of the appropriate <size>.
@@ -323,6 +331,9 @@ public:
// = Initialization method.
ACE_Select_Reactor_Handler_Repository_Iterator (const ACE_Select_Reactor_Handler_Repository *s);
+ ~ACE_Select_Reactor_Handler_Repository_Iterator (void);
+ // dtor.
+
// = Iteration methods.
int next (ACE_Event_Handler *&next_item);
diff --git a/ace/Select_Reactor.i b/ace/Select_Reactor.i
index 0c67b56c43b..15bc5769f86 100644
--- a/ace/Select_Reactor.i
+++ b/ace/Select_Reactor.i
@@ -1,7 +1,30 @@
/* -*- C++ -*- */
// $Id$
-#include "ace/Reactor.h"
+ACE_INLINE
+ACE_Event_Tuple::~ACE_Event_Tuple (void)
+{
+}
+
+ACE_INLINE
+ACE_Select_Reactor_Notify::ACE_Select_Reactor_Notify (void)
+{
+}
+
+ACE_INLINE
+ACE_Select_Reactor_Notify::~ACE_Select_Reactor_Notify (void)
+{
+}
+
+ACE_INLINE
+ACE_Select_Reactor_Handler_Repository::~ACE_Select_Reactor_Handler_Repository (void)
+{
+}
+
+ACE_INLINE
+ACE_Select_Reactor_Handler_Repository_Iterator::~ACE_Select_Reactor_Handler_Repository_Iterator (void)
+{
+}
ACE_INLINE int
ACE_Select_Reactor::resume_handler (ACE_Event_Handler *h)
diff --git a/ace/Service_Manager.h b/ace/Service_Manager.h
index 51614221295..8f05c30aa67 100644
--- a/ace/Service_Manager.h
+++ b/ace/Service_Manager.h
@@ -30,6 +30,7 @@ class ACE_Export ACE_Service_Manager : public ACE_Service_Object
// services in the Service Repository.
public:
ACE_Service_Manager (void);
+ ~ACE_Service_Manager (void);
virtual int list_services (void);
virtual int reconfigure_services (void);
diff --git a/ace/Service_Manager.i b/ace/Service_Manager.i
index e4bcf581ee0..a040265d05f 100644
--- a/ace/Service_Manager.i
+++ b/ace/Service_Manager.i
@@ -2,3 +2,9 @@
// $Id$
// Service_Manager.i
+
+ACE_INLINE
+ACE_Service_Manager::~ACE_Service_Manager (void)
+{
+ ACE_TRACE ("ACE_Service_Manager::~ACE_Service_Manager");
+}
diff --git a/ace/Service_Repository.h b/ace/Service_Repository.h
index b732db5afdf..c620e0ddfe2 100644
--- a/ace/Service_Repository.h
+++ b/ace/Service_Repository.h
@@ -135,6 +135,9 @@ public:
ACE_Service_Repository_Iterator (ACE_Service_Repository &sr,
int ignored_suspended = 1);
+ ~ACE_Service_Repository_Iterator (void);
+ // dtor.
+
// = Iteration methods.
int next (const ACE_Service_Type *&next_item);
diff --git a/ace/Service_Repository.i b/ace/Service_Repository.i
index d5b70714154..5ba6a04e0fe 100644
--- a/ace/Service_Repository.i
+++ b/ace/Service_Repository.i
@@ -25,3 +25,7 @@ ACE_Service_Repository::total_size (void)
return this->total_size_;
}
+ACE_INLINE
+ACE_Service_Repository_Iterator::~ACE_Service_Repository_Iterator (void)
+{
+}
diff --git a/ace/Service_Types.h b/ace/Service_Types.h
index d6724062e63..efe8229b53c 100644
--- a/ace/Service_Types.h
+++ b/ace/Service_Types.h
@@ -90,6 +90,8 @@ public:
u_int flags = 0,
ACE_Service_Object_Exterminator gobbler = 0);
+ ~ACE_Service_Object_Type (void);
+
// = Implement the hooks for <ACE_Service_Objects>.
virtual int suspend (void) const;
virtual int resume (void) const;
@@ -109,6 +111,8 @@ public:
const ASYS_TCHAR *identifier,
u_int flags = 0);
+ ~ACE_Module_Type (void);
+
// = Implement the hooks for <ACE_Modules>.
virtual int suspend (void) const;
virtual int resume (void) const;
@@ -142,6 +146,8 @@ public:
const ASYS_TCHAR *identifier,
u_int flags = 0);
+ ~ACE_Stream_Type (void);
+
// = Implement the hooks for <ACE_Streams>.
virtual int suspend (void) const;
virtual int resume (void) const;
diff --git a/ace/Service_Types.i b/ace/Service_Types.i
index 0a63fca58c4..e84ed8341e5 100644
--- a/ace/Service_Types.i
+++ b/ace/Service_Types.i
@@ -27,6 +27,12 @@ ACE_Service_Type_Impl::name (const ASYS_TCHAR *n)
ACE_OS::strcpy ((ASYS_TCHAR *) this->name_, n);
}
+ACE_INLINE
+ACE_Service_Object_Type::~ACE_Service_Object_Type (void)
+{
+ ACE_TRACE ("ACE_Service_Object_Type::~ACE_Service_Object_Type");
+}
+
ACE_INLINE int
ACE_Service_Object_Type::suspend (void) const
{
@@ -48,3 +54,16 @@ ACE_Service_Object_Type::info (ASYS_TCHAR **str, size_t len) const
return ((ACE_Service_Object *) this->object ())->info (str, len);
}
+ACE_INLINE
+ACE_Module_Type::~ACE_Module_Type (void)
+{
+ ACE_TRACE ("ACE_Module_Type::~ACE_Module_Type");
+}
+
+ACE_INLINE
+ACE_Stream_Type::~ACE_Stream_Type (void)
+{
+ ACE_TRACE ("ACE_Stream_Type::~ACE_Stream_Type");
+}
+
+
diff --git a/ace/Shared_Object.h b/ace/Shared_Object.h
index 3803fcbd9ca..f6699779c9d 100644
--- a/ace/Shared_Object.h
+++ b/ace/Shared_Object.h
@@ -26,6 +26,8 @@ class ACE_Export ACE_Shared_Object
// Provide the abstract base class used to access dynamic
// linking facilities.
public:
+ ACE_Shared_Object (void);
+
virtual int init (int argc, ASYS_TCHAR *argv[]);
// Initializes object when dynamic linking occurs.
diff --git a/ace/Shared_Object.i b/ace/Shared_Object.i
index c6840a221cc..97ca0090c6d 100644
--- a/ace/Shared_Object.i
+++ b/ace/Shared_Object.i
@@ -2,3 +2,8 @@
// $Id$
// Shared_Object.i
+
+ACE_INLINE
+ACE_Shared_Object::ACE_Shared_Object (void)
+{
+}
diff --git a/ace/Signal.h b/ace/Signal.h
index f3704c8dca8..11ec0a6186b 100644
--- a/ace/Signal.h
+++ b/ace/Signal.h
@@ -103,6 +103,9 @@ public:
ACE_Sig_Action (const ACE_Sig_Action &s);
ACE_Sig_Action (struct sigaction *);
+ ~ACE_Sig_Action (void);
+ // Default dtor.
+
// = Signal action management.
int register_action (int signum, ACE_Sig_Action *oaction = 0);
// Register <this> as the current disposition and store old
@@ -190,6 +193,10 @@ class ACE_Export ACE_Sig_Handler
// <signum>, the <handle_signal> method of the registered
// <ACE_Event_Handler> is invoked automatically.
public:
+ ACE_Sig_Handler (void);
+ ~ACE_Sig_Handler (void);
+ // Default ctor/dtor.
+
// = Registration and removal methods.
virtual int register_handler (int signum,
ACE_Event_Handler *new_sh,
@@ -263,6 +270,7 @@ public:
ACE_Sig_Adapter (ACE_Sig_Action &, int sigkey);
ACE_Sig_Adapter (ACE_Event_Handler *, int sigkey);
ACE_Sig_Adapter (ACE_Sig_Handler_Ex, int sigkey = 0);
+ ~ACE_Sig_Adapter (void);
int sigkey (void);
// Returns this signal key that's used to remove this from the
diff --git a/ace/Signal.i b/ace/Signal.i
index 55ff8aeb4dc..5fe289d19bc 100644
--- a/ace/Signal.i
+++ b/ace/Signal.i
@@ -94,6 +94,12 @@ ACE_Sig_Set::sigset (void)
return this->sigset_;
}
+ACE_INLINE
+ACE_Sig_Action::~ACE_Sig_Action (void)
+{
+ ACE_TRACE ("ACE_Sig_Action::~ACE_Sig_Action");
+}
+
ACE_INLINE int
ACE_Sig_Action::flags (void)
{
@@ -262,9 +268,24 @@ ACE_Sig_Guard::~ACE_Sig_Guard (void)
#endif /* ACE_LACKS_PTHREAD_THR_SIGSETMASK */
}
+ACE_INLINE
+ACE_Sig_Handler::ACE_Sig_Handler (void)
+{
+}
+
+ACE_INLINE
+ACE_Sig_Handler::~ACE_Sig_Handler (void)
+{
+}
+
ACE_INLINE int
ACE_Sig_Handler::in_range (int signum)
{
ACE_TRACE ("ACE_Sig_Handler::in_range");
return signum > 0 && signum < ACE_NSIG;
}
+
+ACE_INLINE
+ACE_Sig_Adapter::~ACE_Sig_Adapter (void)
+{
+}
diff --git a/ace/Strategies.cpp b/ace/Strategies.cpp
index 76e79064118..72e7654cef5 100644
--- a/ace/Strategies.cpp
+++ b/ace/Strategies.cpp
@@ -8,6 +8,10 @@
#include "ace/Reactor.h"
#include "ace/Strategies.h"
+#if !defined (__ACE_INLINE__)
+#include "ace/Strategies.i"
+#endif /* __ACE_INLINE __ */
+
ACE_Notification_Strategy::ACE_Notification_Strategy (ACE_Event_Handler *eh,
ACE_Reactor_Mask mask)
: eh_ (eh),
diff --git a/ace/Strategies.h b/ace/Strategies.h
index be64ce20e9e..ec95bf7e2e5 100644
--- a/ace/Strategies.h
+++ b/ace/Strategies.h
@@ -66,6 +66,9 @@ public:
ACE_Event_Handler *eh,
ACE_Reactor_Mask mask);
+ ~ACE_Reactor_Notification_Strategy (void);
+ // Default dtor.
+
virtual int notify (void);
virtual int notify (ACE_Event_Handler *,
@@ -92,9 +95,17 @@ public:
virtual int cache (const void *recycling_act) = 0;
// Add to cache.
+
+protected:
+ ACE_Connection_Recycling_Strategy (void);
+ // Default ctor.
};
// This needs to come here to avoid circular dependencies.
#include "ace/Strategies_T.h"
+#if defined (__ACE_INLINE__)
+#include "ace/Strategies.i"
+#endif /* __ACE_INLINE __ */
+
#endif /* ACE_STRATEGIES_H */
diff --git a/ace/Strategies.i b/ace/Strategies.i
index a8f84ba003e..bcc6318f9da 100644
--- a/ace/Strategies.i
+++ b/ace/Strategies.i
@@ -2,3 +2,13 @@
// $Id$
// Strategies.i
+
+ACE_INLINE
+ACE_Reactor_Notification_Strategy::~ACE_Reactor_Notification_Strategy (void)
+{
+}
+
+ACE_INLINE
+ACE_Connection_Recycling_Strategy::ACE_Connection_Recycling_Strategy (void)
+{
+}
diff --git a/ace/Strategies_T.cpp b/ace/Strategies_T.cpp
index e377ef6e581..89c0f05aabf 100644
--- a/ace/Strategies_T.cpp
+++ b/ace/Strategies_T.cpp
@@ -12,6 +12,10 @@
#include "ace/Thread_Manager.h"
#include "ace/WFMO_Reactor.h"
+#if defined (ACE_LACKS_INLINE_FUNCTIONS)
+#include "ace/Strategies_T.i"
+#endif /* ACE_LACKS_INLINE_FUNCTIONS */
+
ACE_ALLOC_HOOK_DEFINE(ACE_Singleton_Strategy)
template<class SVC_HANDLER>
diff --git a/ace/Strategies_T.h b/ace/Strategies_T.h
index 20eda65663a..f6d09147836 100644
--- a/ace/Strategies_T.h
+++ b/ace/Strategies_T.h
@@ -583,6 +583,9 @@ public:
ACE_Hash_Addr (const ADDR_T &a, int recyclable);
// Pre-compute hash value.
+ ~ACE_Hash_Addr (void);
+ // Default destructor.
+
u_long hash (void) const;
// Computes and returns hash value. This "caches" the hash value to
// improve performance.
@@ -798,6 +801,10 @@ public:
// Dump the state of the object.
};
+#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
+#include "ace/Strategies_T.i"
+#endif /* ACE_LACKS_INLINE_FUNCTIONS */
+
#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
#include "ace/Strategies_T.cpp"
#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
diff --git a/ace/Synch.cpp b/ace/Synch.cpp
index 0732dc4f9f4..9368121b01c 100644
--- a/ace/Synch.cpp
+++ b/ace/Synch.cpp
@@ -489,11 +489,6 @@ ACE_Recursive_Thread_Mutex::ACE_Recursive_Thread_Mutex (const ACE_Recursive_Thre
{
}
-ACE_Recursive_Thread_Mutex::~ACE_Recursive_Thread_Mutex (void)
-{
- // ACE_TRACE ("ACE_Recursive_Thread_Mutex::~ACE_Recursive_Thread_Mutex");
-}
-
int
ACE_Recursive_Thread_Mutex::acquire (void)
{
diff --git a/ace/Synch.h b/ace/Synch.h
index e82d6834952..3d262fdf62d 100644
--- a/ace/Synch.h
+++ b/ace/Synch.h
@@ -611,6 +611,9 @@ public:
void * = 0);
// Initialize the barrier to synchronize <count> threads.
+ ~ACE_Null_Barrier (void);
+ // Default dtor.
+
int wait (void);
// Block the caller until all <count> threads have called <wait> and
// then allow all the caller threads to continue in parallel.
@@ -727,6 +730,9 @@ public:
ACE_TSS_Adapter (void *object, ACE_THR_DEST f);
// Initialize the adapter.
+ ~ACE_TSS_Adapter (void);
+ // Default dtor.
+
void cleanup (void);
// Perform the cleanup operation.
@@ -835,6 +841,9 @@ public:
void *arg = 0);
// constructor which will create manual event
+ ~ACE_Manual_Event (void);
+ // Default dtor.
+
void dump (void) const;
// Dump the state of an object.
@@ -857,6 +866,9 @@ public:
void *arg = 0);
// constructor which will create auto event
+ ~ACE_Auto_Event (void);
+ // Default dtor.
+
void dump (void) const;
// Dump the state of an object.
@@ -1100,10 +1112,10 @@ public:
void *arg = 0);
// Initialize a recursive mutex.
-#if !defined (ACE_WIN32)
~ACE_Recursive_Thread_Mutex (void);
// Implicitly release a recursive mutex.
+#if !defined (ACE_WIN32)
int remove (void);
// Implicitly release a recursive mutex.
@@ -1197,6 +1209,9 @@ public:
ACE_RW_Thread_Mutex (LPCTSTR name = 0,
void *arg = 0);
+ ~ACE_RW_Thread_Mutex (void);
+ // Default dtor.
+
int tryacquire_write_upgrade (void);
// Conditionally upgrade a read lock to a write lock. This only
// works if there are no other readers present, in which case the
@@ -1225,6 +1240,9 @@ public:
// Initialize the semaphore, with an initial value of <count> and a
// maximum value of <max>.
+ ~ACE_Thread_Semaphore (void);
+ // Default dtor.
+
void dump (void) const;
// Dump the state of an object.
@@ -1240,6 +1258,8 @@ struct ACE_Export ACE_Sub_Barrier
LPCTSTR name = 0,
void *arg = 0);
+ ~ACE_Sub_Barrier (void);
+
ACE_Condition_Thread_Mutex barrier_finished_;
// True if this generation of the barrier is done.
@@ -1273,6 +1293,9 @@ public:
void *arg = 0);
// Initialize the barrier to synchronize <count> threads.
+ ~ACE_Barrier (void);
+ // Default dtor.
+
int wait (void);
// Block the caller until all <count> threads have called <wait> and
// then allow all the caller threads to continue in parallel.
@@ -1363,6 +1386,9 @@ public:
ACE_Thread_Barrier (u_int count, LPCTSTR name = 0);
// Create a Thread_Barrier, passing in the optional <name>.
+ ~ACE_Thread_Barrier (void);
+ // Default dtor.
+
void dump (void) const;
// Dump the state of an object.
diff --git a/ace/Synch.i b/ace/Synch.i
index 722fd92044e..bda69995249 100644
--- a/ace/Synch.i
+++ b/ace/Synch.i
@@ -525,6 +525,12 @@ ACE_Condition_Thread_Mutex::mutex (void)
return this->mutex_;
}
+ACE_INLINE
+ACE_Recursive_Thread_Mutex::~ACE_Recursive_Thread_Mutex (void)
+{
+ // ACE_TRACE ("ACE_Recursive_Thread_Mutex::~ACE_Recursive_Thread_Mutex");
+}
+
#if !defined (ACE_WIN32)
ACE_INLINE int
ACE_Recursive_Thread_Mutex::remove (void)
@@ -720,6 +726,11 @@ ACE_Null_Barrier::ACE_Null_Barrier (u_int,
{
}
+ACE_INLINE
+ACE_Null_Barrier::~ACE_Null_Barrier (void)
+{
+}
+
ACE_INLINE int
ACE_Null_Barrier::wait (void)
{
@@ -856,26 +867,71 @@ ACE_Null_Mutex_Guard::remove (void)
return 0;
}
-ACE_INLINE int ACE_Null_Mutex_Guard::locked (void)
+ACE_INLINE int
+ACE_Null_Mutex_Guard::locked (void)
{
return 1;
}
-ACE_INLINE int ACE_Null_Mutex_Guard::acquire (void)
+ACE_INLINE int
+ACE_Null_Mutex_Guard::acquire (void)
{
return 0;
}
-ACE_INLINE int ACE_Null_Mutex_Guard::tryacquire (void)
+ACE_INLINE int
+ACE_Null_Mutex_Guard::tryacquire (void)
{
return 0;
}
-ACE_INLINE int ACE_Null_Mutex_Guard::release (void)
+ACE_INLINE int
+ACE_Null_Mutex_Guard::release (void)
{
return 0;
}
-ACE_INLINE void ACE_Null_Mutex_Guard::dump (void) const
+ACE_INLINE void
+ACE_Null_Mutex_Guard::dump (void) const
+{
+}
+
+ACE_INLINE
+ACE_TSS_Adapter::~ACE_TSS_Adapter (void)
+{
+}
+
+ACE_INLINE
+ACE_Manual_Event::~ACE_Manual_Event (void)
+{
+}
+
+ACE_INLINE
+ACE_Auto_Event::~ACE_Auto_Event (void)
+{
+}
+
+ACE_INLINE
+ACE_RW_Thread_Mutex::~ACE_RW_Thread_Mutex (void)
+{
+}
+
+ACE_INLINE
+ACE_Thread_Semaphore::~ACE_Thread_Semaphore (void)
+{
+}
+
+ACE_INLINE
+ACE_Sub_Barrier::~ACE_Sub_Barrier (void)
+{
+}
+
+ACE_INLINE
+ACE_Barrier::~ACE_Barrier (void)
+{
+}
+
+ACE_INLINE
+ACE_Thread_Barrier::~ACE_Thread_Barrier (void)
{
}
diff --git a/ace/Synch_Options.cpp b/ace/Synch_Options.cpp
index 73b27a6f76a..c1567bb85f4 100644
--- a/ace/Synch_Options.cpp
+++ b/ace/Synch_Options.cpp
@@ -4,6 +4,10 @@
#define ACE_BUILD_DLL
#include "ace/Synch_Options.h"
+#if !defined (__ACE_INLINE__)
+#include "ace/Synch_Options.i"
+#endif /* __ACE_INLINE__ */
+
ACE_ALLOC_HOOK_DEFINE(ACE_Synch_Options)
void
diff --git a/ace/Synch_Options.h b/ace/Synch_Options.h
index d9492f55768..cd65556921e 100644
--- a/ace/Synch_Options.h
+++ b/ace/Synch_Options.h
@@ -70,6 +70,9 @@ public:
const void *arg = 0);
// Initialize the Synch_Options based on parameters.
+ ~ACE_Synch_Options (void);
+ // Default dtor.
+
void set (u_long options = 0,
const ACE_Time_Value &timeout = ACE_Time_Value::zero,
const void *arg = 0);
@@ -131,4 +134,8 @@ private:
// asynchronous programming.
};
+#if defined (__ACE_INLINE__)
+#include "ace/Synch_Options.i"
+#endif /* __ACE_INLINE__ */
+
#endif /* ACE_SYNCH_OPTIONS_H */
diff --git a/ace/Synch_Options.i b/ace/Synch_Options.i
index 0a31ce8c554..3c16b199ac8 100644
--- a/ace/Synch_Options.i
+++ b/ace/Synch_Options.i
@@ -2,3 +2,8 @@
// $Id$
// Synch_Options.i
+
+ACE_INLINE
+ACE_Synch_Options::~ACE_Synch_Options (void)
+{
+}
diff --git a/ace/Timer_Heap_T.cpp b/ace/Timer_Heap_T.cpp
index 4ae610412bb..ad8ff2e5056 100644
--- a/ace/Timer_Heap_T.cpp
+++ b/ace/Timer_Heap_T.cpp
@@ -22,6 +22,11 @@ ACE_Timer_Heap_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::ACE_Timer_Heap_Iterator_T (A
this->first();
}
+template <class TYPE, class FUNCTOR, class ACE_LOCK>
+ACE_Timer_Heap_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::~ACE_Timer_Heap_Iterator_T (void)
+{
+}
+
// Positions the iterator at the first node in the heap array
diff --git a/ace/Timer_Heap_T.h b/ace/Timer_Heap_T.h
index 47c9d4c4d20..11d4cf781b9 100644
--- a/ace/Timer_Heap_T.h
+++ b/ace/Timer_Heap_T.h
@@ -39,6 +39,9 @@ public:
ACE_Timer_Heap_Iterator_T (ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK> &);
// Constructor.
+ ~ACE_Timer_Heap_Iterator_T (void);
+ // Destructor.
+
virtual void first (void);
// Positions the iterator at the earliest node in the Timer Queue
diff --git a/ace/Timer_List_T.cpp b/ace/Timer_List_T.cpp
index 5594c5cb39d..5ae7331927c 100644
--- a/ace/Timer_List_T.cpp
+++ b/ace/Timer_List_T.cpp
@@ -17,6 +17,11 @@ ACE_Timer_List_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::ACE_Timer_List_Iterator_T (A
// Nothing
}
+template <class TYPE, class FUNCTOR, class ACE_LOCK>
+ACE_Timer_List_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::~ACE_Timer_List_Iterator_T (void)
+{
+}
+
// Positions the iterator at the node right after the dummy node
template <class TYPE, class FUNCTOR, class ACE_LOCK> void
diff --git a/ace/Timer_List_T.h b/ace/Timer_List_T.h
index 55c32bd2195..e03e1cb5f2e 100644
--- a/ace/Timer_List_T.h
+++ b/ace/Timer_List_T.h
@@ -36,6 +36,9 @@ public:
ACE_Timer_List_Iterator_T (ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK> &);
// Constructor.
+ ~ACE_Timer_List_Iterator_T (void);
+ // Destructor.
+
virtual void first (void);
// Positions the iterator at the earliest node in the Timer Queue
diff --git a/ace/Timer_Queue_T.cpp b/ace/Timer_Queue_T.cpp
index 4857d96dbc9..709f772b6c7 100644
--- a/ace/Timer_Queue_T.cpp
+++ b/ace/Timer_Queue_T.cpp
@@ -32,6 +32,12 @@ ACE_Timer_Node_T<TYPE>::ACE_Timer_Node_T (void)
ACE_TRACE ("ACE_Timer_Node_T::ACE_Timer_Node_T");
}
+template <class TYPE>
+ACE_Timer_Node_T<TYPE>::~ACE_Timer_Node_T (void)
+{
+ ACE_TRACE ("ACE_Timer_Node_T::~ACE_Timer_Node_T");
+}
+
template <class TYPE, class FUNCTOR, class ACE_LOCK>
ACE_Timer_Queue_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::ACE_Timer_Queue_Iterator_T (void)
{
@@ -250,6 +256,16 @@ ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::return_node (ACE_Timer_Node_T<TYPE>
}
+template <class ACE_LOCK>
+ACE_Event_Handler_Handle_Timeout_Upcall<ACE_LOCK>::ACE_Event_Handler_Handle_Timeout_Upcall (void)
+{
+}
+
+template <class ACE_LOCK>
+ACE_Event_Handler_Handle_Timeout_Upcall<ACE_LOCK>::~ACE_Event_Handler_Handle_Timeout_Upcall (void)
+{
+}
+
template <class ACE_LOCK> int
ACE_Event_Handler_Handle_Timeout_Upcall<ACE_LOCK>::timeout (ACE_Timer_Queue_T<ACE_Event_Handler *,
ACE_Event_Handler_Handle_Timeout_Upcall<ACE_LOCK>,
diff --git a/ace/Timer_Queue_T.h b/ace/Timer_Queue_T.h
index 2cba3e8e3a9..48dfdceec44 100644
--- a/ace/Timer_Queue_T.h
+++ b/ace/Timer_Queue_T.h
@@ -29,6 +29,9 @@ public:
ACE_Timer_Node_T (void);
// Default constructor
+ ~ACE_Timer_Node_T (void);
+ // Dtor.
+
void set (const TYPE &type,
const void *a,
const ACE_Time_Value &t,
@@ -334,6 +337,9 @@ public:
ACE_LOCK>
TIMER_QUEUE;
+ ACE_Event_Handler_Handle_Timeout_Upcall (void);
+ ~ACE_Event_Handler_Handle_Timeout_Upcall (void);
+
int timeout (TIMER_QUEUE &timer_queue,
ACE_Event_Handler *handler,
const void *arg,
diff --git a/ace/Timer_Wheel_T.cpp b/ace/Timer_Wheel_T.cpp
index 2f3a701680b..ac80adb65c0 100644
--- a/ace/Timer_Wheel_T.cpp
+++ b/ace/Timer_Wheel_T.cpp
@@ -19,6 +19,10 @@ ACE_Timer_Wheel_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::ACE_Timer_Wheel_Iterator_T
// Nothing
}
+template <class TYPE, class FUNCTOR, class ACE_LOCK>
+ACE_Timer_Wheel_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::~ACE_Timer_Wheel_Iterator_T (void)
+{
+}
// Positions the iterator at the first node in the timing wheel
diff --git a/ace/Timer_Wheel_T.h b/ace/Timer_Wheel_T.h
index db2f1c20339..88e131b1faf 100644
--- a/ace/Timer_Wheel_T.h
+++ b/ace/Timer_Wheel_T.h
@@ -38,6 +38,9 @@ public:
ACE_Timer_Wheel_Iterator_T (ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK> &);
// Constructor
+ ~ACE_Timer_Wheel_Iterator_T (void);
+ // Destructor
+
virtual void first (void);
// Positions the iterator at the earliest node in the Timer Queue