rpc_core_net/
config.rs

1use std::rc::Rc;
2
3pub struct TcpConfig {
4    pub auto_pack: bool,
5    pub enable_ipv6: bool,
6    pub max_body_size: u32,
7    pub max_send_buffer_size: u32,
8    pub socket_send_buffer_size: u32,
9    pub socket_recv_buffer_size: u32,
10}
11
12impl TcpConfig {
13    pub fn new() -> Self {
14        Self {
15            auto_pack: false,
16            enable_ipv6: false,
17            max_body_size: 0,
18            max_send_buffer_size: 0,
19            socket_send_buffer_size: 0,
20            socket_recv_buffer_size: 0,
21        }
22    }
23}
24
25impl TcpConfig {
26    pub fn init(&mut self) {
27        if !self.auto_pack && self.max_body_size == std::u32::MAX {
28            self.max_body_size = 1024;
29        }
30    }
31}
32
33pub struct RpcConfig {
34    pub rpc: Option<Rc<rpc_core::rpc::Rpc>>,
35    pub ping_interval_ms: u32,
36    pub pong_timeout_ms: u32,
37    pub enable_ipv6: bool,
38    pub max_body_size: u32,
39    pub max_send_buffer_size: u32,
40    pub socket_send_buffer_size: u32,
41    pub socket_recv_buffer_size: u32,
42}
43
44impl RpcConfig {
45    pub fn to_tcp_config(&self) -> TcpConfig {
46        TcpConfig {
47            auto_pack: true,
48            enable_ipv6: self.enable_ipv6,
49            max_body_size: self.max_body_size,
50            max_send_buffer_size: self.max_send_buffer_size,
51            socket_send_buffer_size: self.socket_send_buffer_size,
52            socket_recv_buffer_size: self.socket_recv_buffer_size,
53        }
54    }
55}