libassa  3.5.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes
ASSA::PriorityQueue< T, Compare > Class Template Reference

#include <PriorityQueue.h>

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().

: m_impl (0)
{
// This is a perfect place for using Factory to decide which
// implementation to use
// const char self[]="PriorityQueue::PriorityQueue(maxsz)"; trace();
setHeapImpl (maxsz_, m_comp);
}
template<class T , class Compare>
ASSA::PriorityQueue< T, Compare >::PriorityQueue ( size_t  max_,
const Compare &  x_ 
)
inline

Definition at line 82 of file PriorityQueue.h.

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

: m_comp (x_), m_impl (0)
{
// This is perfect place for using Factory to decide which
// implementation to use
setHeapImpl (maxsz_, m_comp);
}
template<class T , class Compare >
ASSA::PriorityQueue< T, Compare >::~PriorityQueue ( )
inlinevirtual

Definition at line 108 of file PriorityQueue.h.

{
delete m_impl;
}
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
inlineprotected

Definition at line 156 of file PriorityQueue.h.

{
return (const PriorityQueue_Impl<T, Compare>*) m_impl;
}
template<class T, class Compare >
void ASSA::PriorityQueue< T, Compare >::insert ( const T &  el_)
inlinevirtual

Definition at line 116 of file PriorityQueue.h.

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

{
m_impl->insert (el_);
}
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  idx)
inlinevirtual

Definition at line 164 of file PriorityQueue.h.

{
return (*m_impl)[idx];
}
template<class T , class Compare >
T ASSA::PriorityQueue< T, Compare >::pop ( )
inlinevirtual

Definition at line 124 of file PriorityQueue.h.

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

{
return m_impl->pop ();
}
template<class T, class Compare >
bool ASSA::PriorityQueue< T, Compare >::remove ( T &  t_)
inlinevirtual

Definition at line 140 of file PriorityQueue.h.

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

{
return m_impl->remove (t_);
}
template<class T , class Compare>
void ASSA::PriorityQueue< T, Compare >::setHeapImpl ( size_t  maxsz_,
const Compare &  x_ 
)
inlinevirtual

Definition at line 93 of file PriorityQueue.h.

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

{
// Maybe here you would want to copy contents of the old
// implementation to the new one?
//
if (m_impl != 0)
delete m_impl;
m_impl = new PriorityQueue_Heap<T, Compare> (maxsz_, x_);
}
template<class T , class Compare >
size_t ASSA::PriorityQueue< T, Compare >::size ( )
inlinevirtual
template<class T , class Compare >
const T & ASSA::PriorityQueue< T, Compare >::top ( ) const
inlinevirtual

Definition at line 132 of file PriorityQueue.h.

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

{
return m_impl->top ();
}

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.


The documentation for this class was generated from the following file: