CGraph
Public Member Functions | Private Attributes | List of all members
UAtomicPriorityQueue< T > Class Template Reference

包含一个优先级队列成员,基于mutex_封装成一个原子的优先级队列,支持原子的tryPop/push/empty More...

#include <UAtomicPriorityQueue.h>

Inheritance diagram for UAtomicPriorityQueue< T >:
Inheritance graph
[legend]
Collaboration diagram for UAtomicPriorityQueue< T >:
Collaboration graph
[legend]

Public Member Functions

 UAtomicPriorityQueue ()=default
 
CBool tryPop (T &value)
 
CBool tryPop (std::vector< T > &values, int maxPoolBatchSize)
 
CVoid push (T &&value, int priority)
 
CBool empty ()
 
- Public Member Functions inherited from CObject
 CObject ()=default
 
virtual CStatus init ()
 
virtual CStatus destroy ()
 
virtual ~CObject ()=default
 

Private Attributes

std::priority_queue< std::unique_ptr< T > > priority_queue_
 

Additional Inherited Members

- Protected Member Functions inherited from UThreadObject
CStatus run () override
 
- Protected Member Functions inherited from UtilsObject
CStatus run () override
 
- Protected Attributes inherited from UQueueObject
std::mutex mutex_
 
std::condition_variable cv_
 

Detailed Description

template<typename T>
class UAtomicPriorityQueue< T >

包含一个优先级队列成员,基于mutex_封装成一个原子的优先级队列,支持原子的tryPop/push/empty

Template Parameters
T

Constructor & Destructor Documentation

◆ UAtomicPriorityQueue()

template<typename T >
UAtomicPriorityQueue< T >::UAtomicPriorityQueue ( )
default

Member Function Documentation

◆ empty()

template<typename T >
CBool UAtomicPriorityQueue< T >::empty ( )
inline

判定队列是否为空

Returns

◆ push()

template<typename T >
CVoid UAtomicPriorityQueue< T >::push ( T &&  value,
int  priority 
)
inline

传入数据

Parameters
value
priority任务优先级,数字排序
Returns

◆ tryPop() [1/2]

template<typename T >
CBool UAtomicPriorityQueue< T >::tryPop ( std::vector< T > &  values,
int  maxPoolBatchSize 
)
inline

尝试弹出多个任务

Parameters
values
maxPoolBatchSize
Returns

◆ tryPop() [2/2]

template<typename T >
CBool UAtomicPriorityQueue< T >::tryPop ( T &  value)
inline

尝试弹出

Parameters
value
Returns

Member Data Documentation

◆ priority_queue_

template<typename T >
std::priority_queue<std::unique_ptr<T> > UAtomicPriorityQueue< T >::priority_queue_
private

The documentation for this class was generated from the following file: