1 #ifndef __fpa__Base__PriorityQueueAlgorithm__h__
2 #define __fpa__Base__PriorityQueueAlgorithm__h__
13 template< class _TSuperclass >
14 class PriorityQueueAlgorithm
18 typedef PriorityQueueAlgorithm Self;
19 typedef _TSuperclass Superclass;
20 typedef itk::SmartPointer< Self > Pointer;
21 typedef itk::SmartPointer< const Self > ConstPointer;
24 typedef typename Superclass::_TQueueNode _TQueueNode;
25 struct _TQueueNodeCompare
27 bool operator( )( const _TQueueNode& a, const _TQueueNode& b )
29 return( b.Result < a.Result );
32 typedef std::vector< _TQueueNode > _TQueue;
35 itkTypeMacro( PriorityQueueAlgorithm, Algorithm );
38 PriorityQueueAlgorithm( );
39 virtual ~PriorityQueueAlgorithm( );
41 virtual unsigned long _QueueSize( ) const override;
42 virtual void _QueueClear( ) override;
43 virtual void _QueuePush( const _TQueueNode& node ) override;
44 virtual _TQueueNode _QueuePop( ) override;
47 // Purposely not defined
48 PriorityQueueAlgorithm( const Self& other );
49 Self& operator=( const Self& other );
59 #ifndef ITK_MANUAL_INSTANTIATION
60 # include <fpa/Base/PriorityQueueAlgorithm.hxx>
61 #endif // ITK_MANUAL_INSTANTIATION
63 #endif // __fpa__Base__PriorityQueueAlgorithm__h__