[−][src]Struct wayland_client::NewProxy
A newly-created proxy that needs implementation
Whenever a new wayland object is created, you will
receive it as a NewProxy
. You then have to provide an
implementation for it, in order to process the incoming
events it may receive. Once this done you will be able
to use it as a regular Proxy
.
Implementations are structs implementing the appropriate
variant of the Implementation
trait. They can also be
closures.
Methods
impl<I: Interface + 'static> NewProxy<I>
[src]
pub fn implement<F, UD>(self, implementation: F, user_data: UD) -> Proxy<I> where
F: FnMut(I::Event, Proxy<I>) + Send + 'static,
UD: Send + Sync + 'static,
I::Event: MessageGroup<Map = ProxyMap>,
[src]
F: FnMut(I::Event, Proxy<I>) + Send + 'static,
UD: Send + Sync + 'static,
I::Event: MessageGroup<Map = ProxyMap>,
Implement this proxy using given function and implementation data.
pub unsafe fn implement_nonsend<Impl, UD>(
self,
implementation: Impl,
user_data: UD,
queue: &QueueToken
) -> Proxy<I> where
Impl: FnMut(I::Event, Proxy<I>) + 'static,
UD: 'static,
I::Event: MessageGroup<Map = ProxyMap>,
[src]
self,
implementation: Impl,
user_data: UD,
queue: &QueueToken
) -> Proxy<I> where
Impl: FnMut(I::Event, Proxy<I>) + 'static,
UD: 'static,
I::Event: MessageGroup<Map = ProxyMap>,
Implement this proxy using given function and implementation data.
This method allows the implementation to not be Send
, but requires for
safety that you provide a token to the event queue this proxy will be implemented
on. This method will then ensure that this proxy is registered on this event queue,
so that it cannot be dispatched from an other thread.
Unsafety:
This call can be racy if the proxy is not already registered on this event queue and its old queue is being dispatched from an other thread.
To ensure safety, see Proxy::make_wrapper
.
impl<I: Interface + 'static> NewProxy<I>
[src]
pub fn c_ptr(&self) -> *mut wl_proxy
[src]
Get a raw pointer to the underlying wayland object
Retrieve a pointer to the object from the libwayland-client.so
library.
You will mostly need it to interface with C libraries needing access
to wayland objects (to initialize an opengl context for example).
Use this if you need to pass an unimplemented object to the C library you are interfacing with.
pub unsafe fn from_c_ptr(ptr: *mut wl_proxy) -> Self
[src]
Create a NewProxy
instance from a C pointer.
By doing so, you assert that this wayland object was newly created and can be safely implemented. As implementing it will overwrite any previously associated data or implementation, this can cause weird errors akin to memory corruption if it was not the case.
Auto Trait Implementations
impl<I> !Send for NewProxy<I>
impl<I> Unpin for NewProxy<I>
impl<I> !Sync for NewProxy<I>
impl<I> UnwindSafe for NewProxy<I> where
I: RefUnwindSafe,
I: RefUnwindSafe,
impl<I> RefUnwindSafe for NewProxy<I> where
I: RefUnwindSafe,
I: RefUnwindSafe,
Blanket Implementations
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From<T> for T
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,