1- use std:: any:: Any ;
21use std:: collections:: HashMap ;
32use crossbeam:: channel:: { Receiver , Sender } ;
43use uuid:: Uuid ;
54use wg_internal:: network:: NodeId ;
65use wg_internal:: packet:: { NodeType , Packet } ;
76use common:: { FragmentAssembler , RoutingHandler } ;
87use common:: packet_processor:: Processor ;
9- use common:: types:: { MediaFile , NodeCommand , ServerType , WebCommand , WebEvent , WebRequest , WebResponse } ;
8+ use common:: types:: { Command , Event , MediaFile , NodeCommand , ServerType , WebCommand , WebEvent , WebRequest , WebResponse } ;
109use common:: file_conversion;
1110
1211pub struct MediaServer {
1312 routing_handler : RoutingHandler ,
14- controller_recv : Receiver < Box < dyn Any > > ,
15- controller_send : Sender < Box < dyn Any > > ,
13+ controller_recv : Receiver < Box < dyn Command > > ,
14+ controller_send : Sender < Box < dyn Event > > ,
1615 packet_recv : Receiver < Packet > ,
1716 _id : NodeId ,
1817 assembler : FragmentAssembler ,
@@ -24,8 +23,8 @@ impl MediaServer {
2423 id : NodeId ,
2524 neighbors : HashMap < NodeId , Sender < Packet > > ,
2625 packet_recv : Receiver < Packet > ,
27- controller_recv : Receiver < Box < dyn Any > > ,
28- controller_send : Sender < Box < dyn Any > >
26+ controller_recv : Receiver < Box < dyn Command > > ,
27+ controller_send : Sender < Box < dyn Event > >
2928 ) -> Self {
3029 let router = RoutingHandler :: new ( id, NodeType :: Server , neighbors, controller_send. clone ( ) ) ;
3130 Self {
@@ -64,7 +63,7 @@ impl MediaServer {
6463}
6564
6665impl Processor for MediaServer {
67- fn controller_recv ( & self ) -> & Receiver < Box < dyn Any > > {
66+ fn controller_recv ( & self ) -> & Receiver < Box < dyn Command > > {
6867 & self . controller_recv
6968 }
7069
@@ -119,7 +118,8 @@ impl Processor for MediaServer {
119118 }
120119 }
121120
122- fn handle_command ( & mut self , cmd : Box < dyn Any > ) -> bool {
121+ fn handle_command ( & mut self , cmd : Box < dyn Command > ) -> bool {
122+ let cmd = cmd. into_any ( ) ;
123123 if let Some ( cmd) = cmd. downcast_ref :: < NodeCommand > ( ) {
124124 match cmd {
125125 NodeCommand :: AddSender ( node_id, sender) => self . routing_handler . add_neighbor ( * node_id, sender. clone ( ) ) ,
@@ -137,7 +137,7 @@ impl Processor for MediaServer {
137137 return true ;
138138 }
139139 }
140- WebCommand :: GetMediaFile { media_id, location} => {
140+ WebCommand :: GetMediaFile { media_id, location : _location } => {
141141 if let Some ( media_file) = self . get_media_by_id ( * media_id) {
142142 if self . controller_send
143143 . send ( Box :: new ( WebEvent :: MediaFile ( media_file. clone ( ) ) ) )
@@ -240,20 +240,22 @@ mod media_server_tests {
240240 #[ test]
241241 fn test_media_server_creation ( ) {
242242 let ( controller_send, controller_recv) = unbounded ( ) ;
243+ let ( event_send, _event_recv) = unbounded :: < Box < dyn Event > > ( ) ;
243244 let ( _, packet_recv) = unbounded ( ) ;
244245
245- let server = MediaServer :: new ( 1 , HashMap :: new ( ) , packet_recv, controller_recv, controller_send ) ;
246+ let server = MediaServer :: new ( 1 , HashMap :: new ( ) , packet_recv, controller_recv, event_send ) ;
246247
247- assert_eq ! ( server. id , 1 ) ;
248+ assert_eq ! ( server. _id , 1 ) ;
248249 assert ! ( server. stored_media. is_empty( ) ) ;
249250 }
250251
251252 #[ test]
252253 fn test_get_media_list ( ) {
253254 let ( controller_send, controller_recv) = unbounded ( ) ;
255+ let ( event_send, _event_recv) = unbounded :: < Box < dyn Event > > ( ) ;
254256 let ( _, packet_recv) = unbounded ( ) ;
255257
256- let mut server = MediaServer :: new ( 1 , HashMap :: new ( ) , packet_recv, controller_recv, controller_send ) ;
258+ let mut server = MediaServer :: new ( 1 , HashMap :: new ( ) , packet_recv, controller_recv, event_send ) ;
257259 let test_media = MediaFile :: new (
258260 "test_image.png" . to_string ( ) ,
259261 vec ! [ vec![ 0x89 , 0x50 , 0x4E , 0x47 ] ]
@@ -268,9 +270,10 @@ mod media_server_tests {
268270 #[ test]
269271 fn test_add_and_retrieve_media ( ) {
270272 let ( controller_send, controller_recv) = unbounded ( ) ;
273+ let ( event_send, _event_recv) = unbounded :: < Box < dyn Event > > ( ) ;
271274 let ( _, packet_recv) = unbounded ( ) ;
272275
273- let mut server = MediaServer :: new ( 1 , HashMap :: new ( ) , packet_recv, controller_recv, controller_send ) ;
276+ let mut server = MediaServer :: new ( 1 , HashMap :: new ( ) , packet_recv, controller_recv, event_send ) ;
274277
275278 let test_media = MediaFile :: new (
276279 "test_image.png" . to_string ( ) ,
0 commit comments