Apollo 11.0
自动驾驶开放平台
apollo::cyber::blocker::IntraWriter< MessageT > 模板类 参考

#include <intra_writer.h>

类 apollo::cyber::blocker::IntraWriter< MessageT > 继承关系图:
apollo::cyber::blocker::IntraWriter< MessageT > 的协作图:

Public 类型

using MessagePtr = std::shared_ptr< MessageT >
 
using BlockerManagerPtr = std::shared_ptr< BlockerManager >
 
- Public 类型 继承自 apollo::cyber::Writer< MessageT >
using TransmitterPtr = std::shared_ptr< transport::Transmitter< MessageT > >
 
using ChangeConnection = typename service_discovery::Manager::ChangeConnection
 

Public 成员函数

 IntraWriter (const proto::RoleAttributes &attr)
 
virtual ~IntraWriter ()
 
bool Init () override
 Init the Writer
 
void Shutdown () override
 Shutdown the Writer
 
bool Write (const MessageT &msg) override
 Write a MessageT instance
 
bool Write (const MessagePtr &msg_ptr) override
 Write a shared ptr of MessageT
 
- Public 成员函数 继承自 apollo::cyber::Writer< MessageT >
 Writer (const proto::RoleAttributes &role_attr)
 Construct a new Writer object
 
virtual ~Writer ()
 
bool Init () override
 Init the Writer
 
void Shutdown () override
 Shutdown the Writer
 
bool HasReader () override
 Is there any Reader that subscribes our Channel? You can publish message when this return true
 
void GetReaders (std::vector< proto::RoleAttributes > *readers) override
 Get all Readers that subscriber our writing channel
 
std::shared_ptr< MessageT > AcquireMessage ()
 Acquire message instance to send
 
- Public 成员函数 继承自 apollo::cyber::WriterBase
 WriterBase (const proto::RoleAttributes &role_attr)
 Construct a new Writer Base object
 
virtual ~WriterBase ()
 
const std::string & GetChannelName () const
 Get Writer's Channel name
 
const uint64_t GetChannelId () const
 Get Writer's Channel id
 
bool IsInit () const
 Is Writer initialized?
 

额外继承的成员函数

- Protected 属性 继承自 apollo::cyber::WriterBase
proto::RoleAttributes role_attr_
 
std::mutex lock_
 
bool init_
 

详细描述

template<typename MessageT>
class apollo::cyber::blocker::IntraWriter< MessageT >

在文件 intra_writer.h 第 30 行定义.

成员类型定义说明

◆ BlockerManagerPtr

template<typename MessageT >
using apollo::cyber::blocker::IntraWriter< MessageT >::BlockerManagerPtr = std::shared_ptr<BlockerManager>

在文件 intra_writer.h 第 33 行定义.

◆ MessagePtr

template<typename MessageT >
using apollo::cyber::blocker::IntraWriter< MessageT >::MessagePtr = std::shared_ptr<MessageT>

在文件 intra_writer.h 第 32 行定义.

构造及析构函数说明

◆ IntraWriter()

template<typename MessageT >
apollo::cyber::blocker::IntraWriter< MessageT >::IntraWriter ( const proto::RoleAttributes &  attr)
explicit

在文件 intra_writer.h 第 49 行定义.

50 : Writer<MessageT>(attr) {}

◆ ~IntraWriter()

template<typename MessageT >
apollo::cyber::blocker::IntraWriter< MessageT >::~IntraWriter ( )
virtual

在文件 intra_writer.h 第 53 行定义.

53 {
54 Shutdown();
55}
void Shutdown() override
Shutdown the Writer

成员函数说明

◆ Init()

template<typename MessageT >
bool apollo::cyber::blocker::IntraWriter< MessageT >::Init ( )
overridevirtual

Init the Writer

返回
true if init success
false if init failed

实现了 apollo::cyber::WriterBase.

在文件 intra_writer.h 第 58 行定义.

58 {
59 {
60 std::lock_guard<std::mutex> g(this->lock_);
61 if (this->init_) {
62 return true;
63 }
64 blocker_manager_ = BlockerManager::Instance();
65 blocker_manager_->GetOrCreateBlocker<MessageT>(
66 BlockerAttr(this->role_attr_.channel_name()));
67 this->init_ = true;
68 }
69 return true;
70}
proto::RoleAttributes role_attr_
static const std::shared_ptr< BlockerManager > & Instance()

◆ Shutdown()

template<typename MessageT >
void apollo::cyber::blocker::IntraWriter< MessageT >::Shutdown ( )
overridevirtual

Shutdown the Writer

实现了 apollo::cyber::WriterBase.

在文件 intra_writer.h 第 73 行定义.

73 {
74 {
75 std::lock_guard<std::mutex> g(this->lock_);
76 if (!this->init_) {
77 return;
78 }
79 this->init_ = false;
80 }
81 blocker_manager_ = nullptr;
82}

◆ Write() [1/2]

template<typename MessageT >
bool apollo::cyber::blocker::IntraWriter< MessageT >::Write ( const MessagePtr &  msg_ptr)
overridevirtual

Write a shared ptr of MessageT

参数
msg_ptrthe message shared ptr we want to write
返回
true if write successfully
false if write failed

重载 apollo::cyber::Writer< MessageT > .

在文件 intra_writer.h 第 94 行定义.

94 {
95 if (!WriterBase::IsInit()) {
96 return false;
97 }
98 return blocker_manager_->Publish<MessageT>(this->role_attr_.channel_name(),
99 msg_ptr);
100}
bool IsInit() const
Is Writer initialized?
Definition writer_base.h:99

◆ Write() [2/2]

template<typename MessageT >
bool apollo::cyber::blocker::IntraWriter< MessageT >::Write ( const MessageT &  msg)
overridevirtual

Write a MessageT instance

参数
msgthe message we want to write
返回
true if write successfully
false if write failed

重载 apollo::cyber::Writer< MessageT > .

在文件 intra_writer.h 第 85 行定义.

85 {
86 if (!WriterBase::IsInit()) {
87 return false;
88 }
89 return blocker_manager_->Publish<MessageT>(this->role_attr_.channel_name(),
90 msg);
91}

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