exocore_transport/http/
config.rs

1use std::time::Duration;
2
3use exocore_core::cell::LocalNode;
4use url::Url;
5
6use crate::Error;
7
8/// Configuration for HTTP transport.
9#[derive(Clone)]
10pub struct HttpTransportConfig {
11    pub listen_addresses: Vec<Url>,
12    pub handle_in_channel_size: usize,
13    pub handle_out_channel_size: usize,
14    pub request_timeout: Duration,
15}
16
17impl HttpTransportConfig {
18    pub fn listen_addresses(&self, local_node: &LocalNode) -> Result<Vec<Url>, Error> {
19        let mut conf_addresses = self.listen_addresses.clone();
20        let mut node_addresses = local_node.http_listen_addresses();
21
22        node_addresses.append(&mut conf_addresses);
23
24        Ok(node_addresses)
25    }
26}
27
28impl Default for HttpTransportConfig {
29    fn default() -> Self {
30        HttpTransportConfig {
31            listen_addresses: Vec::new(),
32            handle_in_channel_size: 1000,
33            handle_out_channel_size: 1000,
34            request_timeout: Duration::from_secs(5),
35        }
36    }
37}