Attempt netconf remount regardless of error-type
[netconf.git] / netconf / sal-netconf-connector / src / main / java / org / opendaylight / netconf / sal / connect / api / RemoteDeviceHandler.java
index 699c39945bd2788eb3151af022b3d940d736bba2..9ab98f6428dc063c074bedf7bb6f3514bb834069 100644 (file)
@@ -7,14 +7,42 @@
  */
 package org.opendaylight.netconf.sal.connect.api;
 
-import org.opendaylight.controller.md.sal.dom.api.DOMNotification;
-import org.opendaylight.controller.md.sal.dom.api.DOMRpcService;
+import org.opendaylight.mdsal.dom.api.DOMActionService;
+import org.opendaylight.mdsal.dom.api.DOMNotification;
+import org.opendaylight.mdsal.dom.api.DOMRpcService;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 
 public interface RemoteDeviceHandler<PREF> extends AutoCloseable {
 
-    void onDeviceConnected(SchemaContext remoteSchemaContext,
-                           PREF netconfSessionPreferences, DOMRpcService deviceRpc);
+    /**
+     * When device connected, init new mount point with specific schema context and DOM services.
+     *
+     * @param remoteSchemaContext - schema context of connected device
+     * @param netconfSessionPreferences - session of device
+     * @param deviceRpc - {@link DOMRpcService} of device
+     */
+    default void onDeviceConnected(final SchemaContext remoteSchemaContext, final PREF netconfSessionPreferences,
+            final DOMRpcService deviceRpc) {
+        // DO NOTHING
+    }
+
+    /**
+     * When device connected, init new mount point with specific schema context and DOM services.
+     *
+     * @param remoteSchemaContext - schema context of connected device
+     * @param netconfSessionPreferences - session of device
+     * @param deviceRpc - {@link DOMRpcService} of device
+     * @param deviceAction - {@link DOMActionService} of device
+     */
+    default void onDeviceConnected(final SchemaContext remoteSchemaContext, final PREF netconfSessionPreferences,
+            final DOMRpcService deviceRpc, final DOMActionService deviceAction) {
+        // DO NOTHING
+    }
+
+    default void onDeviceReconnected(final PREF netconfSessionPreferences, final NetconfNode node) {
+        // DO NOTHING
+    }
 
     void onDeviceDisconnected();
 
@@ -22,5 +50,6 @@ public interface RemoteDeviceHandler<PREF> extends AutoCloseable {
 
     void onNotification(DOMNotification domNotification);
 
+    @Override
     void close();
 }