libassa  3.5.1
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 &)
 
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 trace.

Member Function Documentation

◆ dump()

template<class T , class Compare >
void ASSA::PriorityQueue_STLPQ< T, Compare >::dump ( void  )
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, ASSA::Timer::dump(), 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 ASSA::Timer::getHandler(), 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 ASSA::PriorityQueue_STLPQ< T, Compare >::size().

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

◆ top()

template<class T , class Compare >
const T & ASSA::PriorityQueue_STLPQ< T, Compare >::top
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: