Message_Queue_NT.inl

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 //
00003 // $Id: Message_Queue_NT.inl 80826 2008-03-04 14:51:23Z wotte $
00004 
00005 #if defined (ACE_HAS_WIN32_OVERLAPPED_IO)
00006 #  include "ace/Guard_T.h"
00007 #endif /* ACE_HAS_WIN32_OVERLAPPED_IO */
00008 
00009 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
00010 
00011 #if defined (ACE_HAS_WIN32_OVERLAPPED_IO)
00012 
00013 ACE_INLINE int
00014 ACE_Message_Queue_NT::enqueue_tail (ACE_Message_Block *new_item,
00015                                     ACE_Time_Value *timeout)
00016 {
00017   ACE_TRACE ("ACE_Message_Queue_NT::enqueue_tail");
00018   return this->enqueue (new_item, timeout);
00019 }
00020 
00021 ACE_INLINE int
00022 ACE_Message_Queue_NT::dequeue_head (ACE_Message_Block *&first_item,
00023                                     ACE_Time_Value *timeout)
00024 {
00025   ACE_TRACE ("ACE_Message_Queue_NT::dequeue_head");
00026   return this->dequeue (first_item, timeout);
00027 }
00028 
00029 ACE_INLINE bool
00030 ACE_Message_Queue_NT::is_full (void)
00031 {
00032   ACE_TRACE ("ACE_Message_Queue_NT::is_full");
00033   return false; // Always not full.
00034 }
00035 
00036 ACE_INLINE bool
00037 ACE_Message_Queue_NT::is_empty (void)
00038 {
00039   ACE_TRACE ("ACE_Message_Queue_NT::is_empty");
00040   ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, false);
00041 
00042   return this->cur_bytes_ > 0 || this->cur_count_ > 0 ? false : true;
00043 }
00044 
00045 ACE_INLINE size_t
00046 ACE_Message_Queue_NT::message_bytes (void)
00047 {
00048   ACE_TRACE ("ACE_Message_Queue_NT::message_bytes");
00049   // Accessing to size_t must be atomic.
00050   return this->cur_bytes_;
00051 }
00052 
00053 ACE_INLINE size_t
00054 ACE_Message_Queue_NT::message_length (void)
00055 {
00056   ACE_TRACE ("ACE_Message_Queue_NT::message_length");
00057   // Accessing to size_t must be atomic.
00058   return this->cur_length_;
00059 }
00060 
00061 ACE_INLINE size_t
00062 ACE_Message_Queue_NT::message_count (void)
00063 {
00064   ACE_TRACE ("ACE_Message_Queue_NT::message_count");
00065   // Accessing to size_t must be atomic.
00066   return this->cur_count_;
00067 }
00068 
00069 ACE_INLINE void
00070 ACE_Message_Queue_NT::message_bytes (size_t new_value)
00071 {
00072   ACE_TRACE ("ACE_Message_Queue_NT::message_bytes");
00073   ACE_GUARD (ACE_SYNCH_MUTEX, ace_mon, this->lock_);
00074 
00075   this->cur_bytes_ = new_value;
00076 }
00077 
00078 ACE_INLINE void
00079 ACE_Message_Queue_NT::message_length (size_t new_value)
00080 {
00081   ACE_TRACE ("ACE_Message_Queue_NT::message_length");
00082   ACE_GUARD (ACE_SYNCH_MUTEX, ace_mon, this->lock_);
00083 
00084   this->cur_length_ = new_value;
00085 }
00086 
00087 ACE_INLINE DWORD
00088 ACE_Message_Queue_NT::max_threads (void)
00089 {
00090   ACE_TRACE ("ACE_Message_Queue_NT::max_threads");
00091   return this->max_cthrs_;
00092 }
00093 
00094 ACE_INLINE int
00095 ACE_Message_Queue_NT::deactivated (void)
00096 {
00097   ACE_TRACE ("ACE_Message_Queue_NT::deactivated");
00098   // Accessing to int must be atomic.
00099   return this->state_ == ACE_Message_Queue_Base::DEACTIVATED;
00100 }
00101 
00102 ACE_INLINE ACE_HANDLE
00103 ACE_Message_Queue_NT::completion_port (void)
00104 {
00105   ACE_TRACE ("ACE_Message_Queue_NT::completion_port");
00106   return this->completion_port_;
00107 }
00108 
00109 ACE_INLINE int
00110 ACE_Message_Queue_NT::peek_dequeue_head (ACE_Message_Block *&first_item,
00111                                          ACE_Time_Value *timeout)
00112 {
00113   ACE_UNUSED_ARG(first_item);
00114   ACE_UNUSED_ARG(timeout);
00115   ACE_NOTSUP_RETURN (-1);
00116 }
00117 
00118 ACE_INLINE ACE_Notification_Strategy *
00119 ACE_Message_Queue_NT::notification_strategy (void)
00120 {
00121   ACE_NOTSUP_RETURN (0);
00122 }
00123 
00124 ACE_INLINE void
00125 ACE_Message_Queue_NT::notification_strategy (ACE_Notification_Strategy *)
00126 {
00127 }
00128 
00129 #endif /* ACE_HAS_WIN32_OVERLAPPED_IO */
00130 
00131 ACE_END_VERSIONED_NAMESPACE_DECL

Generated on Tue Feb 2 17:18:40 2010 for ACE by  doxygen 1.4.7