Apollo 10.0
自动驾驶开放平台
apollo::external_command::MessageWriter类 参考

#include <message_writer.h>

apollo::external_command::MessageWriter 的协作图:

Public 成员函数

template<typename T >
std::shared_ptr< WriterHandleRegisterMessage (const std::string &channel_name, const std::string &history_channel_name="")
 Register the message writer with the given channel name.
 
template<typename T >
std::shared_ptr< WriterHandleRegisterMessage (const cyber::proto::RoleAttributes &role_attr, const std::string &history_channel_name="")
 Register the message writer with the given channel atrributes.
 

详细描述

在文件 message_writer.h129 行定义.

成员函数说明

◆ RegisterMessage() [1/2]

template<typename T >
std::shared_ptr< WriterHandle > apollo::external_command::MessageWriter::RegisterMessage ( const cyber::proto::RoleAttributes role_attr,
const std::string &  history_channel_name = "" 
)

Register the message writer with the given channel atrributes.

参数
role_attrThe channel atrributes.
history_channel_nameif it is set, last received message will be sent periodically.

在文件 message_writer.h183 行定义.

185 {
186 const auto& channel_name = role_attr.channel_name();
187 auto existing_writer_iter = writer_map_.find(channel_name);
188 // Only register writer when it is not registered before.
189 if (existing_writer_iter == writer_map_.end()) {
190 auto writer = node_->CreateWriter<T>(role_attr);
191 if (history_channel_name != "") {
192 auto history_writer = node_->CreateWriter<T>(history_channel_name);
193 writer_map_[channel_name] =
194 std::make_shared<WriterHandle>(writer, history_writer);
195 history_writers_.emplace_back(writer_map_[channel_name]);
196 } else {
197 writer_map_[channel_name] = std::make_shared<WriterHandle>(writer);
198 }
199 return writer_map_[channel_name];
200 }
201 return existing_writer_iter->second;
202}

◆ RegisterMessage() [2/2]

template<typename T >
std::shared_ptr< WriterHandle > apollo::external_command::MessageWriter::RegisterMessage ( const std::string &  channel_name,
const std::string &  history_channel_name = "" 
)

Register the message writer with the given channel name.

参数
channel_nameChannel name of the message.
history_channel_nameif it is set, last received message will be sent periodically.

在文件 message_writer.h163 行定义.

164 {
165 auto existing_writer_iter = writer_map_.find(channel_name);
166 // Only register writer when it is not registered before.
167 if (existing_writer_iter == writer_map_.end()) {
168 auto writer = node_->CreateWriter<T>(channel_name);
169 if (history_channel_name != "") {
170 auto history_writer = node_->CreateWriter<T>(history_channel_name);
171 writer_map_[channel_name] =
172 std::make_shared<WriterHandle>(writer, history_writer);
173 history_writers_.emplace_back(writer_map_[channel_name]);
174 } else {
175 writer_map_[channel_name] = std::make_shared<WriterHandle>(writer);
176 }
177 return writer_map_[channel_name];
178 }
179 return existing_writer_iter->second;
180}

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