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

Wrapped Writer with last sent channel. 更多...

#include <message_writer.h>

apollo::external_command::WriterHandle 的协作图:

Public 成员函数

 WriterHandle (const std::shared_ptr< cyber::WriterBase > &writer, const std::shared_ptr< cyber::WriterBase > &history_writer=nullptr)
 
template<typename T >
bool Write (const T &message)
 Write the message with the channel name.
 
template<typename T >
bool Write (const std::shared_ptr< T > &message)
 Write the message with the channel name.
 
void WriteLastMessage ()
 Write the last received message as history.
 

详细描述

Wrapped Writer with last sent channel.

在文件 message_writer.h39 行定义.

构造及析构函数说明

◆ WriterHandle()

apollo::external_command::WriterHandle::WriterHandle ( const std::shared_ptr< cyber::WriterBase > &  writer,
const std::shared_ptr< cyber::WriterBase > &  history_writer = nullptr 
)
inline

在文件 message_writer.h41 行定义.

44 : writer_(writer),
45 history_writer_(history_writer),
46 last_message_(nullptr) {}

成员函数说明

◆ Write() [1/2]

template<typename T >
bool apollo::external_command::WriterHandle::Write ( const std::shared_ptr< T > &  message)

Write the message with the channel name.

参数
messageThe message to be written.
返回
true if the message writer is registered;
参数
channel_nameChannel name of the message.
messageThe message to be written.
返回
true if the message writer is registered;

在文件 message_writer.h100 行定义.

100 {
101 CHECK_NOTNULL(message);
102 return Write(*message);
103}
bool Write(const T &message)
Write the message with the channel name.

◆ Write() [2/2]

template<typename T >
bool apollo::external_command::WriterHandle::Write ( const T &  message)

Write the message with the channel name.

参数
messageThe message to be written.
返回
true if the message writer is registered;

在文件 message_writer.h77 行定义.

77 {
78 auto* message_writer = dynamic_cast<cyber::Writer<T>*>(writer_.get());
79 if (nullptr == message_writer) {
80 return false;
81 }
82 message_writer->Write(message);
83 if (nullptr == last_message_) {
84 last_message_ = std::dynamic_pointer_cast<google::protobuf::Message>(
85 std::make_shared<T>());
86 write_history_function_ =
87 std::bind(&WriterHandle::WriteHistoryMessage<T>, this);
88 }
89 last_message_->CopyFrom(message);
90 return true;
91}

◆ WriteLastMessage()

void apollo::external_command::WriterHandle::WriteLastMessage ( )

Write the last received message as history.

在文件 message_writer.h105 行定义.

105 {
106 if (write_history_function_) {
107 write_history_function_();
108 }
109}

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