Interface NotificationService
-
- All Superinterfaces:
BindingAwareService
- All Known Subinterfaces:
NotificationProviderService
- All Known Implementing Classes:
AbstractBindingSalConsumerInstance,AbstractBindingSalProviderInstance,HeliumNotificationProviderServiceAdapter,HeliumNotificationProviderServiceWithInterestListeners,HeliumNotificationServiceAdapter,RootBindingAwareBroker.RootSalInstance
@Deprecated(forRemoval=true) public interface NotificationService extends BindingAwareService
Deprecated, for removal: This API element is subject to removal in a future version.Please useNotificationServiceinstead.Notification broker which allows clients to subscribe for and publish YANG-modeled notifications.Two styles of listeners are supported:
- Generic listener
- Dispatch listener - listener, which implements
{ModelName}Listenerinterface, which has dispatch methods for each defined notification. Methods are invoked based on notification type (class).
Generic Listener
A generic listener implements the
NotificationListenerinterface which has one callback methodonNotificationthat is invoked for any notification type the listener is subscribed to.A generic listener is subscribed using the
registerNotificationListener(Class, NotificationListener)method by which you specify the type of notification to receive. A generic listener may be registered for multiple notification types via multiple subscriptions.Generic listeners allow for a more flexible approach, allowing you to subscribe for just one type of notification from a YANG model. You could also have a general subscription for all notification in the system via
service.registerNotificationListener(Notification.class, listener);
Dispatch Listener
A dispatch listener implements a YANG-generated module interface
{ModuleName}Listenerwhich handles all the notifications defined in the YANG model. Each notification type translates to a specific method of the formon{NotificationType}on the generated interface. The generated interface also extends theNotificationListenerinterface and implementations are registered usingregisterNotificationListener(org.opendaylight.yangtools.yang.binding.NotificationListener)method.Dispatch Listener Example
Lets assume we have following YANG model:
module example { ... notification start { ... } notification stop { ... } }The generated interface will be:
public interface ExampleListener extends NotificationListener { void onStart(Start notification); void onStop(Stop notification); }The following defines an implementation of the generated interface:public class MyExampleListener implements ExampleListener { public void onStart(Start notification) { // do something } public void onStop(Stop notification) { // do something } }The implementation is registered as follows:MyExampleListener listener = new MyExampleListener(); ListenerRegistration<NotificationListener> reg = service.registerNotificationListener( listener );TheonStartmethod will be invoked when someone publishes aStartnotification and theonStopmethod will be invoked when someone publishes aStopnotification.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Deprecated Methods Modifier and Type Method Description <T extends Notification>
ListenerRegistration<NotificationListener<T>>registerNotificationListener(Class<T> notificationType, NotificationListener<T> listener)Deprecated, for removal: This API element is subject to removal in a future version.Registers a generic listener implementation for a specified notification type.ListenerRegistration<NotificationListener>registerNotificationListener(NotificationListener listener)Deprecated, for removal: This API element is subject to removal in a future version.Registers a listener which implements a YANG-generated notification interface derived fromNotificationListener.
-
-
-
Method Detail
-
registerNotificationListener
<T extends Notification> ListenerRegistration<NotificationListener<T>> registerNotificationListener(Class<T> notificationType, NotificationListener<T> listener)
Deprecated, for removal: This API element is subject to removal in a future version.Registers a generic listener implementation for a specified notification type.- Parameters:
notificationType- the YANG-generated interface of the notification type.listener- the listener implementation that will receive notifications.- Returns:
- a
ListenerRegistrationinstance that should be used to unregister the listener by invoking theListenerRegistration.close()method when no longer needed.
-
registerNotificationListener
ListenerRegistration<NotificationListener> registerNotificationListener(NotificationListener listener)
Deprecated, for removal: This API element is subject to removal in a future version.Registers a listener which implements a YANG-generated notification interface derived fromNotificationListener. The listener is registered for all notifications present in the implemented interface.- Parameters:
listener- the listener implementation that will receive notifications.- Returns:
- a
ListenerRegistrationinstance that should be used to unregister the listener by invoking theListenerRegistration.close()method when no longer needed.
-
-