Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

ACE_Message_Queue_Reverse_Iterator Class Template Reference

Reverse Iterator for the <ACE_Message_Queue>. More...

#include <Message_Queue_T.h>

Collaboration diagram for ACE_Message_Queue_Reverse_Iterator:

Collaboration graph
[legend]
List of all members.

Public Methods

 ACE_Message_Queue_Reverse_Iterator (ACE_Message_Queue< ACE_SYNCH_USE > &queue)
int next (ACE_Message_Block *&entry)
 Pass back the <entry> that hasn't been seen in the queue. Returns 0 when all items have been seen, else 1. More...

int done (void) const
 Returns 1 when all items have been seen, else 0. More...

int advance (void)
 Move forward by one element in the queue. Returns 0 when all the items in the set have been seen, else 1. More...

void dump (void) const
 Dump the state of an object. More...


Public Attributes

 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks. More...


Private Attributes

ACE_Message_Queue< ACE_SYNCH_USE > & queue_
 Message_Queue we are iterating over. More...

ACE_Message_Blockcurr_
 Keeps track of how far we've advanced... More...


Detailed Description

template<ACE_SYNCH_DECL>
class ACE_Message_Queue_Reverse_Iterator<>

Reverse Iterator for the <ACE_Message_Queue>.

Definition at line 568 of file Message_Queue_T.h.


Constructor & Destructor Documentation

template<ACE_SYNCH_DECL >
ACE_Message_Queue_Reverse_Iterator<>::ACE_Message_Queue_Reverse_Iterator ACE_Message_Queue< ACE_SYNCH_USE > &    queue
 

Definition at line 384 of file Message_Queue_T.cpp.

00385   : queue_ (q),
00386     curr_ (queue_.tail_)
00387 {
00388 }


Member Function Documentation

template<ACE_SYNCH_DECL >
int ACE_Message_Queue_Reverse_Iterator<>::advance void   
 

Move forward by one element in the queue. Returns 0 when all the items in the set have been seen, else 1.

Definition at line 413 of file Message_Queue_T.cpp.

References ACE_READ_GUARD_RETURN, ACE_SYNCH_MUTEX_T, curr_, and ACE_Message_Block::prev.

00414 {
00415   ACE_READ_GUARD_RETURN (ACE_SYNCH_MUTEX_T, m, this->queue_.lock_, -1)
00416 
00417   if (this->curr_)
00418     this->curr_ = this->curr_->prev ();
00419   return this->curr_ != 0;
00420 }

template<ACE_SYNCH_DECL >
int ACE_Message_Queue_Reverse_Iterator<>::done void    const
 

Returns 1 when all items have been seen, else 0.

Definition at line 405 of file Message_Queue_T.cpp.

References ACE_READ_GUARD_RETURN, ACE_SYNCH_MUTEX_T, and curr_.

00406 {
00407   ACE_READ_GUARD_RETURN (ACE_SYNCH_MUTEX_T, m, this->queue_.lock_, -1)
00408 
00409   return this->curr_ == 0;
00410 }

template<ACE_SYNCH_DECL >
void ACE_Message_Queue_Reverse_Iterator<>::dump void    const
 

Dump the state of an object.

Definition at line 423 of file Message_Queue_T.cpp.

00424 {
00425 }

template<ACE_SYNCH_DECL >
int ACE_Message_Queue_Reverse_Iterator<>::next ACE_Message_Block *&    entry
 

Pass back the <entry> that hasn't been seen in the queue. Returns 0 when all items have been seen, else 1.

Definition at line 391 of file Message_Queue_T.cpp.

References ACE_READ_GUARD_RETURN, ACE_SYNCH_MUTEX_T, and curr_.

00392 {
00393   ACE_READ_GUARD_RETURN (ACE_SYNCH_MUTEX_T, m, this->queue_.lock_, -1)
00394 
00395   if (this->curr_ != 0)
00396     {
00397       entry = this->curr_;
00398       return 1;
00399     }
00400 
00401   return 0;
00402 }


Member Data Documentation

template<ACE_SYNCH_DECL >
ACE_Message_Queue_Reverse_Iterator::ACE_ALLOC_HOOK_DECLARE
 

Declare the dynamic allocation hooks.

Definition at line 590 of file Message_Queue_T.h.

template<ACE_SYNCH_DECL >
ACE_Message_Block* ACE_Message_Queue_Reverse_Iterator::curr_ [private]
 

Keeps track of how far we've advanced...

Definition at line 597 of file Message_Queue_T.h.

Referenced by advance, done, and next.

template<ACE_SYNCH_DECL >
ACE_Message_Queue<ACE_SYNCH_USE>& ACE_Message_Queue_Reverse_Iterator::queue_ [private]
 

Message_Queue we are iterating over.

Definition at line 594 of file Message_Queue_T.h.


The documentation for this class was generated from the following files:
Generated on Mon Jun 16 12:50:38 2003 for ACE by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002