Struct runa_core::client::EventDispatcher
source · pub struct EventDispatcher<Ctx> { /* private fields */ }
Expand description
A reference implementation of the event dispatcher
Implementations§
source§impl<Ctx> EventDispatcher<Ctx>
impl<Ctx> EventDispatcher<Ctx>
source§impl<Ctx: Client + 'static> EventDispatcher<Ctx>
impl<Ctx: Client + 'static> EventDispatcher<Ctx>
sourcepub fn poll_next<'a>(
&'a mut self,
cx: &mut Context<'_>
) -> Poll<PendingEvent<'a, Ctx>>
pub fn poll_next<'a>( &'a mut self, cx: &mut Context<'_> ) -> Poll<PendingEvent<'a, Ctx>>
Poll for the next event, which needs to be handled with the use of the client context.
Caveats
If this is called from multiple tasks, those tasks will just keep waking up each other and waste CPU cycles.
sourcepub fn next(&mut self) -> impl FusedFuture<Output = PendingEvent<'_, Ctx>> + '_
pub fn next(&mut self) -> impl FusedFuture<Output = PendingEvent<'_, Ctx>> + '_
Wait for the next event from the event dispatcher. Returns a future that
resolves to a PendingEvent
, the caller should call
PendingEvent::handle
to handle the event.
sourcepub async fn handle_queued_events<'ctx>(
&'ctx mut self,
objects: &'ctx mut Ctx::ObjectStore,
connection: &'ctx mut Ctx::Connection,
server_context: &'ctx Ctx::ServerContext
) -> Result<(), Box<dyn Error + Send + Sync>>
pub async fn handle_queued_events<'ctx>( &'ctx mut self, objects: &'ctx mut Ctx::ObjectStore, connection: &'ctx mut Ctx::Connection, server_context: &'ctx Ctx::ServerContext ) -> Result<(), Box<dyn Error + Send + Sync>>
Handle all events that are current queued. The futures returned will resolve as soon as there are no more events queued in this event dispatcher. It will not wait for new events to be queued, but it may wait for the futures returned by the event handlers to resolve.
Trait Implementations§
source§impl<Ctx> Debug for EventDispatcher<Ctx>
impl<Ctx> Debug for EventDispatcher<Ctx>
source§impl<Ctx> Default for EventDispatcher<Ctx>
impl<Ctx> Default for EventDispatcher<Ctx>
source§impl<Ctx: Client + 'static> EventDispatcher<Ctx> for EventDispatcher<Ctx>
impl<Ctx: Client + 'static> EventDispatcher<Ctx> for EventDispatcher<Ctx>
source§fn add_event_handler<M: Any>(
&mut self,
event_source: impl Stream<Item = M> + 'static,
handler: impl EventHandler<Ctx, Message = M> + 'static
)
fn add_event_handler<M: Any>( &mut self, event_source: impl Stream<Item = M> + 'static, handler: impl EventHandler<Ctx, Message = M> + 'static )
Register an event handler Read more
Auto Trait Implementations§
impl<Ctx> !RefUnwindSafe for EventDispatcher<Ctx>
impl<Ctx> !Send for EventDispatcher<Ctx>
impl<Ctx> !Sync for EventDispatcher<Ctx>
impl<Ctx> Unpin for EventDispatcher<Ctx>
impl<Ctx> !UnwindSafe for EventDispatcher<Ctx>
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.