diff --git a/f9/src/app.rs b/f9/src/app.rs index 4d3b7aa..3df8be5 100644 --- a/f9/src/app.rs +++ b/f9/src/app.rs @@ -33,9 +33,9 @@ pub struct HttpContext { id: u64, query_str: String, add_tick: i64, - handled: bool, + pub handled: bool, //not_found: bool, - rsp: String + pub rsp: String } #[derive(SharedFromSelf)] @@ -49,7 +49,7 @@ pub struct App { im_msgs: Rc::>>, im_work_msgs: Rc::>>, im_mutex: Mutex, - http_handlers: HashMap>, + http_handlers: HashMap>, //http_handlers: HashMap>, webapp_state: Arc::, } @@ -143,26 +143,25 @@ impl App { } } - pub fn init(&mut self, user_app: Rc::>) { - println!("main.thread.id {:?}", std::thread::current().id()); - self.user_app = Some(user_app); - self.tokio_rt.enter(); - self.init_http_server(); + pub fn init(user_app: Rc::>) { + App::instance().borrow_mut().user_app = Some(user_app.clone()); + App::instance().borrow_mut().tokio_rt.enter(); + App::instance().borrow_mut().init_http_server(); crate::Timer::instance().borrow_mut().init(); - self.user_app.as_ref().unwrap().borrow_mut().init(); + user_app.borrow_mut().init(); } - pub fn uninit(&mut self) { - self.user_app.as_ref().unwrap().borrow_mut().uninit(); + pub fn uninit() { + //.user_app.as_ref().unwrap().borrow_mut().uninit(); crate::Timer::instance().borrow_mut().uninit(); } - pub fn run(&mut self) { + pub fn run() { loop { crate::Timer::instance().borrow_mut().update(); std::thread::sleep(Duration::from_millis(1)); - self.dispatch_immsg(); - self.dispatch_httprequest(); + //self.dispatch_immsg(); + //self.dispatch_httprequest(); } } @@ -252,7 +251,7 @@ impl App { let key = format!("{}${}", &req.c, &req.a); match self.http_handlers.get_mut(&key) { Some(v1) => { - (v1)(&ctx); + (v1)(ctx); ctx.handled = true; } None => { @@ -279,7 +278,7 @@ impl App { }); } - pub fn add_http_handler(&mut self, key: String, cb: Box::) { + pub fn add_http_handler(&mut self, key: String, cb: Box::) { self.http_handlers.insert(key, cb); }