package org.robotninjas.barge;
import com.google.inject.PrivateModule;
import org.robotninjas.barge.state.AbstractListenersModule;
import java.io.File;
public class NettyRaftModule extends PrivateModule {
private final NettyClusterConfig config;
private final File logDir;
private final StateMachine stateMachine;
private final long timeout;
public NettyRaftModule(NettyClusterConfig config, File logDir, StateMachine stateMachine, long timeout) {
this.config = config;
this.logDir = logDir;
this.stateMachine = stateMachine;
this.timeout = timeout;
}
@Override
protected void configure() {
install(new AbstractListenersModule() {
@Override
protected void configureListeners() {
}
});
install(RaftCoreModule.builder()
.withTimeout(timeout)
.withConfig(config)
.withLogDir(logDir)
.withStateMachine(stateMachine)
.build());
install(new RaftProtoRpcModule(config.local()));
bind(NettyRaftService.class);
expose(NettyRaftService.class);
}
}