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 useNotificationService
instead.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}Listener
interface, which has dispatch methods for each defined notification. Methods are invoked based on notification type (class).
Generic Listener
A generic listener implements the
NotificationListener
interface which has one callback methodonNotification
that 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}Listener
which 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 theNotificationListener
interface 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 );
TheonStart
method will be invoked when someone publishes aStart
notification and theonStop
method will be invoked when someone publishes aStop
notification.
-
-
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
ListenerRegistration
instance 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
ListenerRegistration
instance that should be used to unregister the listener by invoking theListenerRegistration.close()
method when no longer needed.
-
-