Apollo 11.0
自动驾驶开放平台
apollo::planning::IndexedQueue< I, T > 模板类 参考

#include <indexed_queue.h>

apollo::planning::IndexedQueue< I, T > 的协作图:

Public 成员函数

 IndexedQueue (size_t capacity)
 
const T * Find (const I id) const
 
const T * Latest () const
 
bool Add (const I id, std::unique_ptr< T > ptr)
 
void Clear ()
 

Public 属性

size_t capacity_ = 0
 
std::queue< std::pair< I, const T * > > queue_
 
std::unordered_map< I, std::unique_ptr< T > > map_
 

详细描述

template<typename I, typename T>
class apollo::planning::IndexedQueue< I, T >

在文件 indexed_queue.h34 行定义.

构造及析构函数说明

◆ IndexedQueue()

template<typename I , typename T >
apollo::planning::IndexedQueue< I, T >::IndexedQueue ( size_t  capacity)
inlineexplicit

在文件 indexed_queue.h37 行定义.

37: capacity_(capacity) {}

成员函数说明

◆ Add()

template<typename I , typename T >
bool apollo::planning::IndexedQueue< I, T >::Add ( const I  id,
std::unique_ptr< T >  ptr 
)
inline

在文件 indexed_queue.h51 行定义.

51 {
52 if (Find(id)) {
53 return false;
54 }
55 if (capacity_ > 0 && queue_.size() == capacity_) {
56 map_.erase(queue_.front().first);
57 queue_.pop();
58 }
59 queue_.emplace(id, ptr.get());
60 map_[id] = std::move(ptr);
61 return true;
62 }
std::queue< std::pair< I, const T * > > queue_
const T * Find(const I id) const
std::unordered_map< I, std::unique_ptr< T > > map_

◆ Clear()

template<typename I , typename T >
void apollo::planning::IndexedQueue< I, T >::Clear ( )
inline

在文件 indexed_queue.h64 行定义.

64 {
65 while (!queue_.empty()) {
66 queue_.pop();
67 }
68 map_.clear();
69 }

◆ Find()

template<typename I , typename T >
const T * apollo::planning::IndexedQueue< I, T >::Find ( const I  id) const
inline

在文件 indexed_queue.h39 行定义.

39 {
40 auto *result = apollo::common::util::FindOrNull(map_, id);
41 return result ? result->get() : nullptr;
42 }

◆ Latest()

template<typename I , typename T >
const T * apollo::planning::IndexedQueue< I, T >::Latest ( ) const
inline

在文件 indexed_queue.h44 行定义.

44 {
45 if (queue_.empty()) {
46 return nullptr;
47 }
48 return Find(queue_.back().first);
49 }

类成员变量说明

◆ capacity_

template<typename I , typename T >
size_t apollo::planning::IndexedQueue< I, T >::capacity_ = 0

在文件 indexed_queue.h72 行定义.

◆ map_

template<typename I , typename T >
std::unordered_map<I, std::unique_ptr<T> > apollo::planning::IndexedQueue< I, T >::map_

在文件 indexed_queue.h74 行定义.

◆ queue_

template<typename I , typename T >
std::queue<std::pair<I, const T *> > apollo::planning::IndexedQueue< I, T >::queue_

在文件 indexed_queue.h73 行定义.


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