Skip to main content

Notifier

Trait Notifier 

Source
pub trait Notifier: Send + Sync {
    // Required methods
    fn notify<'life0, 'life1, 'async_trait>(
        &'life0 self,
        resource_id: u16,
        destination: &'life1 UUri,
        call_options: CallOptions,
        payload: Option<UPayload>,
    ) -> Pin<Box<dyn Future<Output = Result<(), NotificationError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn start_listening<'life0, 'life1, 'async_trait>(
        &'life0 self,
        topic: &'life1 UUri,
        listener: Arc<dyn UListener>,
    ) -> Pin<Box<dyn Future<Output = Result<(), RegistrationError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn stop_listening<'life0, 'life1, 'async_trait>(
        &'life0 self,
        topic: &'life1 UUri,
        listener: Arc<dyn UListener>,
    ) -> Pin<Box<dyn Future<Output = Result<(), RegistrationError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
}
Expand description

A client for sending Notification messages to a uEntity.

Please refer to the Communication Layer API Specifications.

Required Methods§

Source

fn notify<'life0, 'life1, 'async_trait>( &'life0 self, resource_id: u16, destination: &'life1 UUri, call_options: CallOptions, payload: Option<UPayload>, ) -> Pin<Box<dyn Future<Output = Result<(), NotificationError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Sends a notification to a uEntity.

§Arguments
  • resource_id - The (local) resource identifier representing the origin of the notification.
  • destination - A URI representing the uEntity that the notification should be sent to.
  • call_options - Options to include in the notification message.
  • payload - The payload to include in the notification message.
§Errors

Returns an error if the given message is not a valid uProtocol Notification message.

Source

fn start_listening<'life0, 'life1, 'async_trait>( &'life0 self, topic: &'life1 UUri, listener: Arc<dyn UListener>, ) -> Pin<Box<dyn Future<Output = Result<(), RegistrationError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Starts listening to a notification topic.

More than one handler can be registered for the same topic. The same handler can be registered for multiple topics.

§Arguments
  • topic - The topic to listen to. The topic must not contain any wildcards.
  • listener - The handler to invoke for each notification that has been sent on the topic.
§Errors

Returns an error if the listener cannot be registered.

Source

fn stop_listening<'life0, 'life1, 'async_trait>( &'life0 self, topic: &'life1 UUri, listener: Arc<dyn UListener>, ) -> Pin<Box<dyn Future<Output = Result<(), RegistrationError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Deregisters a previously registered handler for listening to notifications.

§Arguments
  • topic - The topic that the handler had been registered for.
  • listener - The handler to unregister.
§Errors

Returns an error if the listener cannot be unregistered.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl Notifier for MockNotifier

A client for sending Notification messages to a uEntity.

Source§

impl Notifier for SimpleNotifier