libassa 3.5.1
Loading...
Searching...
No Matches
ASSA::PriorityQueue< T, Compare > Class Template Reference

#include <PriorityQueue.h>

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

◆ PriorityQueue() [1/3]

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

Definition at line 68 of file PriorityQueue.h.

70 : m_impl (0)
71{
72 // This is a perfect place for using Factory to decide which
73 // implementation to use
74 // const char self[]="PriorityQueue::PriorityQueue(maxsz)"; trace();
75
77}
virtual void setHeapImpl(size_t, const Compare &)
PriorityQueue_Impl< T, Compare > * m_impl

References m_comp, m_impl, and setHeapImpl().

Referenced by operator=(), and PriorityQueue().

◆ PriorityQueue() [2/3]

template<class T, class Compare>
ASSA::PriorityQueue< T, Compare >::PriorityQueue ( size_t max_,
const Compare & x_ )
inline

Definition at line 81 of file PriorityQueue.h.

83 : m_comp (x_), m_impl (0)
84{
85 // This is perfect place for using Factory to decide which
86 // implementation to use
88}

References m_comp, m_impl, and setHeapImpl().

◆ ~PriorityQueue()

template<class T, class Compare>
ASSA::PriorityQueue< T, Compare >::~PriorityQueue ( )
inlinevirtual

Definition at line 107 of file PriorityQueue.h.

109{
110 delete m_impl;
111}

References m_impl.

◆ PriorityQueue() [3/3]

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

References PriorityQueue().

Member Function Documentation

◆ getPriorityQueueImpl()

template<class T, class Compare>
const PriorityQueue_Impl< T, Compare > * ASSA::PriorityQueue< T, Compare >::getPriorityQueueImpl ( ) const
inlineprotected

Definition at line 155 of file PriorityQueue.h.

157{
159}

References m_impl.

◆ insert()

template<class T, class Compare>
void ASSA::PriorityQueue< T, Compare >::insert ( const T & el_)
inlinevirtual

Definition at line 115 of file PriorityQueue.h.

117{
118 m_impl->insert (el_);
119}

References m_impl.

◆ operator=()

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

References PriorityQueue().

◆ operator[]()

template<class T, class Compare>
T & ASSA::PriorityQueue< T, Compare >::operator[] ( int idx)
inlinevirtual

Definition at line 163 of file PriorityQueue.h.

165{
166 return (*m_impl)[idx];
167}

References m_impl.

◆ pop()

template<class T, class Compare>
T ASSA::PriorityQueue< T, Compare >::pop ( )
inlinevirtual

Definition at line 123 of file PriorityQueue.h.

125{
126 return m_impl->pop ();
127}

References m_impl.

◆ remove()

template<class T, class Compare>
bool ASSA::PriorityQueue< T, Compare >::remove ( T & t_)
inlinevirtual

Definition at line 139 of file PriorityQueue.h.

141{
142 return m_impl->remove (t_);
143}

References m_impl.

◆ setHeapImpl()

template<class T, class Compare>
void ASSA::PriorityQueue< T, Compare >::setHeapImpl ( size_t maxsz_,
const Compare & x_ )
inlinevirtual

Definition at line 92 of file PriorityQueue.h.

94{
95 // Maybe here you would want to copy contents of the old
96 // implementation to the new one?
97 //
98
99 if (m_impl != 0)
100 delete m_impl;
101
103}

References m_impl.

Referenced by PriorityQueue(), and PriorityQueue().

◆ size()

template<class T, class Compare>
size_t ASSA::PriorityQueue< T, Compare >::size ( )
inlinevirtual

Definition at line 147 of file PriorityQueue.h.

149{
150 return m_impl->size ();
151}

References m_impl.

◆ top()

template<class T, class Compare>
const T & ASSA::PriorityQueue< T, Compare >::top ( ) const
inlinevirtual

Definition at line 131 of file PriorityQueue.h.

133{
134 return m_impl->top ();
135}

References m_impl.

Member Data Documentation

◆ m_comp

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

Definition at line 53 of file PriorityQueue.h.

Referenced by PriorityQueue(), and PriorityQueue().

◆ m_impl

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

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