Trait event_manager::SubscriberOps
source · pub trait SubscriberOps {
type Subscriber: MutEventSubscriber;
fn add_subscriber(&mut self, subscriber: Self::Subscriber) -> SubscriberId;
fn remove_subscriber(
&mut self,
subscriber_id: SubscriberId
) -> Result<Self::Subscriber>;
fn subscriber_mut(
&mut self,
subscriber_id: SubscriberId
) -> Result<&mut Self::Subscriber>;
fn event_ops(&mut self, subscriber_id: SubscriberId) -> Result<EventOps<'_>>;
}Expand description
API that allows users to add, remove, and interact with registered subscribers.
Required Associated Types
sourcetype Subscriber: MutEventSubscriber
type Subscriber: MutEventSubscriber
Subscriber type for which the operations apply.
Required Methods
sourcefn add_subscriber(&mut self, subscriber: Self::Subscriber) -> SubscriberId
fn add_subscriber(&mut self, subscriber: Self::Subscriber) -> SubscriberId
Registers a new subscriber and returns the ID associated with it.
Panics
This function might panic if the subscriber is already registered. Whether a panic is triggered depends on the implementation of Subscriber::init().
Typically, in the init function, the subscriber adds fds to its interest list. The same
fd cannot be added twice and the EventManager will return
Error::FdAlreadyRegistered. Using unwrap in init in this situation
triggers a panic.
sourcefn remove_subscriber(
&mut self,
subscriber_id: SubscriberId
) -> Result<Self::Subscriber>
fn remove_subscriber(
&mut self,
subscriber_id: SubscriberId
) -> Result<Self::Subscriber>
Removes the subscriber corresponding to subscriber_id from the watch list.
sourcefn subscriber_mut(
&mut self,
subscriber_id: SubscriberId
) -> Result<&mut Self::Subscriber>
fn subscriber_mut(
&mut self,
subscriber_id: SubscriberId
) -> Result<&mut Self::Subscriber>
Returns a mutable reference to the subscriber corresponding to subscriber_id.
sourcefn event_ops(&mut self, subscriber_id: SubscriberId) -> Result<EventOps<'_>>
fn event_ops(&mut self, subscriber_id: SubscriberId) -> Result<EventOps<'_>>
Creates an event operations wrapper for the subscriber corresponding to subscriber_id.
The event operations can be used to update the events monitored by the subscriber.