summaryrefslogtreecommitdiff
path: root/ACE/ace/Select_Reactor_Base.inl
diff options
context:
space:
mode:
authorWilliam R. Otte <wotte@dre.vanderbilt.edu>2008-03-04 14:51:23 +0000
committerWilliam R. Otte <wotte@dre.vanderbilt.edu>2008-03-04 14:51:23 +0000
commit99aa8c60282c7b8072eb35eb9ac815702f5bf586 (patch)
treebda96bf8c3a4c2875a083d7b16720533c8ffeaf4 /ACE/ace/Select_Reactor_Base.inl
parentc4078c377d74290ebe4e66da0b4975da91732376 (diff)
downloadATCD-99aa8c60282c7b8072eb35eb9ac815702f5bf586.tar.gz
undoing accidental deletion
Diffstat (limited to 'ACE/ace/Select_Reactor_Base.inl')
-rw-r--r--ACE/ace/Select_Reactor_Base.inl152
1 files changed, 152 insertions, 0 deletions
diff --git a/ACE/ace/Select_Reactor_Base.inl b/ACE/ace/Select_Reactor_Base.inl
new file mode 100644
index 00000000000..178a8373291
--- /dev/null
+++ b/ACE/ace/Select_Reactor_Base.inl
@@ -0,0 +1,152 @@
+// -*- C++ -*-
+//
+// $Id$
+
+#include "ace/Reactor.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+ACE_INLINE ACE_Select_Reactor_Handler_Repository::size_type
+ACE_Select_Reactor_Handler_Repository::size (void) const
+{
+#ifdef ACE_WIN32
+ return this->event_handlers_.total_size ();
+#else
+ return this->event_handlers_.size ();
+#endif /* ACE_WIN32 */
+}
+
+ACE_INLINE ACE_Select_Reactor_Handler_Repository::max_handlep1_type
+ACE_Select_Reactor_Handler_Repository::max_handlep1 (void) const
+{
+#ifdef ACE_WIN32
+ return this->event_handlers_.current_size ();
+#else
+ return this->max_handlep1_;
+#endif /* ACE_WIN32 */
+}
+
+ACE_INLINE int
+ACE_Select_Reactor_Handler_Repository::unbind (ACE_HANDLE handle,
+ ACE_Reactor_Mask mask)
+{
+ // Do not refactor this code to optimize the call to the unbind impl.
+ // To resolve bug 2653, unbind must be called even when find_eh returns
+ // event_handlers_.end().
+
+ return !this->handle_in_range (handle) ? -1
+ : this->unbind (handle,
+ this->find_eh (handle),
+ mask);
+}
+
+ACE_INLINE ACE_Event_Handler *
+ACE_Select_Reactor_Handler_Repository::find (ACE_HANDLE handle)
+{
+ ACE_TRACE ("ACE_Select_Reactor_Handler_Repository::find");
+
+ ACE_Event_Handler * eh = 0;
+
+ if (this->handle_in_range (handle))
+ {
+ map_type::iterator const pos = this->find_eh (handle);
+
+ if (pos != this->event_handlers_.end ())
+ {
+#ifdef ACE_WIN32
+ eh = (*pos).item ();
+#else
+ eh = *pos;
+#endif /* ACE_WIN32 */
+ }
+ }
+ // Don't bother setting errno. It isn't used in the select()-based
+ // reactors and incurs a TSS access.
+ // else
+ // {
+ // errno = ENOENT;
+ // }
+
+ return eh;
+}
+
+// ------------------------------------------------------------------
+
+ACE_INLINE bool
+ACE_Select_Reactor_Handler_Repository_Iterator::done (void) const
+{
+#ifdef ACE_WIN32
+ return this->current_ != this->rep_->event_handlers_.end ();
+#else
+ return this->current_ != (this->rep_->event_handlers_.begin ()
+ + this->rep_->max_handlep1 ());
+#endif /* ACE_WIN32 */
+}
+
+// ------------------------------------------------------------------
+
+ACE_INLINE
+ACE_Event_Tuple::ACE_Event_Tuple (void)
+ : handle_ (ACE_INVALID_HANDLE),
+ event_handler_ (0)
+{
+}
+
+ACE_INLINE
+ACE_Event_Tuple::ACE_Event_Tuple (ACE_Event_Handler* eh,
+ ACE_HANDLE h)
+ : handle_ (h),
+ event_handler_ (eh)
+{
+}
+
+ACE_INLINE bool
+ACE_Event_Tuple::operator== (const ACE_Event_Tuple &rhs) const
+{
+ return this->handle_ == rhs.handle_;
+}
+
+ACE_INLINE bool
+ACE_Event_Tuple::operator!= (const ACE_Event_Tuple &rhs) const
+{
+ return !(*this == rhs);
+}
+
+#if defined (ACE_WIN32_VC8) || defined (ACE_WIN32_VC9)
+# pragma warning (push)
+# pragma warning (disable:4355) /* Use of 'this' in initializer list */
+#endif
+ACE_INLINE
+ACE_Select_Reactor_Impl::ACE_Select_Reactor_Impl (bool ms)
+ : handler_rep_ (*this)
+ , timer_queue_ (0)
+ , signal_handler_ (0)
+ , notify_handler_ (0)
+ , delete_timer_queue_ (false)
+ , delete_signal_handler_ (false)
+ , delete_notify_handler_ (false)
+ , initialized_ (false)
+ , restart_ (0)
+ , requeue_position_ (-1) // Requeue at end of waiters by default.
+ , state_changed_ (0)
+ , mask_signals_ (ms)
+ , supress_renew_ (0)
+{
+}
+#if defined (ACE_WIN32_VC8) || defined (ACE_WIN32_VC9)
+# pragma warning (pop)
+#endif
+
+ACE_INLINE int
+ACE_Select_Reactor_Impl::supress_notify_renew (void)
+{
+ return this->supress_renew_;
+}
+
+ACE_INLINE void
+ACE_Select_Reactor_Impl::supress_notify_renew (int sr)
+{
+ this->supress_renew_ = sr;
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL