libassa  3.5.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | Private Attributes
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 >

List of all members.

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

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

Definition at line 54 of file PriorityQueue_STLPQ.h.

References trace.

{
trace("PriorityQueue_STLPQ::~PriorityQueue_STLPQ");
while ( m_queue.size () ) {
delete m_queue.top ();
m_queue.pop ();
}
}

Member Function Documentation

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

Definition at line 147 of file PriorityQueue_STLPQ.h.

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

{
trace("PriorityQueue_STLPQ::dump");
list<Timer*> t_list;
register Timer* t_ptr = 0;
DL((TRACE,"======TimerQueue start=======\n"));
while (m_queue.size () > 0) {
t_ptr = m_queue.top ();
t_ptr->dump ();
t_list.push_back (t_ptr);
}
DL((TRACE,"======TimerQueue end=========\n"));
list<Timer*>::iterator i;
for (i = t_list.begin (); i != t_list.end (); i++) {
m_queue.push (*i);
}
}
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 67 of file PriorityQueue_STLPQ.h.

References trace.

{
trace("PriorityQueue_STLPQ::insert");
m_queue.push (t_);
}
template<class T , class Compare >
T ASSA::PriorityQueue_STLPQ< T, Compare >::pop ( )
inlinevirtual

Implements ASSA::PriorityQueue_Impl< T, Compare >.

Definition at line 76 of file PriorityQueue_STLPQ.h.

References trace.

{
trace("PriorityQueue_STLPQ::pop");
T t = m_queue.top ();
m_queue.pop ();
return t;
}
template<class T , class Compare >
bool ASSA::PriorityQueue_STLPQ< T, Compare >::remove ( const int  id_)

Definition at line 106 of file PriorityQueue_STLPQ.h.

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

{
trace("PriorityQueue_STLPQ::remove");
list<Timer*> t_list;
register Timer* t_ptr = 0;
register int cnt = 0;
while (m_queue.size () > 0) {
t_ptr = m_queue.top ();
if (t_ptr->getHandler ()-> id() == id_) {
delete t_ptr;
cnt++;
}
else {
t_list.push_back (t_ptr);
}
m_queue.pop ();
}
// Restore queue
list<Timer*>::iterator i;
for (i = t_list.begin (); i != t_list.end (); i++) {
m_queue.push (*i);
}
return cnt;
}
template<class T , class Compare >
size_t ASSA::PriorityQueue_STLPQ< T, Compare >::size ( )
inlinevirtual
template<class T , class Compare >
const T & ASSA::PriorityQueue_STLPQ< T, Compare >::top ( ) const
inlinevirtual

Implements ASSA::PriorityQueue_Impl< T, Compare >.

Definition at line 88 of file PriorityQueue_STLPQ.h.

References trace.

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

Member Data Documentation

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: