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

#include <concurrent_queue.h>

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

Public 成员函数

 FixedSizeConQueue (size_t max_count)
 
virtual ~FixedSizeConQueue ()
 
virtual void Push (const Data &data)
 
virtual bool TryPush (const Data &data)
 
virtual void Pop (Data *data)
 
virtual bool TryPop (Data *data)
 
bool Full () const
 
 FixedSizeConQueue (const FixedSizeConQueue &)=delete
 
FixedSizeConQueueoperator= (const FixedSizeConQueue &)=delete
 
- Public 成员函数 继承自 apollo::perception::lib::ConcurrentQueue< Data >
 ConcurrentQueue ()
 
virtual ~ConcurrentQueue ()
 
bool TryPop (Data *data)
 
bool Empty ()
 
int Size ()
 
void Clear ()
 
 ConcurrentQueue (const ConcurrentQueue &)=delete
 
ConcurrentQueueoperator= (const ConcurrentQueue &)=delete
 

额外继承的成员函数

- Protected 属性 继承自 apollo::perception::lib::ConcurrentQueue< Data >
std::queue< Data > queue_
 
Mutex mutex_
 
CondVar condition_variable_
 

详细描述

template<typename Data>
class apollo::perception::lib::FixedSizeConQueue< Data >

在文件 concurrent_queue.h89 行定义.

构造及析构函数说明

◆ FixedSizeConQueue() [1/2]

template<typename Data >
apollo::perception::lib::FixedSizeConQueue< Data >::FixedSizeConQueue ( size_t  max_count)
inlineexplicit

在文件 concurrent_queue.h91 行定义.

92 : ConcurrentQueue<Data>(), max_count_(max_count) {}

◆ ~FixedSizeConQueue()

template<typename Data >
virtual apollo::perception::lib::FixedSizeConQueue< Data >::~FixedSizeConQueue ( )
inlinevirtual

在文件 concurrent_queue.h94 行定义.

94{}

◆ FixedSizeConQueue() [2/2]

template<typename Data >
apollo::perception::lib::FixedSizeConQueue< Data >::FixedSizeConQueue ( const FixedSizeConQueue< Data > &  )
delete

成员函数说明

◆ Full()

template<typename Data >
bool apollo::perception::lib::FixedSizeConQueue< Data >::Full ( ) const
inline

在文件 concurrent_queue.h139 行定义.

139{ return this->queue_.size() >= max_count_; }

◆ operator=()

template<typename Data >
FixedSizeConQueue & apollo::perception::lib::FixedSizeConQueue< Data >::operator= ( const FixedSizeConQueue< Data > &  )
delete

◆ Pop()

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

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

在文件 concurrent_queue.h115 行定义.

115 {
116 MutexLock lock(&this->mutex_);
117
118 while (this->queue_.empty()) {
119 this->condition_variable_.Wait(&this->mutex_);
120 }
121 *data = this->queue_.front();
122 this->queue_.pop();
123 condition_full_.Signal();
124 }

◆ Push()

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

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

在文件 concurrent_queue.h96 行定义.

96 {
97 MutexLock lock(&this->mutex_);
98 while (this->queue_.size() >= max_count_) {
99 condition_full_.Wait(&this->mutex_);
100 }
101 this->queue_.push(data);
103 }

◆ TryPop()

template<typename Data >
virtual bool apollo::perception::lib::FixedSizeConQueue< Data >::TryPop ( Data *  data)
inlinevirtual

在文件 concurrent_queue.h126 行定义.

126 {
127 MutexLock lock(&this->mutex_);
128
129 if (this->queue_.empty()) {
130 return false;
131 }
132
133 *data = this->queue_.front();
134 this->queue_.pop();
135 condition_full_.Signal();
136 return true;
137 }

◆ TryPush()

template<typename Data >
virtual bool apollo::perception::lib::FixedSizeConQueue< Data >::TryPush ( const Data &  data)
inlinevirtual

在文件 concurrent_queue.h105 行定义.

105 {
106 MutexLock lock(&this->mutex_);
107 if (this->queue_.size() >= max_count_) {
108 return false;
109 }
110 this->queue_.push(data);
112 return true;
113 }

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