Apollo 11.0
自动驾驶开放平台
apollo::perception::lib::ConcurrentQueue< Data > 模板类 参考

#include <concurrent_queue.h>

类 apollo::perception::lib::ConcurrentQueue< Data > 继承关系图:
apollo::perception::lib::ConcurrentQueue< Data > 的协作图:

Public 成员函数

 ConcurrentQueue ()
 
virtual ~ConcurrentQueue ()
 
virtual void Push (const Data &data)
 
virtual void Pop (Data *data)
 
bool TryPop (Data *data)
 
bool Empty ()
 
int Size ()
 
void Clear ()
 
 ConcurrentQueue (const ConcurrentQueue &)=delete
 
ConcurrentQueueoperator= (const ConcurrentQueue &)=delete
 

Protected 属性

std::queue< Data > queue_
 
Mutex mutex_
 
CondVar condition_variable_
 

详细描述

template<class Data>
class apollo::perception::lib::ConcurrentQueue< Data >

在文件 concurrent_queue.h27 行定义.

构造及析构函数说明

◆ ConcurrentQueue() [1/2]

template<class Data >
apollo::perception::lib::ConcurrentQueue< Data >::ConcurrentQueue ( )
inline

在文件 concurrent_queue.h29 行定义.

29{}

◆ ~ConcurrentQueue()

template<class Data >
virtual apollo::perception::lib::ConcurrentQueue< Data >::~ConcurrentQueue ( )
inlinevirtual

在文件 concurrent_queue.h30 行定义.

30{}

◆ ConcurrentQueue() [2/2]

template<class Data >
apollo::perception::lib::ConcurrentQueue< Data >::ConcurrentQueue ( const ConcurrentQueue< Data > &  )
delete

成员函数说明

◆ Clear()

template<class Data >
void apollo::perception::lib::ConcurrentQueue< Data >::Clear ( )
inline

在文件 concurrent_queue.h70 行定义.

70 {
71 MutexLock lock(&mutex_);
72 while (!queue_.empty()) {
73 queue_.pop();
74 }
75 }

◆ Empty()

template<class Data >
bool apollo::perception::lib::ConcurrentQueue< Data >::Empty ( )
inline

在文件 concurrent_queue.h60 行定义.

60 {
61 MutexLock lock(&mutex_);
62 return queue_.empty();
63 }

◆ operator=()

template<class Data >
ConcurrentQueue & apollo::perception::lib::ConcurrentQueue< Data >::operator= ( const ConcurrentQueue< Data > &  )
delete

◆ Pop()

template<class Data >
virtual void apollo::perception::lib::ConcurrentQueue< Data >::Pop ( Data *  data)
inlinevirtual

apollo::perception::lib::FixedSizeConQueue< Data > 重载.

在文件 concurrent_queue.h38 行定义.

38 {
39 MutexLock lock(&mutex_);
40
41 while (queue_.empty()) {
43 }
44 *data = queue_.front();
45 queue_.pop();
46 }

◆ Push()

template<class Data >
virtual void apollo::perception::lib::ConcurrentQueue< Data >::Push ( const Data &  data)
inlinevirtual

apollo::perception::lib::FixedSizeConQueue< Data > 重载.

在文件 concurrent_queue.h32 行定义.

32 {
33 MutexLock lock(&mutex_);
34 queue_.push(data);
36 }

◆ Size()

template<class Data >
int apollo::perception::lib::ConcurrentQueue< Data >::Size ( )
inline

在文件 concurrent_queue.h65 行定义.

65 {
66 MutexLock lock(&mutex_);
67 return static_cast<int>(queue_.size());
68 }

◆ TryPop()

template<class Data >
bool apollo::perception::lib::ConcurrentQueue< Data >::TryPop ( Data *  data)
inline

在文件 concurrent_queue.h48 行定义.

48 {
49 MutexLock lock(&mutex_);
50
51 if (queue_.empty()) {
52 return false;
53 }
54
55 *data = queue_.front();
56 queue_.pop();
57 return true;
58 }

类成员变量说明

◆ condition_variable_

template<class Data >
CondVar apollo::perception::lib::ConcurrentQueue< Data >::condition_variable_
protected

在文件 concurrent_queue.h83 行定义.

◆ mutex_

template<class Data >
Mutex apollo::perception::lib::ConcurrentQueue< Data >::mutex_
protected

在文件 concurrent_queue.h82 行定义.

◆ queue_

template<class Data >
std::queue<Data> apollo::perception::lib::ConcurrentQueue< Data >::queue_
protected

在文件 concurrent_queue.h81 行定义.


该类的文档由以下文件生成: