forked from torrust/torrust-tracker
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcontainer.rs
More file actions
25 lines (20 loc) · 937 Bytes
/
container.rs
File metadata and controls
25 lines (20 loc) · 937 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
use std::sync::Arc;
use torrust_tracker_configuration::Core;
use crate::statistics;
pub struct UdpTrackerServerContainer {
pub udp_server_stats_event_sender: Arc<Option<Box<dyn statistics::event::sender::Sender>>>,
pub udp_server_stats_repository: Arc<statistics::repository::Repository>,
}
impl UdpTrackerServerContainer {
#[must_use]
pub fn initialize(core_config: &Arc<Core>) -> Arc<Self> {
let (udp_server_stats_event_sender, udp_server_stats_repository) =
statistics::setup::factory(core_config.tracker_usage_statistics);
let udp_server_stats_event_sender = Arc::new(udp_server_stats_event_sender);
let udp_server_stats_repository = Arc::new(udp_server_stats_repository);
Arc::new(Self {
udp_server_stats_event_sender: udp_server_stats_event_sender.clone(),
udp_server_stats_repository: udp_server_stats_repository.clone(),
})
}
}