X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-akka-raft%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fraft%2FRaftActorContext.java;h=0fe6cf1e2fecbfd1529a85bc50a1d769fdcd6d9d;hb=872a40f7ac1f2e14a5848329c0827f1265931f6e;hp=2896c44a2cef79ef12e002a5332b414e3368e4db;hpb=b0f8283587b5cc8573d29f66219cbe7f70e21e1b;p=controller.git diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActorContext.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActorContext.java index 2896c44a2c..0fe6cf1e2f 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActorContext.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActorContext.java @@ -16,10 +16,13 @@ import akka.cluster.Cluster; import com.google.common.annotations.VisibleForTesting; import java.util.Collection; import java.util.Optional; +import java.util.function.Consumer; import java.util.function.LongSupplier; import javax.annotation.Nonnull; import javax.annotation.Nullable; import org.opendaylight.controller.cluster.DataPersistenceProvider; +import org.opendaylight.controller.cluster.io.FileBackedOutputStream; +import org.opendaylight.controller.cluster.raft.base.messages.ApplyState; import org.opendaylight.controller.cluster.raft.behaviors.RaftActorBehavior; import org.opendaylight.controller.cluster.raft.persisted.ServerConfigurationPayload; import org.opendaylight.controller.cluster.raft.policy.RaftPolicy; @@ -316,4 +319,35 @@ public interface RaftActorContext { * @return current behavior. */ RaftActorBehavior getCurrentBehavior(); + + /** + * Returns the consumer of ApplyState operations. This is invoked by a behavior when a log entry needs to be + * applied to the state. + * + * @return the Consumer + */ + Consumer getApplyStateConsumer(); + + /** + * Creates a FileBackedOutputStream with a common configuration. + * + * @return a FileBackedOutputStream instance + */ + @Nonnull + FileBackedOutputStream newFileBackedOutputStream(); + + /** + * Returns the RaftActorLeadershipTransferCohort if leadership transfer is in progress. + * + * @return the RaftActorLeadershipTransferCohort if leadership transfer is in progress, null otherwise + */ + @Nullable + RaftActorLeadershipTransferCohort getRaftActorLeadershipTransferCohort(); + + /** + * Sets the RaftActorLeadershipTransferCohort for transferring leadership. + * + * @param leadershipTransferCohort the RaftActorLeadershipTransferCohort or null to clear the existing one + */ + void setRaftActorLeadershipTransferCohort(@Nullable RaftActorLeadershipTransferCohort leadershipTransferCohort); }