diff options
Diffstat (limited to 'TAO/tao/Incoming_Message_Queue.inl')
-rw-r--r-- | TAO/tao/Incoming_Message_Queue.inl | 58 |
1 files changed, 52 insertions, 6 deletions
diff --git a/TAO/tao/Incoming_Message_Queue.inl b/TAO/tao/Incoming_Message_Queue.inl index 76ba787dd8e..99bcb4978d3 100644 --- a/TAO/tao/Incoming_Message_Queue.inl +++ b/TAO/tao/Incoming_Message_Queue.inl @@ -1,9 +1,6 @@ // -*- C++ -*- -// //$Id$ - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - +// -*- C++ -*- /************************************************************************/ // Methods for TAO_Incoming_Message_Queue /************************************************************************/ @@ -13,6 +10,57 @@ TAO_Incoming_Message_Queue::queue_length (void) return this->size_; } +ACE_INLINE int +TAO_Incoming_Message_Queue::is_tail_complete (void) +{ + // If the size is 0 return -1 + if (this->size_ == 0) + return -1; + + if (this->size_ && + this->last_added_->missing_data_ == 0) + return 1; + + return 0; +} + +ACE_INLINE int +TAO_Incoming_Message_Queue::is_head_complete (void) +{ + if (this->size_ == 0) + return -1; + + if (this->size_ && + this->last_added_->next_->missing_data_ == 0 && + !this->last_added_->next_->more_fragments_) + return 1; + + return 0; +} + +ACE_INLINE int +TAO_Incoming_Message_Queue::is_tail_fragmented (void) +{ + if (this->size_ == 0) + return 0; + + if (this->size_ && + this->last_added_->more_fragments_) + return 1; + + return 0; +} + +ACE_INLINE size_t +TAO_Incoming_Message_Queue::missing_data_tail (void) const +{ + if (this->size_ != 0) + return this->last_added_->missing_data_; + + return 0; +} + + /************************************************************************/ // Methods for TAO_Queued_Data /************************************************************************/ @@ -42,5 +90,3 @@ TAO_Queued_Data::replace_data_block (ACE_Message_Block &mb) // Remove the DONT_DELETE flags from mb mb.clr_self_flags (ACE_Message_Block::DONT_DELETE); } - -TAO_END_VERSIONED_NAMESPACE_DECL |