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