pub struct Client {
    pub input_dispatcher: InputDispatcher,
    pub xdg_surfaces: Vec<ObjectRef<XdgSurface>>,
    /* private fields */
}
Expand description

The state of a single client connection. Each client connection will have have its own zircon channel and its own set of protocol objects. The |Display| is the only piece of global state that is shared between clients.

Fields§

§input_dispatcher: InputDispatcher

Decode and dispatch Scenic input events.

§xdg_surfaces: Vec<ObjectRef<XdgSurface>>

XDG surfaces. Last surface created at the back.

Implementations§

source§

impl Client

source

pub fn new(chan: Channel, display: Display) -> Self

Creates a new client.

source

pub fn new_local( sender: UnboundedSender<MessageBuf>, receiver: UnboundedReceiver<MessageBuf>, display: Display ) -> Self

source

pub fn set_protocol_logging(&mut self, enabled: bool)

Enables or disables protocol message logging.

source

pub fn task_queue(&self) -> TaskQueue

Returns a object that can post messages to the Client.

source

pub fn event_queue(&self) -> &EventQueue

Returns an object that can post events back to the client.

source

pub fn start(self)

Spawns an async task that waits for messages to be received on the zircon channel, decodes the messages, and dispatches them to the corresponding |MessageReceiver|s.

source

pub fn display(&self) -> &Display

The Display for this client.

source

pub fn get_object<T: Any>(&self, id: ObjectId) -> Result<&T, ObjectLookupError>

Looks up an object in the map and returns a downcasted reference to the implementation.

source

pub fn try_get_object<T: Any>(&self, id: ObjectId) -> Option<&T>

Looks up an object in the map and returns a downcasted reference to the implementation, if it exists.

source

pub fn get_object_mut<T: Any>( &mut self, id: ObjectId ) -> Result<&mut T, ObjectLookupError>

Looks up an object in the map and returns a downcasted mutable reference to the implementation.

source

pub fn try_get_object_mut<T: Any>(&mut self, id: ObjectId) -> Option<&mut T>

Looks up an object in the map and returns a downcasted mutable reference to the implementation, if it exists.

source

pub fn add_object<I: Interface + 'static, R: RequestReceiver<I> + 'static>( &mut self, id: u32, receiver: R ) -> Result<ObjectRef<R>, Error>

Adds a new object into the map that will handle messages with the sender set to |id|. When a message is received with the corresponding |id|, the message will be decoded and forwarded to the |RequestReceiver|.

Returns Err if there is already an object for |id| in this |ObjectMap|.

source

pub fn add_object_raw( &mut self, id: ObjectId, receiver: Box<dyn MessageReceiver>, request_spec: &'static MessageGroupSpec ) -> Result<(), Error>

Adds an object to the map using the low-level primitives. It’s favorable to use instead |add_object| if the wayland interface for the object is statically known.

source

pub fn delete_id(&mut self, id: ObjectId) -> Result<(), Error>

Deletes the object id from the local object map and send a notification to the client confirming that id can be reused.

source

pub fn take_view_provider_request(&mut self) -> bool

Auto Trait Implementations§

§

impl Freeze for Client

§

impl !RefUnwindSafe for Client

§

impl !Send for Client

§

impl !Sync for Client

§

impl Unpin for Client

§

impl !UnwindSafe for Client

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> Encode<Ambiguous1> for T

source§

unsafe fn encode( self, _encoder: &mut Encoder<'_>, _offset: usize, _depth: Depth ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. Read more
source§

impl<T> Encode<Ambiguous2> for T

source§

unsafe fn encode( self, _encoder: &mut Encoder<'_>, _offset: usize, _depth: Depth ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
source§

impl<St> WithTag for St

source§

fn tagged<T>(self, tag: T) -> Tagged<T, St>

Produce a new stream from this one which yields item tupled with a constant tag