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 Member Functions

 ACE_Message_Queue_Reverse_Iterator (ACE_Message_Queue< ACE_SYNCH_USE > &queue)
int next (ACE_Message_Block *&entry)
int done (void) const
 Returns 1 when all items have been seen, else 0.

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


Public Attributes

 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks.


Private Attributes

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

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


Detailed Description

template<ACE_SYNCH_DECL>
class ACE_Message_Queue_Reverse_Iterator<>

Reverse Iterator for the ACE_Message_Queue.

Definition at line 649 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 532 of file Message_Queue_T.cpp.

00533   : queue_ (q),
00534     curr_ (queue_.tail_)
00535 {
00536 }


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 561 of file Message_Queue_T.cpp.

References ACE_READ_GUARD_RETURN, ACE_SYNCH_MUTEX_T, and ACE_Message_Block::prev().

00562 {
00563   ACE_READ_GUARD_RETURN (ACE_SYNCH_MUTEX_T, m, this->queue_.lock_, -1)
00564 
00565   if (this->curr_)
00566     this->curr_ = this->curr_->prev ();
00567   return this->curr_ != 0;
00568 }

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 553 of file Message_Queue_T.cpp.

References ACE_READ_GUARD_RETURN, and ACE_SYNCH_MUTEX_T.

00554 {
00555   ACE_READ_GUARD_RETURN (ACE_SYNCH_MUTEX_T, m, this->queue_.lock_, -1)
00556 
00557   return this->curr_ == 0;
00558 }

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

Dump the state of an object.

Definition at line 571 of file Message_Queue_T.cpp.

00572 {
00573 #if defined (ACE_HAS_DUMP)
00574 #endif /* ACE_HAS_DUMP */
00575 }

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

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

Definition at line 539 of file Message_Queue_T.cpp.

References ACE_READ_GUARD_RETURN, and ACE_SYNCH_MUTEX_T.

00540 {
00541   ACE_READ_GUARD_RETURN (ACE_SYNCH_MUTEX_T, m, this->queue_.lock_, -1)
00542 
00543   if (this->curr_ != 0)
00544     {
00545       entry = this->curr_;
00546       return 1;
00547     }
00548 
00549   return 0;
00550 }


Member Data Documentation

template<ACE_SYNCH_DECL >
ACE_Message_Queue_Reverse_Iterator<>::ACE_ALLOC_HOOK_DECLARE
 

Declare the dynamic allocation hooks.

Definition at line 671 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 678 of file Message_Queue_T.h.

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 675 of file Message_Queue_T.h.


The documentation for this class was generated from the following files:
Generated on Thu Nov 9 11:24:55 2006 for ACE by doxygen 1.3.6