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.io.FileBackedOutputStreamFactory;
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;
private final Consumer<ApplyState> applyStateConsumer;
+ private final FileBackedOutputStreamFactory fileBackedOutputStreamFactory;
+
+ private RaftActorLeadershipTransferCohort leadershipTransferCohort;
+
public RaftActorContextImpl(ActorRef actor, ActorContext context, String id,
@Nonnull ElectionTerm termInformation, long commitIndex, long lastApplied,
@Nonnull Map<String, String> peerAddresses,
this.log = Preconditions.checkNotNull(logger);
this.applyStateConsumer = Preconditions.checkNotNull(applyStateConsumer);
+ fileBackedOutputStreamFactory = new FileBackedOutputStreamFactory(
+ configParams.getFileBackedStreamingThreshold(), configParams.getTempFileDirectory());
+
for (Map.Entry<String, String> e: Preconditions.checkNotNull(peerAddresses).entrySet()) {
peerInfoMap.put(e.getKey(), new PeerInfo(e.getKey(), e.getValue(), VotingState.VOTING));
}
}
@Override
- public FileBackedOutputStream newFileBackedOutputStream() {
- return new FileBackedOutputStream(configParams.getFileBackedStreamingThreshold(),
- configParams.getTempFileDirectory());
+ public FileBackedOutputStreamFactory getFileBackedOutputStreamFactory() {
+ return fileBackedOutputStreamFactory;
}
@SuppressWarnings("checkstyle:IllegalCatch")
}
}
}
+
+ @Override
+ @Nullable
+ public RaftActorLeadershipTransferCohort getRaftActorLeadershipTransferCohort() {
+ return leadershipTransferCohort;
+ }
+
+ @Override
+ public void setRaftActorLeadershipTransferCohort(
+ @Nullable RaftActorLeadershipTransferCohort leadershipTransferCohort) {
+ this.leadershipTransferCohort = leadershipTransferCohort;
+ }
}