BUG-5626: refactor BehaviorStateHolder
[controller.git] / opendaylight / md-sal / sal-akka-raft / src / main / java / org / opendaylight / controller / cluster / raft / behaviors / RaftActorBehavior.java
index b766e0ce39fe9be1b847f54c625c802d036a7a0a..e7f43c898c1e4506ab1e382ae153c05d2eb6950e 100644 (file)
@@ -39,15 +39,14 @@ public interface RaftActorBehavior extends AutoCloseable{
     RaftActorBehavior handleMessage(ActorRef sender, Object message);
 
     /**
-     * The state associated with a given behavior
      *
-     * @return
+     * @return The state associated with a given behavior
      */
     RaftState state();
 
     /**
      *
-     * @return
+     * @return The Id of the Leader if known else null
      */
     String getLeaderId();
 
@@ -58,8 +57,24 @@ public interface RaftActorBehavior extends AutoCloseable{
     void setReplicatedToAllIndex(long replicatedToAllIndex);
 
     /**
-     * getting the index of the log entry which is replicated to all nodes
-     * @return
+     * @return the index of the log entry which is replicated to all nodes
      */
     long getReplicatedToAllIndex();
+
+    /**
+     * @return the leader's payload data version.
+     */
+    short getLeaderPayloadVersion();
+
+    /**
+     * switchBehavior makes sure that the current behavior is shutdown before it switches to the new
+     * behavior
+     *
+     * @param behavior The new behavior to switch to
+     * @return The new behavior
+     */
+    RaftActorBehavior switchBehavior(RaftActorBehavior behavior);
+
+    @Override
+    void close();
 }