84 const OptionalMode& mode) ->
85 typename std::shared_ptr<Transmitter<M>> {
86 if (is_shutdown_.load()) {
87 AINFO <<
"transport has been shut down.";
91 std::shared_ptr<Transmitter<M>> transmitter =
nullptr;
93 if (!modified_attr.has_qos_profile()) {
94 modified_attr.mutable_qos_profile()->CopyFrom(
99 case OptionalMode::INTRA:
100 transmitter = std::make_shared<IntraTransmitter<M>>(modified_attr);
103 case OptionalMode::SHM:
104 transmitter = std::make_shared<ShmTransmitter<M>>(modified_attr);
107 case OptionalMode::RTPS:
109 std::make_shared<RtpsTransmitter<M>>(modified_attr, participant());
114 std::make_shared<HybridTransmitter<M>>(modified_attr, participant());
119 if (mode != OptionalMode::HYBRID) {
120 transmitter->Enable();
129 const OptionalMode& mode) ->
typename std::shared_ptr<Receiver<M>> {
130 if (is_shutdown_.load()) {
131 AINFO <<
"transport has been shut down.";
135 std::shared_ptr<Receiver<M>> receiver =
nullptr;
137 if (!modified_attr.has_qos_profile()) {
138 modified_attr.mutable_qos_profile()->CopyFrom(
143 case OptionalMode::INTRA:
145 std::make_shared<IntraReceiver<M>>(modified_attr, msg_listener);
148 case OptionalMode::SHM:
149 receiver = std::make_shared<ShmReceiver<M>>(modified_attr, msg_listener);
152 case OptionalMode::RTPS:
153 receiver = std::make_shared<RtpsReceiver<M>>(modified_attr, msg_listener);
157 receiver = std::make_shared<HybridReceiver<M>>(
158 modified_attr, msg_listener, participant());
163 if (mode != OptionalMode::HYBRID) {