ACE_Message_Queue_Iterator<> Class Template Reference

Iterator for the ACE_Message_Queue. More...

#include <Message_Queue_T.h>

Collaboration diagram for ACE_Message_Queue_Iterator<>:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 ACE_Message_Queue_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_Iterator<>

Iterator for the ACE_Message_Queue.

Definition at line 629 of file Message_Queue_T.h.


Constructor & Destructor Documentation

template<ACE_SYNCH_DECL >
ACE_Message_Queue_Iterator<>::ACE_Message_Queue_Iterator ( ACE_Message_Queue< ACE_SYNCH_USE > &  queue  ) 

Definition at line 597 of file Message_Queue_T.cpp.

00598   : queue_ (q),
00599     curr_ (q.head_)
00600 {
00601 }


Member Function Documentation

template<ACE_SYNCH_DECL >
int ACE_Message_Queue_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 626 of file Message_Queue_T.cpp.

References ACE_READ_GUARD_RETURN, ACE_SYNCH_MUTEX_T, ACE_Message_Queue_Iterator<>::curr_, and ACE_Message_Block::next().

00627 {
00628   ACE_READ_GUARD_RETURN (ACE_SYNCH_MUTEX_T, m, this->queue_.lock_, -1)
00629 
00630   if (this->curr_)
00631     this->curr_ = this->curr_->next ();
00632   return this->curr_ != 0;
00633 }

template<ACE_SYNCH_DECL >
int ACE_Message_Queue_Iterator<>::done ( void   )  const

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

Definition at line 618 of file Message_Queue_T.cpp.

References ACE_READ_GUARD_RETURN, ACE_SYNCH_MUTEX_T, and ACE_Message_Queue_Iterator<>::curr_.

00619 {
00620   ACE_READ_GUARD_RETURN (ACE_SYNCH_MUTEX_T, m, this->queue_.lock_, -1)
00621 
00622   return this->curr_ == 0;
00623 }

template<ACE_SYNCH_DECL >
void ACE_Message_Queue_Iterator<>::dump ( void   )  const

Dump the state of an object.

Definition at line 636 of file Message_Queue_T.cpp.

00637 {
00638 #if defined (ACE_HAS_DUMP)
00639 #endif /* ACE_HAS_DUMP */
00640 }

template<ACE_SYNCH_DECL >
int ACE_Message_Queue_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 604 of file Message_Queue_T.cpp.

References ACE_READ_GUARD_RETURN, ACE_SYNCH_MUTEX_T, and ACE_Message_Queue_Iterator<>::curr_.

00605 {
00606   ACE_READ_GUARD_RETURN (ACE_SYNCH_MUTEX_T, m, this->queue_.lock_, -1)
00607 
00608   if (this->curr_ != 0)
00609     {
00610       entry = this->curr_;
00611       return 1;
00612     }
00613 
00614   return 0;
00615 }


Member Data Documentation

template<ACE_SYNCH_DECL >
ACE_Message_Queue_Iterator<>::ACE_ALLOC_HOOK_DECLARE

Declare the dynamic allocation hooks.

Definition at line 651 of file Message_Queue_T.h.

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

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

Definition at line 658 of file Message_Queue_T.h.

Referenced by ACE_Message_Queue_Iterator<>::advance(), ACE_Message_Queue_Iterator<>::done(), and ACE_Message_Queue_Iterator<>::next().

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

Message_Queue we are iterating over.

Definition at line 655 of file Message_Queue_T.h.


The documentation for this class was generated from the following files:
Generated on Tue Feb 2 17:35:20 2010 for ACE by  doxygen 1.4.7