47 : public cyber::Component<> {
48 public:
49 UDPBridgeReceiverComponent();
50 ~UDPBridgeReceiverComponent();
51
53
54 std::string Name() const { return FLAGS_bridge_module_name; }
55 bool MsgHandle(int fd);
56
57 private:
58 bool InitSession(uint16_t port);
59 void MsgDispatcher();
60 bool IsProtoExist(const BridgeHeader &header);
61 BridgeProtoDiserializedBuf<T> *CreateBridgeProtoBuf(
62 const BridgeHeader &header);
63 bool IsTimeout(double time_stamp);
64 bool RemoveInvalidBuf(uint32_t msg_id);
65
66 private:
67 common::monitor::MonitorLogBuffer monitor_logger_buffer_;
68 unsigned int bind_port_ = 0;
69 std::string proto_name_ = "";
70 std::string topic_name_ = "";
71 bool enable_timeout_ = true;
72 std::shared_ptr<cyber::Writer<T>> writer_;
73 std::mutex mutex_;
74
75 std::shared_ptr<UDPListener<UDPBridgeReceiverComponent<T>>> listener_ =
76 std::make_shared<UDPListener<UDPBridgeReceiverComponent<T>>>();
77
78 std::vector<BridgeProtoDiserializedBuf<T> *> proto_list_;
79};
80
82}
83}
bool Init(const char *binary_name, const std::string &dag_info)
#define RECEIVER_BRIDGE_COMPONENT_REGISTER(pb_msg)