feat(client+eventloop): get arc reference to event loop in client

This commit is contained in:
Nova
2022-06-11 23:16:59 -04:00
parent 30a03f638f
commit d98dc1ee96
2 changed files with 27 additions and 11 deletions

View File

@@ -1,18 +1,22 @@
use super::eventloop::EventLoop;
use super::scenegraph::Scenegraph;
use crate::nodes::field;
use crate::nodes::spatial;
use libstardustxr::messenger::Messenger;
use mio::net::UnixStream;
use std::rc::Rc;
use std::sync::{Arc, Weak};
pub struct Client<'a> {
event_loop: Weak<EventLoop>,
messenger: Messenger<'a>,
scenegraph: Scenegraph<'a>,
}
impl<'a> Client<'a> {
pub fn from_connection(connection: UnixStream) -> Rc<Self> {
pub fn from_connection(connection: UnixStream, event_loop_ref: &Arc<EventLoop>) -> Rc<Self> {
let client = Rc::new(Client {
event_loop: Arc::downgrade(event_loop_ref),
messenger: Messenger::new(connection),
scenegraph: Default::default(),
});