Trait dbs_utils::epoll_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, Error>;
fn subscriber_mut(
&mut self,
subscriber_id: SubscriberId
) -> Result<&mut Self::Subscriber, Error>;
fn event_ops(
&mut self,
subscriber_id: SubscriberId
) -> Result<EventOps<'_>, Error>;
}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, Error>
fn remove_subscriber(
&mut self,
subscriber_id: SubscriberId
) -> Result<Self::Subscriber, Error>
Removes the subscriber corresponding to subscriber_id from the watch list.
sourcefn subscriber_mut(
&mut self,
subscriber_id: SubscriberId
) -> Result<&mut Self::Subscriber, Error>
fn subscriber_mut(
&mut self,
subscriber_id: SubscriberId
) -> Result<&mut Self::Subscriber, Error>
Returns a mutable reference to the subscriber corresponding to subscriber_id.