Struct wayland_server::ListeningSocket
source · [−]pub struct ListeningSocket { /* private fields */ }
Expand description
An utility representing a unix socket on which your compositor is listening for new clients
Implementations
sourceimpl ListeningSocket
impl ListeningSocket
sourcepub fn bind<S: AsRef<OsStr>>(socket_name: S) -> Result<Self, BindError>
pub fn bind<S: AsRef<OsStr>>(socket_name: S) -> Result<Self, BindError>
Attempt to bind a listening socket with given name
This method will acquire an associate lockfile. The socket will be created in the
directory pointed to by the XDG_RUNTIME_DIR
environment variable.
sourcepub fn bind_auto(
basename: &str,
range: impl IntoIterator<Item = usize>
) -> Result<Self, BindError>
pub fn bind_auto(
basename: &str,
range: impl IntoIterator<Item = usize>
) -> Result<Self, BindError>
Attempt to bind a listening socket from a sequence of names
This method will repeatedly try to bind sockets in teh form {basename}-{n}
for values of n
yielded from the provided range and returns the first one that succeeds.
This method will acquire an associate lockfile. The socket will be created in the
directory pointed to by the XDG_RUNTIME_DIR
environment variable.
sourcepub fn bind_absolute(socket_path: PathBuf) -> Result<Self, BindError>
pub fn bind_absolute(socket_path: PathBuf) -> Result<Self, BindError>
Attempt to bind a listening socket with given name
The socket will be created at the specified path, and this method will acquire an associatet lockfile alongside it.
sourcepub fn accept(&self) -> Result<Option<UnixStream>>
pub fn accept(&self) -> Result<Option<UnixStream>>
Try to accept a new connection to the listening socket
This method will never block, and return Ok(None)
if no new connection is available.
Trait Implementations
sourceimpl AsRawFd for ListeningSocket
impl AsRawFd for ListeningSocket
sourcefn as_raw_fd(&self) -> RawFd
fn as_raw_fd(&self) -> RawFd
Returns a file descriptor that may be polled for readiness.
This file descriptor may be polled using apis such as epoll and kqueue to be told when a client has found the socket and is trying to connect.
When the polling system reports the file descriptor is ready, you can use ListeningSocket::accept
to get a stream to the new client.
sourceimpl Debug for ListeningSocket
impl Debug for ListeningSocket
Auto Trait Implementations
impl RefUnwindSafe for ListeningSocket
impl Send for ListeningSocket
impl Sync for ListeningSocket
impl Unpin for ListeningSocket
impl UnwindSafe for ListeningSocket
Blanket Implementations
impl<T> AsRawFilelike for Twhere
T: AsRawFd,
impl<T> AsRawFilelike for Twhere
T: AsRawFd,
fn as_raw_filelike(&self) -> i32
fn as_raw_filelike(&self) -> i32
impl<T> AsRawSocketlike for Twhere
T: AsRawFd,
impl<T> AsRawSocketlike for Twhere
T: AsRawFd,
fn as_raw_socketlike(&self) -> i32
fn as_raw_socketlike(&self) -> i32
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
sourceimpl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
sourcefn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
. Read moresourcefn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read moresourcefn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read moresourcefn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read more