libassa 3.5.1
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
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 &)
 
T pop ()
 
const Ttop () 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 Toperator[] (int)=0
 

Private Attributes

priority_queue< T *, deque< T * >, Comparem_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()

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 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
151 list<Timer*> t_list;
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"));
160 list<Timer*>::iterator i;
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
@ TRACE
Function call trace
Definition LogMask.h:26

References DL, trace, and ASSA::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 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 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
110 list<Timer*> t_list;
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
127 list<Timer*>::iterator i;
128
129 for (i = t_list.begin (); i != t_list.end (); i++) {
130 m_queue.push (*i);
131 }
132
133 return cnt;
134}

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

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


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