Interface NotificationService

  • All Superinterfaces:
    BindingAwareService
    All Known Subinterfaces:
    NotificationProviderService

    @Deprecated(forRemoval=true)
    public interface NotificationService
    extends BindingAwareService
    Deprecated, for removal: This API element is subject to removal in a future version.
    Please use NotificationService 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 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);
     

    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 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.

    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 ); 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.

    • Method Summary

      All Methods Instance Methods Abstract Methods Deprecated Methods 
      Modifier and Type Method Description
      <T extends org.opendaylight.yangtools.yang.binding.Notification>
      org.opendaylight.yangtools.concepts.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.
      org.opendaylight.yangtools.concepts.ListenerRegistration<org.opendaylight.yangtools.yang.binding.NotificationListener> registerNotificationListener​(org.opendaylight.yangtools.yang.binding.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 from NotificationListener.
    • Method Detail

      • registerNotificationListener

        <T extends org.opendaylight.yangtools.yang.binding.Notification> org.opendaylight.yangtools.concepts.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 the ListenerRegistration.close() method when no longer needed.
      • registerNotificationListener

        org.opendaylight.yangtools.concepts.ListenerRegistration<org.opendaylight.yangtools.yang.binding.NotificationListener> registerNotificationListener​(org.opendaylight.yangtools.yang.binding.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 from NotificationListener. 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 the ListenerRegistration.close() method when no longer needed.