Move create_client() to Server
Change-Id: I5c2dcbf654df2902734504f5c09d7241753da03a
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/croscomp/+/3497447
Reviewed-by: Lucas Berthou <berlu@chromium.org>
Commit-Queue: Kristian Kristensen <hoegsberg@chromium.org>
Tested-by: Kristian Kristensen <hoegsberg@chromium.org>
diff --git a/src/compositor.rs b/src/compositor.rs
index ae90702..a394a1b 100644
--- a/src/compositor.rs
+++ b/src/compositor.rs
@@ -3,7 +3,7 @@
// found in the LICENSE file.
use std::cell::RefCell;
-use std::os::unix::io::{AsRawFd, IntoRawFd, RawFd};
+use std::os::unix::io::{AsRawFd, IntoRawFd};
use std::os::unix::net::UnixStream;
use std::os::unix::process::CommandExt;
use std::process::Command;
@@ -253,10 +253,6 @@
};
}
- pub fn create_client(&self, fd: RawFd) -> *mut ffi::wl_client {
- unsafe { ffi::wl_client_create(self.server.native, fd) }
- }
-
pub fn launch_client(&mut self, path: &str) -> std::io::Result<*mut ffi::wl_client> {
let (client_stream, server_stream) = UnixStream::pair()?;
let fd = client_stream.as_raw_fd();
@@ -277,7 +273,7 @@
.spawn()?;
}
- Ok(self.create_client(server_stream.into_raw_fd()))
+ Ok(self.server.create_client(server_stream.into_raw_fd()))
}
pub fn wake(&mut self) {
diff --git a/src/main.rs b/src/main.rs
index 5b2a34a..58575d4 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -329,8 +329,8 @@
.server
.event_loop
.on_connect(sock, move |fd, _| {
- let compositor = rc.borrow_mut();
- compositor.create_client(fd);
+ let mut compositor = rc.borrow_mut();
+ compositor.server.create_client(fd);
});
let shell = Shell::new(&compositor);
diff --git a/src/server.rs b/src/server.rs
index f933dca..7925595 100644
--- a/src/server.rs
+++ b/src/server.rs
@@ -5,6 +5,7 @@
use log::debug;
use std::boxed::Box;
use std::marker::PhantomData;
+use std::os::unix::io::RawFd;
use std::rc::Rc;
use wayland_commons::MessageGroup;
@@ -353,6 +354,10 @@
}
}
+ pub fn create_client(&mut self, fd: RawFd) -> *mut ffi::wl_client {
+ unsafe { ffi::wl_client_create(self.native, fd) }
+ }
+
pub fn terminate(&mut self) {
todo!("terminate")
}