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