Introduce ASYNC caches and use them in FRM
[controller.git] / opendaylight / clustering / services / src / main / java / org / opendaylight / controller / clustering / services / IClusterServices.java
index 5551f23f7220fe0908f0ab37faa9858cca956a75..77e300e95aaa7475b276fa10eaa8f37bb9326d5b 100644 (file)
@@ -62,7 +62,19 @@ public interface IClusterServices {
          * immediately committed in the cache.
          *
          */
-        NON_TRANSACTIONAL;
+        NON_TRANSACTIONAL,
+        /**
+         * Set on a cache that can transfer the updates asynchronously from the
+         * calling thread. The caller when doing put/clear/remove cannot expect
+         * that the operation has happened clusterwide
+         */
+        ASYNC,
+        /**
+         * Set on a cache that transfer the updates synchronously to the calling
+         * thread so when getting back the operation is supposed to have
+         * completed on all the cluster nodes. Slow but safe.
+         */
+        SYNC;
     }
 
     /**
@@ -237,6 +249,7 @@ public interface IClusterServices {
      *
      * @return true if the role is the one of standby, else false
      */
+    @Deprecated
     boolean amIStandby();
 
     /**
@@ -247,6 +260,7 @@ public interface IClusterServices {
      *
      * @return Address of the active controller
      */
+    @Deprecated
     InetAddress getActiveAddress();
 
     /**
@@ -271,6 +285,7 @@ public interface IClusterServices {
      *
      * @param i Interface that will be called when the Role Change happens
      */
+    @Deprecated
     void listenRoleChange(IListenRoleChange i)
             throws ListenRoleChangeAddException;
 
@@ -281,5 +296,6 @@ public interface IClusterServices {
      *
      * @param i Interface that will be called when the Role Change happens
      */
+    @Deprecated
     void unlistenRoleChange(IListenRoleChange i);
 }