ASSA::PriorityQueue< T, Compare > Class Template Reference

#include <PriorityQueue.h>

Inheritance diagram for ASSA::PriorityQueue< T, Compare >:

Inheritance graph
[legend]
Collaboration diagram for ASSA::PriorityQueue< T, Compare >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 PriorityQueue (size_t max_=20)
 PriorityQueue (size_t max_, const Compare &)
virtual ~PriorityQueue ()
virtual void insert (const T &)
virtual T pop ()
virtual const T & top () const
virtual bool remove (T &)
virtual size_t size ()
virtual T & operator[] (int)
virtual void setHeapImpl (size_t, const Compare &)

Protected Member Functions

const PriorityQueue_Impl<
T, Compare > * 
getPriorityQueueImpl () const
 PriorityQueue (const PriorityQueue &)
PriorityQueueoperator= (const PriorityQueue &)

Protected Attributes

Compare m_comp

Private Attributes

PriorityQueue_Impl< T, Compare > * m_impl

Detailed Description

template<class T, class Compare>
class ASSA::PriorityQueue< T, Compare >

Definition at line 34 of file PriorityQueue.h.


Constructor & Destructor Documentation

template<class T, class Compare>
ASSA::PriorityQueue< T, Compare >::PriorityQueue size_t  max_ = 20  )  [inline]
 

Definition at line 69 of file PriorityQueue.h.

References ASSA::PriorityQueue< T, Compare >::m_comp, and ASSA::PriorityQueue< T, Compare >::setHeapImpl().

00070     : m_impl (0)
00071 {
00072     // This is a perfect place for using Factory to decide which
00073     // implementation to use
00074     // const char self[]="PriorityQueue::PriorityQueue(maxsz)"; trace();
00075 
00076     setHeapImpl (maxsz_, m_comp);
00077 }

template<class T, class Compare>
ASSA::PriorityQueue< T, Compare >::PriorityQueue size_t  max_,
const Compare & 
[inline]
 

Definition at line 82 of file PriorityQueue.h.

References ASSA::PriorityQueue< T, Compare >::m_comp, and ASSA::PriorityQueue< T, Compare >::setHeapImpl().

00083     : m_comp (x_), m_impl (0)
00084 {
00085     // This is perfect place for using Factory to decide which
00086     // implementation to use
00087     setHeapImpl (maxsz_, m_comp);
00088 }

template<class T, class Compare>
ASSA::PriorityQueue< T, Compare >::~PriorityQueue  )  [inline, virtual]
 

Definition at line 108 of file PriorityQueue.h.

References ASSA::PriorityQueue< T, Compare >::m_impl.

00109 {
00110     delete m_impl;
00111 }

template<class T, class Compare>
ASSA::PriorityQueue< T, Compare >::PriorityQueue const PriorityQueue< T, Compare > &   )  [protected]
 


Member Function Documentation

template<class T, class Compare>
const PriorityQueue_Impl< T, Compare > * ASSA::PriorityQueue< T, Compare >::getPriorityQueueImpl  )  const [inline, protected]
 

Definition at line 156 of file PriorityQueue.h.

References ASSA::PriorityQueue< T, Compare >::m_impl.

00157 {
00158     return (const PriorityQueue_Impl<T, Compare>*) m_impl;
00159 }

template<class T, class Compare>
void ASSA::PriorityQueue< T, Compare >::insert const T &   )  [inline, virtual]
 

Definition at line 116 of file PriorityQueue.h.

References ASSA::PriorityQueue< T, Compare >::m_impl.

Referenced by ASSA::TimerQueue::insert().

00117 {
00118     m_impl->insert (el_);
00119 }

template<class T, class Compare>
PriorityQueue& ASSA::PriorityQueue< T, Compare >::operator= const PriorityQueue< T, Compare > &   )  [protected]
 

template<class T, class Compare>
T & ASSA::PriorityQueue< T, Compare >::operator[] int   )  [inline, virtual]
 

Definition at line 164 of file PriorityQueue.h.

References ASSA::PriorityQueue< T, Compare >::m_impl.

00165 {
00166     return (*m_impl)[idx];
00167 }

template<class T, class Compare>
T ASSA::PriorityQueue< T, Compare >::pop  )  [inline, virtual]
 

Definition at line 124 of file PriorityQueue.h.

References ASSA::PriorityQueue< T, Compare >::m_impl.

Referenced by ASSA::TimerQueue::~TimerQueue().

00125 {
00126     return m_impl->pop ();
00127 }

template<class T, class Compare>
bool ASSA::PriorityQueue< T, Compare >::remove T &   )  [inline, virtual]
 

Definition at line 140 of file PriorityQueue.h.

References ASSA::PriorityQueue< T, Compare >::m_impl.

Referenced by ASSA::TimerQueue::remove().

00141 {
00142     return m_impl->remove (t_);
00143 }

template<class T, class Compare>
void ASSA::PriorityQueue< T, Compare >::setHeapImpl size_t  ,
const Compare & 
[inline, virtual]
 

Definition at line 93 of file PriorityQueue.h.

References ASSA::PriorityQueue< T, Compare >::m_impl.

Referenced by ASSA::PriorityQueue< T, Compare >::PriorityQueue().

00094 {
00095     // Maybe here you would want to copy contents of the old
00096     // implementation to the new one?
00097     //
00098 
00099     if (m_impl != 0)
00100         delete m_impl;
00101 
00102     m_impl = new PriorityQueue_Heap<T, Compare> (maxsz_, x_);
00103 }

template<class T, class Compare>
size_t ASSA::PriorityQueue< T, Compare >::size  )  [inline, virtual]
 

Definition at line 148 of file PriorityQueue.h.

References ASSA::PriorityQueue< T, Compare >::m_impl.

Referenced by ASSA::TimerQueue::dump(), ASSA::TimerQueue::expire(), ASSA::TimerQueue::isEmpty(), ASSA::TimerQueue::remove(), and ASSA::TimerQueue::~TimerQueue().

00149 {
00150     return m_impl->size ();
00151 }

template<class T, class Compare>
const T & ASSA::PriorityQueue< T, Compare >::top  )  const [inline, virtual]
 

Definition at line 132 of file PriorityQueue.h.

References ASSA::PriorityQueue< T, Compare >::m_impl.

Referenced by ASSA::TimerQueue::expire(), and ASSA::TimerQueue::top().

00133 {
00134     return m_impl->top ();
00135 }


Member Data Documentation

template<class T, class Compare>
Compare ASSA::PriorityQueue< T, Compare >::m_comp [protected]
 

Definition at line 53 of file PriorityQueue.h.

Referenced by ASSA::PriorityQueue< T, Compare >::PriorityQueue().

template<class T, class Compare>
PriorityQueue_Impl< T, Compare >* ASSA::PriorityQueue< T, Compare >::m_impl [private]
 

Definition at line 59 of file PriorityQueue.h.

Referenced by ASSA::PriorityQueue< T, Compare >::getPriorityQueueImpl(), ASSA::PriorityQueue< T, Compare >::insert(), ASSA::PriorityQueue< T, Compare >::operator[](), ASSA::PriorityQueue< T, Compare >::pop(), ASSA::PriorityQueue< T, Compare >::remove(), ASSA::PriorityQueue< T, Compare >::setHeapImpl(), ASSA::PriorityQueue< T, Compare >::size(), ASSA::PriorityQueue< T, Compare >::top(), and ASSA::PriorityQueue< T, Compare >::~PriorityQueue().


The documentation for this class was generated from the following file:
Generated on Sun Aug 13 15:08:20 2006 for libassa by  doxygen 1.4.6