/* -*- C++ -*- */ // $Id$ template ACE_INLINE int ACE_Message_Queue::dequeue (ACE_Message_Block *&first_item, ACE_Time_Value *timeout) { ACE_TRACE ("ACE_Message_Queue::notification_strategy"); return this->dequeue_head (first_item, timeout); } template ACE_INLINE ACE_Notification_Strategy * ACE_Message_Queue::notification_strategy (void) { ACE_TRACE ("ACE_Message_Queue::notification_strategy"); return this->notification_strategy_; } template ACE_INLINE void ACE_Message_Queue::notification_strategy (ACE_Notification_Strategy *s) { ACE_TRACE ("ACE_Message_Queue::notification_strategy"); this->notification_strategy_ = s; } // Check if queue is empty (does not hold locks). template ACE_INLINE int ACE_Message_Queue::is_empty_i (void) { ACE_TRACE ("ACE_Message_Queue::is_empty_i"); return this->tail_ == 0; } // Check if queue is full (does not hold locks). template ACE_INLINE int ACE_Message_Queue::is_full_i (void) { ACE_TRACE ("ACE_Message_Queue::is_full_i"); return this->cur_bytes_ > this->high_water_mark_; } // Check if queue is empty (holds locks). template ACE_INLINE int ACE_Message_Queue::is_empty (void) { ACE_TRACE ("ACE_Message_Queue::is_empty"); ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1); return this->is_empty_i (); } // Check if queue is full (holds locks). template ACE_INLINE int ACE_Message_Queue::is_full (void) { ACE_TRACE ("ACE_Message_Queue::is_full"); ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1); return this->is_full_i (); } template ACE_INLINE size_t ACE_Message_Queue::high_water_mark (void) { ACE_TRACE ("ACE_Message_Queue::high_water_mark"); ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, 0); return this->high_water_mark_; } template ACE_INLINE void ACE_Message_Queue::high_water_mark (size_t hwm) { ACE_TRACE ("ACE_Message_Queue::high_water_mark"); ACE_GUARD (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_); this->high_water_mark_ = hwm; } template ACE_INLINE size_t ACE_Message_Queue::low_water_mark (void) { ACE_TRACE ("ACE_Message_Queue::low_water_mark"); ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, 0); return this->low_water_mark_; } template ACE_INLINE void ACE_Message_Queue::low_water_mark (size_t lwm) { ACE_TRACE ("ACE_Message_Queue::low_water_mark"); ACE_GUARD (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_); this->low_water_mark_ = lwm; } // Return the current number of bytes in the queue. template ACE_INLINE size_t ACE_Message_Queue::message_bytes (void) { ACE_TRACE ("ACE_Message_Queue::message_bytes"); ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, 0); return this->cur_bytes_; } // Return the current number of messages in the queue. template ACE_INLINE size_t ACE_Message_Queue::message_count (void) { ACE_TRACE ("ACE_Message_Queue::message_count"); ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, 0); return this->cur_count_; } template ACE_INLINE int ACE_Message_Queue::activate (void) { ACE_TRACE ("ACE_Message_Queue::activate"); ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1); return this->activate_i (); } template ACE_INLINE int ACE_Message_Queue::deactivate (void) { ACE_TRACE ("ACE_Message_Queue::deactivate"); ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1); return this->deactivate_i (); } template ACE_INLINE int ACE_Message_Queue::deactivated (void) { ACE_TRACE ("ACE_Message_Queue::deactivated"); return this->deactivated_; } template ACE_INLINE ACE_SYNCH_MUTEX_T & ACE_Message_Queue::lock (void) { return this->lock_; } ACE_ALLOC_HOOK_DEFINE(ACE_Message_Queue_Reverse_Iterator)