package org.opendaylight.controller.netconf.api.monitoring;
import com.google.common.base.Optional;
-import java.util.Set;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.NetconfState;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Capabilities;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Schemas;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Sessions;
String getSchemaForCapability(String moduleName, Optional<String> revision);
- Set<String> getCapabilities();
+ Capabilities getCapabilities();
+ /**
+ * Allows push based state information transfer. After the listener is registered, current state is pushed to the listener.
+ */
+ AutoCloseable registerListener(MonitoringListener listener);
+
+ interface MonitoringListener {
+
+ // TODO more granular updates would make sense
+ void onStateChanged(NetconfState state);
+ }
}