-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathudp_forward_session.h
More file actions
34 lines (23 loc) · 942 Bytes
/
Copy pathudp_forward_session.h
File metadata and controls
34 lines (23 loc) · 942 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#pragma once
#include <asio.hpp>
#include "common.h"
class UDPForwardSession : public std::enable_shared_from_this<UDPForwardSession>
{
public:
UDPForwardSession(asio::ip::udp::socket & li_udp_socket, asio::ip::udp::socket dst_udp_socket, const asio::ip::udp::endpoint & src_endpoint, const asio::ip::udp::endpoint & dst_endpoint);
~UDPForwardSession();
std::function<void()> close_handle;
void do_read_data();
void on_udp_data(std::vector<uint8_t> && data);
std::chrono::steady_clock::time_point last_alive_timepoint() const;
void close();
private:
void on_close();
private:
asio::ip::udp::socket & m_li_udp_socket;
asio::ip::udp::socket m_dst_udp_socket;
asio::ip::udp::endpoint m_src_endpoint;
asio::ip::udp::endpoint m_dst_endpoint;
std::vector<uint8_t> m_recv_buffer;
std::chrono::steady_clock::time_point m_last_alive_time_point;
};