*/
package org.opendaylight.controller.sal.binding.api;
+import org.opendaylight.yangtools.concepts.Registration;
import org.opendaylight.yangtools.yang.binding.Notification;
public interface NotificationService extends BindingAwareService {
+ /**
+ * Register a generic listener for specified notification type only.
+ *
+ * @param notificationType
+ * @param listener
+ * @return Registration for listener. To unregister listener invoke {@link Registration#close()} method.
+ */
+ <T extends Notification> Registration<NotificationListener<T>> registerNotificationListener(
+ Class<T> notificationType, NotificationListener<T> listener);
- <T extends Notification> void addNotificationListener(Class<T> notificationType, NotificationListener<T> listener);
- void addNotificationListener(org.opendaylight.yangtools.yang.binding.NotificationListener listener);
- void removeNotificationListener(org.opendaylight.yangtools.yang.binding.NotificationListener listener);
- <T extends Notification> void removeNotificationListener(Class<T> notificationType, NotificationListener<T> listener);
+ /**
+ * Register a listener which implements generated notification interfaces derived from
+ * {@link org.opendaylight.yangtools.yang.binding.NotificationListener}.
+ * Listener is registered for all notifications present in implemented interfaces.
+ *
+ * @param listener
+ * @return Registration for listener. To unregister listener invoke {@link Registration#close()} method.
+ */
+ Registration<org.opendaylight.yangtools.yang.binding.NotificationListener> registerNotificationListener(
+ org.opendaylight.yangtools.yang.binding.NotificationListener listener);
}