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}