1- use tokio:: sync:: mpsc ;
1+ use tokio:: sync:: broadcast :: Receiver ;
22
33use super :: event:: listener:: dispatch_events;
4- use super :: event:: sender:: { ChannelSender , Sender } ;
54use super :: event:: Event ;
65use super :: repository:: Repository ;
76
8- const CHANNEL_BUFFER_SIZE : usize = 65_535 ;
9-
107/// The service responsible for keeping tracker metrics (listening to statistics events and handle them).
118///
129/// It actively listen to new statistics events. When it receives a new event
@@ -29,31 +26,15 @@ impl Keeper {
2926 }
3027 }
3128
32- #[ must_use]
33- pub fn new_active_instance ( ) -> ( Box < dyn Sender > , Repository ) {
34- let mut stats_tracker = Self :: new ( ) ;
35-
36- let stats_event_sender = stats_tracker. run_event_listener ( ) ;
37-
38- ( stats_event_sender, stats_tracker. repository )
39- }
40-
41- pub fn run_event_listener ( & mut self ) -> Box < dyn Sender > {
42- let ( sender, receiver) = mpsc:: channel :: < Event > ( CHANNEL_BUFFER_SIZE ) ;
43-
29+ pub fn run_event_listener ( & mut self , receiver : Receiver < Event > ) {
4430 let stats_repository = self . repository . clone ( ) ;
4531
4632 tokio:: spawn ( async move { dispatch_events ( receiver, stats_repository) . await } ) ;
47-
48- Box :: new ( ChannelSender { sender } )
4933 }
5034}
5135
5236#[ cfg( test) ]
5337mod tests {
54- use std:: net:: { IpAddr , Ipv4Addr , SocketAddr } ;
55-
56- use crate :: statistics:: event:: { ConnectionContext , Event } ;
5738 use crate :: statistics:: keeper:: Keeper ;
5839 use crate :: statistics:: metrics:: Metrics ;
5940
@@ -65,22 +46,4 @@ mod tests {
6546
6647 assert_eq ! ( stats. udp4_announces_handled, Metrics :: default ( ) . udp4_announces_handled) ;
6748 }
68-
69- #[ tokio:: test]
70- async fn should_create_an_event_sender_to_send_statistical_events ( ) {
71- let mut stats_tracker = Keeper :: new ( ) ;
72-
73- let event_sender = stats_tracker. run_event_listener ( ) ;
74-
75- let result = event_sender
76- . send_event ( Event :: UdpConnect {
77- context : ConnectionContext :: new (
78- SocketAddr :: new ( IpAddr :: V4 ( Ipv4Addr :: new ( 203 , 0 , 113 , 195 ) ) , 8080 ) ,
79- SocketAddr :: new ( IpAddr :: V4 ( Ipv4Addr :: new ( 203 , 0 , 113 , 196 ) ) , 6969 ) ,
80- ) ,
81- } )
82- . await ;
83-
84- assert ! ( result. is_some( ) ) ;
85- }
8649}
0 commit comments