Merge "BUG 2676 : Introduce API for accessing akka dispatchers"
[controller.git] / opendaylight / netconf / netconf-api / src / main / java / org / opendaylight / controller / netconf / api / monitoring / NetconfMonitoringService.java
index 51eea9307de4ff8b22188fe9385e8da242e0544b..d22412c7cf11df2447d19a184c7c5966159a5f86 100644 (file)
@@ -7,12 +7,30 @@
  */
 package org.opendaylight.controller.netconf.api.monitoring;
 
+import com.google.common.base.Optional;
+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;
 
-public interface NetconfMonitoringService {
+public interface NetconfMonitoringService extends CapabilityListener, SessionListener {
 
     Sessions getSessions();
 
     Schemas getSchemas();
+
+    String getSchemaForCapability(String moduleName, Optional<String> revision);
+
+    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);
+    }
 }