#ifndef __fpa__Base__PriorityQueueAlgorithm__hxx__ #define __fpa__Base__PriorityQueueAlgorithm__hxx__ // ------------------------------------------------------------------------- template< class _TSuperclass > fpa::Base::PriorityQueueAlgorithm< _TSuperclass >:: PriorityQueueAlgorithm( ) : Superclass( ) { } // ------------------------------------------------------------------------- template< class _TSuperclass > fpa::Base::PriorityQueueAlgorithm< _TSuperclass >:: ~PriorityQueueAlgorithm( ) { } // ------------------------------------------------------------------------- template< class _TSuperclass > unsigned long fpa::Base::PriorityQueueAlgorithm< _TSuperclass >:: _QueueSize( ) const { return( this->m_Queue.size( ) ); } // ------------------------------------------------------------------------- template< class _TSuperclass > void fpa::Base::PriorityQueueAlgorithm< _TSuperclass >:: _QueueClear( ) { this->m_Queue.clear( ); } // ------------------------------------------------------------------------- template< class _TSuperclass > void fpa::Base::PriorityQueueAlgorithm< _TSuperclass >:: _QueuePush( const _TQueueNode& node ) { static _TQueueNodeCompare cmp; this->m_Queue.push_back( node ); std::push_heap( this->m_Queue.begin( ), this->m_Queue.end( ), cmp ); } // ------------------------------------------------------------------------- template< class _TSuperclass > typename fpa::Base::PriorityQueueAlgorithm< _TSuperclass >:: _TQueueNode fpa::Base::PriorityQueueAlgorithm< _TSuperclass >:: _QueuePop( ) { static _TQueueNodeCompare cmp; std::pop_heap( this->m_Queue.begin( ), this->m_Queue.end( ), cmp ); _TQueueNode f = this->m_Queue.back( ); this->m_Queue.pop_back( ); return( f ); } #endif // __fpa__Base__PriorityQueueAlgorithm__hxx__ // eof - $RCSfile$