@@ -18,28 +18,25 @@ impl Server {
1818 where
1919 T : Into < String > ,
2020 {
21- self . get_config ( ) . write ( ) . await . set_host ( host. into ( ) ) ;
21+ self . config . write ( ) . await . host = host . into ( ) ;
2222 self
2323 }
2424
2525 pub async fn port ( & mut self , port : usize ) -> & mut Self {
26- self . get_config ( ) . write ( ) . await . set_port ( port) ;
26+ self . config . write ( ) . await . port = port ;
2727 self
2828 }
2929
3030 pub async fn buffer ( & mut self , buffer_size : usize ) -> & mut Self {
31- self . get_config ( ) . write ( ) . await . set_buffer_size ( buffer_size) ;
31+ self . config . write ( ) . await . buffer_size = buffer_size ;
3232 self
3333 }
3434
3535 pub async fn error_handle < F > ( & self , func : F ) -> & Self
3636 where
3737 F : ErrorHandle + Send + Sync + ' static ,
3838 {
39- self . get_config ( )
40- . write ( )
41- . await
42- . set_error_handle ( Arc :: new ( func) ) ;
39+ self . config . write ( ) . await . error_handle = Arc :: new ( func) ;
4340 self
4441 }
4542
@@ -57,28 +54,28 @@ impl Server {
5754
5855 pub async fn run ( & mut self ) {
5956 self . init ( ) . await ;
60- let config: ServerConfig = self . get_config ( ) . read ( ) . await . clone ( ) ;
61- let host: String = config. get_host ( ) . to_owned ( ) ;
62- let port: usize = * config. get_port ( ) ;
57+ let config: ServerConfig = self . config . read ( ) . await . clone ( ) ;
58+ let host: String = config. host . clone ( ) ;
59+ let port: usize = config. port ;
6360 let addr: String = format ! ( "{}{}{}" , host, COLON_SPACE_SYMBOL , port) ;
6461 let socket: UdpSocket = UdpSocket :: bind ( & addr)
6562 . await
6663 . map_err ( |e| ServerError :: TcpBindError ( e. to_string ( ) ) )
6764 . unwrap ( ) ;
6865 let socket_arc_lock: ArcRwLockUdpSocket = ArcRwLockUdpSocket :: from_socket ( socket) ;
6966 loop {
70- let mut buf: Vec < u8 > = vec ! [ 0u8 ; * config. get_buffer_size ( ) ] ;
67+ let mut buf: Vec < u8 > = vec ! [ 0u8 ; config. buffer_size ] ;
7168 let socket_arc_lock: ArcRwLockUdpSocket = socket_arc_lock. clone ( ) ;
7269 let socket_lock: RwLockReadGuardUdpSocket = socket_arc_lock. get_read_lock ( ) . await ;
7370 let ( data_len, client_addr) = socket_lock. recv_from ( & mut buf) . await . unwrap ( ) ;
74- let func_list_arc_lock: ArcRwLockVecFuncBox = Arc :: clone ( self . get_func_list ( ) ) ;
71+ let func_list_arc_lock: ArcRwLockVecFuncBox = Arc :: clone ( & self . func_list ) ;
7572 let socket_clone: ArcRwLockUdpSocket = socket_arc_lock. clone ( ) ;
7673 let handle_request = move || async move {
7774 let request: Vec < u8 > = buf[ ..data_len] . to_vec ( ) ;
7875 let mut ctx: InnerContext = InnerContext :: new ( ) ;
79- ctx. set_socket ( Some ( socket_clone) )
80- . set_socket_addr ( Some ( client_addr) )
81- . set_request ( request) ;
76+ ctx. socket = Some ( socket_clone) ;
77+ ctx . socket_addr = Some ( client_addr) ;
78+ ctx . request = request;
8279 let ctx: Context = Context :: from_inner_context ( ctx) ;
8380 for func in func_list_arc_lock. read ( ) . await . iter ( ) {
8481 func ( ctx. clone ( ) ) . await ;
@@ -89,8 +86,7 @@ impl Server {
8986 }
9087
9188 async fn init_panic_hook ( & self ) {
92- let error_handle: ArcErrorHandle =
93- self . get_config ( ) . read ( ) . await . get_error_handle ( ) . clone ( ) ;
89+ let error_handle: ArcErrorHandle = self . config . read ( ) . await . error_handle . clone ( ) ;
9490 set_hook ( Box :: new ( move |err| {
9591 let data: String = err. to_string ( ) ;
9692 error_handle ( data) ;
0 commit comments