Apollo 10.0
自动驾驶开放平台
apollo::drivers::lidar::SyncBuffering< T > 模板类 参考

#include <sync_buffering.h>

apollo::drivers::lidar::SyncBuffering< T > 的协作图:

Public 成员函数

 SyncBuffering ()=default
 
 SyncBuffering (std::function< std::shared_ptr< T >(void)> allocator_function, std::function< void(std::shared_ptr< T > &)> cleaner_function)
 
void SetBufferSize (int buffer_size)
 
void SetAllocator (std::function< std::shared_ptr< T >(void)> allocator_function)
 
void SetCleaner (std::function< void(std::shared_ptr< T > &)> cleaner_function)
 
void Init ()
 
std::shared_ptr< T > GenerateNewObject ()
 
std::shared_ptr< T > AllocateElement ()
 

详细描述

template<typename T>
class apollo::drivers::lidar::SyncBuffering< T >

在文件 sync_buffering.h32 行定义.

构造及析构函数说明

◆ SyncBuffering() [1/2]

template<typename T >
apollo::drivers::lidar::SyncBuffering< T >::SyncBuffering ( )
default

◆ SyncBuffering() [2/2]

template<typename T >
apollo::drivers::lidar::SyncBuffering< T >::SyncBuffering ( std::function< std::shared_ptr< T >(void)>  allocator_function,
std::function< void(std::shared_ptr< T > &)>  cleaner_function 
)
inline

在文件 sync_buffering.h35 行定义.

37 :
38 allocator_function_(allocator_function),
39 cleaner_function_(cleaner_function) {}

成员函数说明

◆ AllocateElement()

template<typename T >
std::shared_ptr< T > apollo::drivers::lidar::SyncBuffering< T >::AllocateElement ( )

在文件 sync_buffering.h100 行定义.

100 {
101 int element_idx = buffer_index_.fetch_add(1);
102 std::shared_ptr<T> element = buffer_[element_idx % buffer_size_];
103 if (cleaner_function_) {
104 cleaner_function_(element);
105 }
106 return element;
107}

◆ GenerateNewObject()

template<typename T >
std::shared_ptr< T > apollo::drivers::lidar::SyncBuffering< T >::GenerateNewObject ( )

在文件 sync_buffering.h89 行定义.

89 {
90 std::shared_ptr<T> new_object;
91 if (allocator_function_ == nullptr) {
92 new_object = std::make_shared<T>();
93 } else {
94 new_object = allocator_function_();
95 }
96 return new_object;
97}

◆ Init()

template<typename T >
void apollo::drivers::lidar::SyncBuffering< T >::Init ( )

在文件 sync_buffering.h82 行定义.

82 {
83 for (int i = 0; i < buffer_size_; ++i) {
84 buffer_.push_back(GenerateNewObject());
85 }
86}
std::shared_ptr< T > GenerateNewObject()

◆ SetAllocator()

template<typename T >
void apollo::drivers::lidar::SyncBuffering< T >::SetAllocator ( std::function< std::shared_ptr< T >(void)>  allocator_function)

在文件 sync_buffering.h70 行定义.

71 {
72 allocator_function_ = allocator_function;
73}

◆ SetBufferSize()

template<typename T >
void apollo::drivers::lidar::SyncBuffering< T >::SetBufferSize ( int  buffer_size)

在文件 sync_buffering.h65 行定义.

65 {
66 buffer_size_ = buffer_size;
67}

◆ SetCleaner()

template<typename T >
void apollo::drivers::lidar::SyncBuffering< T >::SetCleaner ( std::function< void(std::shared_ptr< T > &)>  cleaner_function)

在文件 sync_buffering.h76 行定义.

77 {
78 cleaner_function_ = cleaner_function;
79}

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