Apollo
10.0
自动驾驶开放平台
udp_bridge_sender_component.h
浏览该文件的文档.
1
/******************************************************************************
2
* Copyright 2019 The Apollo Authors. All Rights Reserved.
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*****************************************************************************/
16
17
#pragma once
18
19
#include <netinet/in.h>
20
#include <sys/socket.h>
21
22
#include <cstdlib>
23
#include <iostream>
24
#include <memory>
25
#include <string>
26
#include <vector>
27
28
#include "modules/bridge/proto/udp_bridge_remote_info.pb.h"
29
#include "modules/common_msgs/planning_msgs/planning.pb.h"
30
31
#include "
cyber/class_loader/class_loader.h
"
32
#include "
cyber/component/component.h
"
33
#include "
cyber/cyber.h
"
34
#include "
cyber/init.h
"
35
#include "
cyber/io/session.h
"
36
#include "
cyber/scheduler/scheduler_factory.h
"
37
#include "
modules/bridge/common/bridge_gflags.h
"
38
#include "
modules/common/monitor_log/monitor_log_buffer.h
"
39
#include "
modules/common/util/util.h
"
40
41
namespace
apollo
{
42
namespace
bridge {
43
44
#define BRIDGE_COMPONENT_REGISTER(pb_msg) \
45
CYBER_REGISTER_COMPONENT(UDPBridgeSenderComponent<pb_msg>)
46
47
template
<
typename
T>
48
class
UDPBridgeSenderComponent
final :
public
cyber::Component
<T> {
49
public
:
50
UDPBridgeSenderComponent
()
51
: monitor_logger_buffer_(common::monitor::MonitorMessageItem::CONTROL) {}
52
53
bool
Init
()
override
;
54
bool
Proc
(
const
std::shared_ptr<T> &pb_msg)
override
;
55
56
std::string
Name
()
const
{
return
FLAGS_bridge_module_name; }
57
58
private
:
59
common::monitor::MonitorLogBuffer
monitor_logger_buffer_;
60
unsigned
int
remote_port_ = 0;
61
std::string remote_ip_ =
""
;
62
std::string proto_name_ =
""
;
63
std::mutex mutex_;
64
};
65
66
BRIDGE_COMPONENT_REGISTER
(
planning::ADCTrajectory
)
67
BRIDGE_COMPONENT_REGISTER
(
localization::LocalizationEstimate
)
68
69
}
// namespace bridge
70
}
// namespace apollo
bridge_gflags.h
class_loader.h
apollo::bridge::UDPBridgeSenderComponent
Definition
udp_bridge_sender_component.h:48
apollo::bridge::UDPBridgeSenderComponent::Name
std::string Name() const
Definition
udp_bridge_sender_component.h:56
apollo::bridge::UDPBridgeSenderComponent::Proc
bool Proc(const std::shared_ptr< T > &pb_msg) override
Definition
udp_bridge_sender_component.cc:50
apollo::bridge::UDPBridgeSenderComponent::Init
bool Init() override
Definition
udp_bridge_sender_component.cc:33
apollo::bridge::UDPBridgeSenderComponent::UDPBridgeSenderComponent
UDPBridgeSenderComponent()
Definition
udp_bridge_sender_component.h:50
apollo::common::monitor::MonitorLogBuffer
class MonitorLogBuffer
Definition
monitor_log_buffer.h:60
apollo::cyber::Component
Definition
component.h:60
component.h
cyber.h
init.h
util.h
Some util functions.
monitor_log_buffer.h
The class of MonitorLogBuffer
apollo
class register implement
Definition
arena_queue.h:37
scheduler_factory.h
session.h
apollo::localization::LocalizationEstimate
Definition
localization.proto:48
apollo::planning::ADCTrajectory
Definition
planning.proto:69
BRIDGE_COMPONENT_REGISTER
#define BRIDGE_COMPONENT_REGISTER(pb_msg)
Definition
udp_bridge_sender_component.h:44
modules
bridge
udp_bridge_sender_component.h