libassa  3.5.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
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 ()

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_) [inline, virtual]

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 ( ) [inline, virtual]

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 ( ) [inline, virtual]
template<class T , class Compare >
const T & ASSA::PriorityQueue_STLPQ< T, Compare >::top ( ) const [inline, virtual]

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:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines