Struct runa_orbiter::objects::shm::ShmPool   
source · pub struct ShmPool { /* private fields */ }Expand description
A shm memory pool.
Implementations§
source§impl ShmPool
 
impl ShmPool
sourcepub unsafe fn map(&self) -> Ref<'_, [u8]>
 
pub unsafe fn map(&self) -> Ref<'_, [u8]>
Map the pool into memory.
This can be called repeatedly to retrieve the slice whenever you need it. The map operation is only performed once.
Safety
The file descriptor MUST be suitable for mapping.
You MUST setup a SIGBUS handler that calls handle_sigbus. Otherwise if
the client shrunk the pool after you have mapped it, you will get a
SIGBUS when accessing the removed section of memory. handle_sigbus
will automatcally map in zero pages in that case.
Trait Implementations§
source§impl MonoObject for ShmPool
 
impl MonoObject for ShmPool
§type SingletonState = ()
 
type SingletonState = ()
A singleton state associated with the object type. This state is
associated with the type, so there is only one instance of
the state for all objects of the same type. The lifetime of this
state is managed by the object store, and it will be dropped when
the last object of the type is dropped.
source§const INTERFACE: &'static str = wl_shm_pool::NAME
 
const INTERFACE: &'static str = wl_shm_pool::NAME
The wayland interface implemented by this object.
source§fn new_singleton_state() -> Self::SingletonState
 
fn new_singleton_state() -> Self::SingletonState
Create a new instance of the singleton state.
source§impl<B, Ctx> Object<Ctx> for ShmPoolwhere
    Ctx: Client,
    Ctx::ServerContext: HasBuffer<Buffer = B>,
    B: From<Buffer<Buffer>> + BufferLike,
    Ctx::Object: From<Buffer<B>>,
 
impl<B, Ctx> Object<Ctx> for ShmPoolwhere Ctx: Client, Ctx::ServerContext: HasBuffer<Buffer = B>, B: From<Buffer<Buffer>> + BufferLike, Ctx::Object: From<Buffer<B>>,
§type Request<'a>
where
         Ctx: 'a = Request
 
type Request<'a> where Ctx: 'a = Request
The type of wayland messages that this object can receive.
This is what the 
dispatch method accepts.§type Fut<'a>
where
         Ctx: 'a = impl Future<Output = (Result<(), <ShmPool as Object<Ctx>>::Error>, usize, usize)> + 'a
 
type Fut<'a> where Ctx: 'a = impl Future<Output = (Result<(), <ShmPool as Object<Ctx>>::Error>, usize, usize)> + 'a
The future type returned by the 
dispatch method.source§fn dispatch<'a>(
    ctx: &'a mut Ctx,
    object_id: u32,
    msg: Self::Request<'a>
) -> Self::Fut<'a>
 
fn dispatch<'a>( ctx: &'a mut Ctx, object_id: u32, msg: Self::Request<'a> ) -> Self::Fut<'a>
Dispatch a wayland request to this object. Returns a future,
that resolves to (Result, usize, usize), which are the result of the
request, the number of bytes and file descriptors in the request,
respectively.
source§fn on_disconnect(
    &mut self,
    _server_ctx: &mut <Ctx as Client>::ServerContext,
    _state: &mut (dyn Any + 'static)
)
 
fn on_disconnect( &mut self, _server_ctx: &mut <Ctx as Client>::ServerContext, _state: &mut (dyn Any + 'static) )
A function that will be called when the client disconnects. It should
free up allocated resources if any. This function only gets reference to
the server context, because: Read more
source§impl<B, Ctx> RequestDispatch<Ctx> for ShmPoolwhere
    Ctx: Client,
    Ctx::ServerContext: HasBuffer<Buffer = B>,
    B: From<Buffer<Buffer>> + BufferLike,
    Ctx::Object: From<Buffer<B>>,
 
impl<B, Ctx> RequestDispatch<Ctx> for ShmPoolwhere Ctx: Client, Ctx::ServerContext: HasBuffer<Buffer = B>, B: From<Buffer<Buffer>> + BufferLike, Ctx::Object: From<Buffer<B>>,
type Error = Error
§type CreateBufferFut<'a>
where
         Ctx: 'a = impl Future<Output = Result<(), Error>> + 'a
 
type CreateBufferFut<'a> where Ctx: 'a = impl Future<Output = Result<(), Error>> + 'a
Type of future returned by 
create_buffer§type DestroyFut<'a>
where
         Ctx: 'a = impl Future<Output = Result<(), Error>> + 'a
 
type DestroyFut<'a> where Ctx: 'a = impl Future<Output = Result<(), Error>> + 'a
Type of future returned by 
destroy§type ResizeFut<'a>
where
         Ctx: 'a = impl Future<Output = Result<(), Error>> + 'a
 
type ResizeFut<'a> where Ctx: 'a = impl Future<Output = Result<(), Error>> + 'a
Type of future returned by 
resizeAuto Trait Implementations§
impl !RefUnwindSafe for ShmPool
impl !Send for ShmPool
impl !Sync for ShmPool
impl Unpin for ShmPool
impl !UnwindSafe for ShmPool
Blanket Implementations§
source§impl<T> CheckedAs for T
 
impl<T> CheckedAs for T
source§fn checked_as<Dst>(self) -> Option<Dst>where
    T: CheckedCast<Dst>,
 
fn checked_as<Dst>(self) -> Option<Dst>where T: CheckedCast<Dst>,
Casts the value.
source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
    Src: CheckedCast<Dst>,
 
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere Src: CheckedCast<Dst>,
source§fn checked_cast_from(src: Src) -> Option<Dst>
 
fn checked_cast_from(src: Src) -> Option<Dst>
Casts the value.
source§impl<T> Instrument for T
 
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
 
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
 
fn in_current_span(self) -> Instrumented<Self>
source§impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
    Dst: LosslessTryFrom<Src>,
 
impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere Dst: LosslessTryFrom<Src>,
source§fn lossless_try_into(self) -> Option<Dst>
 
fn lossless_try_into(self) -> Option<Dst>
Performs the conversion.
source§impl<Src, Dst> LossyInto<Dst> for Srcwhere
    Dst: LossyFrom<Src>,
 
impl<Src, Dst> LossyInto<Dst> for Srcwhere Dst: LossyFrom<Src>,
source§fn lossy_into(self) -> Dst
 
fn lossy_into(self) -> Dst
Performs the conversion.
source§impl<T> OverflowingAs for T
 
impl<T> OverflowingAs for T
source§fn overflowing_as<Dst>(self) -> (Dst, bool)where
    T: OverflowingCast<Dst>,
 
fn overflowing_as<Dst>(self) -> (Dst, bool)where T: OverflowingCast<Dst>,
Casts the value.
source§impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
    Src: OverflowingCast<Dst>,
 
impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere Src: OverflowingCast<Dst>,
source§fn overflowing_cast_from(src: Src) -> (Dst, bool)
 
fn overflowing_cast_from(src: Src) -> (Dst, bool)
Casts the value.
source§impl<T> SaturatingAs for T
 
impl<T> SaturatingAs for T
source§fn saturating_as<Dst>(self) -> Dstwhere
    T: SaturatingCast<Dst>,
 
fn saturating_as<Dst>(self) -> Dstwhere T: SaturatingCast<Dst>,
Casts the value.
source§impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
    Src: SaturatingCast<Dst>,
 
impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere Src: SaturatingCast<Dst>,
source§fn saturating_cast_from(src: Src) -> Dst
 
fn saturating_cast_from(src: Src) -> Dst
Casts the value.
source§impl<T> UnwrappedAs for T
 
impl<T> UnwrappedAs for T
source§fn unwrapped_as<Dst>(self) -> Dstwhere
    T: UnwrappedCast<Dst>,
 
fn unwrapped_as<Dst>(self) -> Dstwhere T: UnwrappedCast<Dst>,
Casts the value.
source§impl<Src, Dst> UnwrappedCastFrom<Src> for Dstwhere
    Src: UnwrappedCast<Dst>,
 
impl<Src, Dst> UnwrappedCastFrom<Src> for Dstwhere Src: UnwrappedCast<Dst>,
source§fn unwrapped_cast_from(src: Src) -> Dst
 
fn unwrapped_cast_from(src: Src) -> Dst
Casts the value.
source§impl<T> WithSubscriber for T
 
impl<T> WithSubscriber for T
source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
    S: Into<Dispatch>,
 
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,
source§fn with_current_subscriber(self) -> WithDispatch<Self>
 
fn with_current_subscriber(self) -> WithDispatch<Self>
source§impl<T> WrappingAs for T
 
impl<T> WrappingAs for T
source§fn wrapping_as<Dst>(self) -> Dstwhere
    T: WrappingCast<Dst>,
 
fn wrapping_as<Dst>(self) -> Dstwhere T: WrappingCast<Dst>,
Casts the value.
source§impl<Src, Dst> WrappingCastFrom<Src> for Dstwhere
    Src: WrappingCast<Dst>,
 
impl<Src, Dst> WrappingCastFrom<Src> for Dstwhere Src: WrappingCast<Dst>,
source§fn wrapping_cast_from(src: Src) -> Dst
 
fn wrapping_cast_from(src: Src) -> Dst
Casts the value.