Apollo 10.0
自动驾驶开放平台
apollo::cyber::transport::Transport类 参考

#include <transport.h>

apollo::cyber::transport::Transport 的协作图:

Public 成员函数

virtual ~Transport ()
 
void Shutdown ()
 
template<typename M >
auto CreateTransmitter (const RoleAttributes &attr, const OptionalMode &mode=OptionalMode::HYBRID) -> typename std::shared_ptr< Transmitter< M > >
 
template<typename M >
auto CreateReceiver (const RoleAttributes &attr, const typename Receiver< M >::MessageListener &msg_listener, const OptionalMode &mode=OptionalMode::HYBRID) -> typename std::shared_ptr< Receiver< M > >
 
ParticipantPtr participant () const
 

详细描述

在文件 transport.h50 行定义.

构造及析构函数说明

◆ ~Transport()

apollo::cyber::transport::Transport::~Transport ( )
virtual

在文件 transport.cc35 行定义.

成员函数说明

◆ CreateReceiver()

template<typename M >
auto apollo::cyber::transport::Transport::CreateReceiver ( const RoleAttributes attr,
const typename Receiver< M >::MessageListener msg_listener,
const OptionalMode &  mode = OptionalMode::HYBRID 
) -> typename std::shared_ptr<Receiver<M>>

在文件 transport.h126 行定义.

129 {
130 if (is_shutdown_.load()) {
131 AINFO << "transport has been shut down.";
132 return nullptr;
133 }
134
135 std::shared_ptr<Receiver<M>> receiver = nullptr;
136 RoleAttributes modified_attr = attr;
137 if (!modified_attr.has_qos_profile()) {
138 modified_attr.mutable_qos_profile()->CopyFrom(
140 }
141
142 switch (mode) {
143 case OptionalMode::INTRA:
144 receiver =
145 std::make_shared<IntraReceiver<M>>(modified_attr, msg_listener);
146 break;
147
148 case OptionalMode::SHM:
149 receiver = std::make_shared<ShmReceiver<M>>(modified_attr, msg_listener);
150 break;
151
152 case OptionalMode::RTPS:
153 receiver = std::make_shared<RtpsReceiver<M>>(modified_attr, msg_listener);
154 break;
155
156 default:
157 receiver = std::make_shared<HybridReceiver<M>>(
158 modified_attr, msg_listener, participant());
159 break;
160 }
161
162 RETURN_VAL_IF_NULL(receiver, nullptr);
163 if (mode != OptionalMode::HYBRID) {
164 receiver->Enable();
165 }
166 return receiver;
167}
ParticipantPtr participant() const
Definition transport.h:67
#define RETURN_VAL_IF_NULL(ptr, val)
Definition log.h:98
#define AINFO
Definition log.h:42

◆ CreateTransmitter()

template<typename M >
auto apollo::cyber::transport::Transport::CreateTransmitter ( const RoleAttributes attr,
const OptionalMode &  mode = OptionalMode::HYBRID 
) -> typename std::shared_ptr<Transmitter<M>>

在文件 transport.h83 行定义.

85 {
86 if (is_shutdown_.load()) {
87 AINFO << "transport has been shut down.";
88 return nullptr;
89 }
90
91 std::shared_ptr<Transmitter<M>> transmitter = nullptr;
92 RoleAttributes modified_attr = attr;
93 if (!modified_attr.has_qos_profile()) {
94 modified_attr.mutable_qos_profile()->CopyFrom(
96 }
97
98 switch (mode) {
99 case OptionalMode::INTRA:
100 transmitter = std::make_shared<IntraTransmitter<M>>(modified_attr);
101 break;
102
103 case OptionalMode::SHM:
104 transmitter = std::make_shared<ShmTransmitter<M>>(modified_attr);
105 break;
106
107 case OptionalMode::RTPS:
108 transmitter =
109 std::make_shared<RtpsTransmitter<M>>(modified_attr, participant());
110 break;
111
112 default:
113 transmitter =
114 std::make_shared<HybridTransmitter<M>>(modified_attr, participant());
115 break;
116 }
117
118 RETURN_VAL_IF_NULL(transmitter, nullptr);
119 if (mode != OptionalMode::HYBRID) {
120 transmitter->Enable();
121 }
122 return transmitter;
123}

◆ participant()

ParticipantPtr apollo::cyber::transport::Transport::participant ( ) const
inline

在文件 transport.h67 行定义.

67{ return participant_; }

◆ Shutdown()

void apollo::cyber::transport::Transport::Shutdown ( )

在文件 transport.cc37 行定义.

37 {
38 if (is_shutdown_.exchange(true)) {
39 return;
40 }
41
42 intra_dispatcher_->Shutdown();
43 shm_dispatcher_->Shutdown();
44 rtps_dispatcher_->Shutdown();
45 notifier_->Shutdown();
46
47 if (participant_ != nullptr) {
48 participant_->Shutdown();
49 participant_ = nullptr;
50 }
51}

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