NotificationService
instead.@Deprecated public interface NotificationService extends BindingAwareService
Two styles of listeners are supported:
{ModelName}Listener
interface,
which has dispatch methods for each defined notification. Methods are invoked based on notification type (class).
A generic listener implements the NotificationListener
interface which has one callback method
onNotification
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);
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 form on{NotificationType}
on the generated interface.
The generated interface also extends the
NotificationListener
interface and implementations
are registered using
registerNotificationListener(org.opendaylight.yangtools.yang.binding.NotificationListener)
method.
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 );
The onStart
method will be invoked when someone publishes a Start
notification and
the onStop
method will be invoked when someone publishes a Stop
notification.
Modifier and Type | Method and Description |
---|---|
<T extends org.opendaylight.yangtools.yang.binding.Notification> |
registerNotificationListener(Class<T> notificationType,
NotificationListener<T> listener)
Deprecated.
Registers a generic listener implementation for a specified notification type.
|
org.opendaylight.yangtools.concepts.ListenerRegistration<org.opendaylight.yangtools.yang.binding.NotificationListener> |
registerNotificationListener(org.opendaylight.yangtools.yang.binding.NotificationListener listener)
Deprecated.
Registers a listener which implements a YANG-generated notification interface derived from
NotificationListener . |
<T extends org.opendaylight.yangtools.yang.binding.Notification> org.opendaylight.yangtools.concepts.ListenerRegistration<NotificationListener<T>> registerNotificationListener(Class<T> notificationType, NotificationListener<T> listener)
notificationType
- the YANG-generated interface of the notification type.listener
- the listener implementation that will receive notifications.ListenerRegistration
instance that should be used to unregister the listener
by invoking the ListenerRegistration.close()
method when no longer needed.org.opendaylight.yangtools.concepts.ListenerRegistration<org.opendaylight.yangtools.yang.binding.NotificationListener> registerNotificationListener(org.opendaylight.yangtools.yang.binding.NotificationListener listener)
NotificationListener
.
The listener is registered for all notifications present in the implemented interface.listener
- the listener implementation that will receive notifications.ListenerRegistration
instance that should be used to unregister the listener
by invoking the ListenerRegistration.close()
method when no longer needed.Copyright © 2019 OpenDaylight. All rights reserved.