Merge "Do not override jsr305 version"
[controller.git] / opendaylight / md-sal / sal-akka-raft / src / main / java / org / opendaylight / controller / cluster / raft / behaviors / RaftActorBehavior.java
index 6811678aaa9cfeb820e1169d530e112e5174e3ce..b766e0ce39fe9be1b847f54c625c802d036a7a0a 100644 (file)
@@ -24,16 +24,42 @@ import org.opendaylight.controller.cluster.raft.RaftState;
  * In each of these behaviors the Raft Actor handles the same Raft messages
  * differently.
  */
-public interface RaftActorBehavior {
+public interface RaftActorBehavior extends AutoCloseable{
+
     /**
      * Handle a message. If the processing of the message warrants a state
-     * change then a new state should be returned otherwise this method should
-     * return the state for the current behavior.
+     * change then a new behavior should be returned otherwise this method should
+     * return the current behavior.
      *
      * @param sender The sender of the message
      * @param message A message that needs to be processed
      *
-     * @return The new state or self (this)
+     * @return The new behavior or current behavior
+     */
+    RaftActorBehavior handleMessage(ActorRef sender, Object message);
+
+    /**
+     * The state associated with a given behavior
+     *
+     * @return
+     */
+    RaftState state();
+
+    /**
+     *
+     * @return
+     */
+    String getLeaderId();
+
+    /**
+     * setting the index of the log entry which is replicated to all nodes
+     * @param replicatedToAllIndex
+     */
+    void setReplicatedToAllIndex(long replicatedToAllIndex);
+
+    /**
+     * getting the index of the log entry which is replicated to all nodes
+     * @return
      */
-    RaftState handleMessage(ActorRef sender, Object message);
+    long getReplicatedToAllIndex();
 }