2 * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.restconf.nb.rfc8040.streams.listeners;
11 import org.opendaylight.restconf.nb.rfc8040.streams.StreamSessionHandler;
14 * Base interface for both listeners({@link ListenerAdapter}, {@link NotificationListenerAdapter}).
16 public interface BaseListenerInterface extends AutoCloseable {
19 * Return all subscribers of listener.
21 * @return Set of all subscribers.
23 Set<StreamSessionHandler> getSubscribers();
26 * Checks if exists at least one {@link StreamSessionHandler} subscriber.
28 * @return {@code true} if exist at least one {@link StreamSessionHandler} subscriber, {@code false} otherwise.
30 boolean hasSubscribers();
35 * @return Stream name.
37 String getStreamName();
42 * @return Output type (JSON or XML).
44 String getOutputType();
47 * Registers {@link StreamSessionHandler} subscriber.
49 * @param subscriber SSE or WS session handler.
51 void addSubscriber(StreamSessionHandler subscriber);
54 * Removes {@link StreamSessionHandler} subscriber.
56 * @param subscriber SSE or WS session handler.
58 void removeSubscriber(StreamSessionHandler subscriber);