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

#include <PriorityQueue_STLPQ.h>

Inheritance diagram for ASSA::PriorityQueue_STLPQ< T, Compare >:
ASSA::PriorityQueue_Impl< T, Compare >

Public Member Functions

 ~PriorityQueue_STLPQ ()
void insert (const T &)
pop ()
const T & top () const
bool remove (const int)
size_t size ()
void dump ()
Public Member Functions inherited from ASSA::PriorityQueue_Impl< T, Compare >
virtual ~PriorityQueue_Impl ()
virtual bool remove (T)=0
virtual T & operator[] (int)=0

Private Attributes

priority_queue< T *, deque< T * >, Compare > m_queue

Detailed Description

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

Definition at line 33 of file PriorityQueue_STLPQ.h.

Constructor & Destructor Documentation

◆ ~PriorityQueue_STLPQ()

template<class T, class Compare>
ASSA::PriorityQueue_STLPQ< T, Compare >::~PriorityQueue_STLPQ ( )
inline

Definition at line 53 of file PriorityQueue_STLPQ.h.

55{
56 trace("PriorityQueue_STLPQ::~PriorityQueue_STLPQ");
57
58 while ( m_queue.size () ) {
59 delete m_queue.top ();
60 m_queue.pop ();
61 }
62}
#define trace(s)
trace() is used to trace function call chain in C++ program.
Definition Logger.h:429
priority_queue< T *, deque< T * >, Compare > m_queue

References m_queue, and trace.

Member Function Documentation

◆ dump()

template<class T, class Compare>
void ASSA::PriorityQueue_STLPQ< T, Compare >::dump ( )
inline

Definition at line 146 of file PriorityQueue_STLPQ.h.

148{
149 trace("PriorityQueue_STLPQ::dump");
150
152 register Timer* t_ptr = 0;
153 DL((TRACE,"======TimerQueue start=======\n"));
154 while (m_queue.size () > 0) {
155 t_ptr = m_queue.top ();
156 t_ptr->dump ();
157 t_list.push_back (t_ptr);
158 }
159 DL((TRACE,"======TimerQueue end=========\n"));
161
162 for (i = t_list.begin (); i != t_list.end (); i++) {
163 m_queue.push (*i);
164 }
165}
#define DL(X)
A macro for writing debug message to the Logger.
Definition Logger.h:273

References DL, ASSA::Timer::dump(), m_queue, ASSA::TRACE, and trace.

◆ insert()

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

Implements ASSA::PriorityQueue_Impl< T, Compare >.

Definition at line 66 of file PriorityQueue_STLPQ.h.

68{
69 trace("PriorityQueue_STLPQ::insert");
70 m_queue.push (t_);
71}

References m_queue, and trace.

◆ pop()

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

Implements ASSA::PriorityQueue_Impl< T, Compare >.

Definition at line 75 of file PriorityQueue_STLPQ.h.

77{
78 trace("PriorityQueue_STLPQ::pop");
79
80 T t = m_queue.top ();
81 m_queue.pop ();
82 return t;
83}

References m_queue, and trace.

◆ remove()

template<class T, class Compare>
bool ASSA::PriorityQueue_STLPQ< T, Compare >::remove ( const int id_)

Definition at line 105 of file PriorityQueue_STLPQ.h.

107{
108 trace("PriorityQueue_STLPQ::remove");
109
111 register Timer* t_ptr = 0;
112 register int cnt = 0;
113
114 while (m_queue.size () > 0) {
115 t_ptr = m_queue.top ();
116 if (t_ptr->getHandler ()-> id() == id_) {
117 delete t_ptr;
118 cnt++;
119 }
120 else {
121 t_list.push_back (t_ptr);
122 }
123 m_queue.pop ();
124 }
125 // Restore queue
126
128
129 for (i = t_list.begin (); i != t_list.end (); i++) {
130 m_queue.push (*i);
131 }
132
133 return cnt;
134}

References ASSA::Timer::getHandler(), m_queue, and trace.

◆ size()

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

Implements ASSA::PriorityQueue_Impl< T, Compare >.

Definition at line 138 of file PriorityQueue_STLPQ.h.

140{
141 return m_queue.size ();
142}

References m_queue.

◆ top()

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

Implements ASSA::PriorityQueue_Impl< T, Compare >.

Definition at line 87 of file PriorityQueue_STLPQ.h.

89{
90 trace("PriorityQueue_STLPQ::top");
91 return (const T&) m_queue.top ();
92}

References m_queue, and trace.

Member Data Documentation

◆ m_queue

template<class T, class Compare>
priority_queue<T*, deque<T*>, Compare> ASSA::PriorityQueue_STLPQ< T, Compare >::m_queue
private

Definition at line 48 of file PriorityQueue_STLPQ.h.

Referenced by dump(), insert(), pop(), remove(), size(), top(), and ~PriorityQueue_STLPQ().


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