Apollo 10.0
自动驾驶开放平台
apollo::cyber::data::DataDispatcher< T > 模板类 参考

#include <data_dispatcher.h>

apollo::cyber::data::DataDispatcher< T > 的协作图:

Public 类型

using BufferVector = std::vector< std::weak_ptr< CacheBuffer< std::shared_ptr< T > > > >
 

Public 成员函数

 ~DataDispatcher ()
 
void AddBuffer (const ChannelBuffer< T > &channel_buffer)
 
bool Dispatch (const uint64_t channel_id, const std::shared_ptr< T > &msg)
 

详细描述

template<typename T>
class apollo::cyber::data::DataDispatcher< T >

在文件 data_dispatcher.h38 行定义.

成员类型定义说明

◆ BufferVector

template<typename T >
using apollo::cyber::data::DataDispatcher< T >::BufferVector = std::vector<std::weak_ptr<CacheBuffer<std::shared_ptr<T> >> >

在文件 data_dispatcher.h40 行定义.

构造及析构函数说明

◆ ~DataDispatcher()

template<typename T >
apollo::cyber::data::DataDispatcher< T >::~DataDispatcher ( )
inline

在文件 data_dispatcher.h42 行定义.

42{}

成员函数说明

◆ AddBuffer()

template<typename T >
void apollo::cyber::data::DataDispatcher< T >::AddBuffer ( const ChannelBuffer< T > &  channel_buffer)

在文件 data_dispatcher.h60 行定义.

60 {
61 std::lock_guard<std::mutex> lock(buffers_map_mutex_);
62 auto buffer = channel_buffer.Buffer();
63 BufferVector* buffers = nullptr;
64 if (buffers_map_.Get(channel_buffer.channel_id(), &buffers)) {
65 buffers->emplace_back(buffer);
66 } else {
67 BufferVector new_buffers = {buffer};
68 buffers_map_.Set(channel_buffer.channel_id(), new_buffers);
69 }
70}
std::vector< std::weak_ptr< CacheBuffer< std::shared_ptr< T > > > > BufferVector

◆ Dispatch()

template<typename T >
bool apollo::cyber::data::DataDispatcher< T >::Dispatch ( const uint64_t  channel_id,
const std::shared_ptr< T > &  msg 
)

在文件 data_dispatcher.h73 行定义.

74 {
75 BufferVector* buffers = nullptr;
77 return false;
78 }
79 if (buffers_map_.Get(channel_id, &buffers)) {
80 for (auto& buffer_wptr : *buffers) {
81 if (auto buffer = buffer_wptr.lock()) {
82 std::lock_guard<std::mutex> lock(buffer->Mutex());
83 buffer->Fill(msg);
84 }
85 }
86 } else {
87 return false;
88 }
89 return notifier_->Notify(channel_id);
90}
bool Notify(const uint64_t channel_id)
bool IsShutdown()
Definition state.h:46

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