Message_Queue.inl

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 //
00003 // $Id: Message_Queue.inl 78650 2007-06-29 12:06:28Z johnnyw $
00004 
00005 #if defined (ACE_WIN32) && (ACE_HAS_WINNT4 != 0)
00006 #  include "ace/Guard_T.h"
00007 #endif /* ACE_WIN32 */
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; // Always not full.
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   // Accessing to size_t must be atomic.
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   // Accessing to size_t must be atomic.
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   // Accessing to size_t must be atomic.
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   // Accessing to int must be atomic.
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 /* ACE_HAS_WIN32_OVERLAPPED_IO */
00135 
00136 ACE_END_VERSIONED_NAMESPACE_DECL

Generated on Sun Jan 27 12:05:31 2008 for ACE by doxygen 1.3.6