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§
Sourcefn 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 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.
Sourcefn 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 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.
Sourcefn 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,
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§
impl Notifier for MockNotifier
A client for sending Notification messages to a uEntity.
Please refer to the Communication Layer API Specifications.