Interface NotificationService

  • All Superinterfaces:
    BindingService
    All Known Implementing Classes:
    BindingDOMNotificationServiceAdapter, OSGiNotificationService

    public interface NotificationService
    extends BindingService
    Notification broker which allows clients to subscribe for and publish YANG-modeled notifications.

    Each YANG module which defines notifications results in a generated 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 Detail

      • registerNotificationListener

        <T extends NotificationListener> @NonNull ListenerRegistration<T> registerNotificationListener​(@NonNull T listener)
        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.