libassa  3.5.1
Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes | List of all members
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 
76  setHeapImpl (maxsz_, m_comp);
77 }
virtual void setHeapImpl(size_t, const Compare &)
Definition: PriorityQueue.h:93
PriorityQueue_Impl< T, Compare > * m_impl
Definition: PriorityQueue.h:59

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

◆ 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
87  setHeapImpl (maxsz_, m_comp);
88 }

References ASSA::PriorityQueue< T, Compare >::m_comp, and ASSA::PriorityQueue< T, Compare >::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 }

◆ PriorityQueue() [3/3]

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

Member Function Documentation

◆ getPriorityQueueImpl()

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

Definition at line 155 of file PriorityQueue.h.

157 {
158  return (const PriorityQueue_Impl<T, Compare>*) m_impl;
159 }

◆ 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 }

◆ operator=()

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

◆ 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 }

◆ 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 }

◆ 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 }

◆ 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 
102  m_impl = new PriorityQueue_Heap<T, Compare> (maxsz_, x_);
103 }

Referenced by ASSA::PriorityQueue< T, Compare >::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 }

◆ top()

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

Definition at line 131 of file PriorityQueue.h.

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

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 ASSA::PriorityQueue< T, Compare >::PriorityQueue().

◆ m_impl

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: