io.craft.atom.nio.NioConfig Maven / Gradle / Ivy
package io.craft.atom.nio;
import io.craft.atom.io.IoConfig;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* Nio component common configuration object.
*
* @author mindwind
* @version 1.0, Feb 21, 2013
*/
@ToString(callSuper = true, of = { "processorPoolSize", "executorSize", "readWritefair", "channelEventSize", "totalEventSize" })
abstract public class NioConfig extends IoConfig {
@Getter protected int processorPoolSize = Runtime.getRuntime().availableProcessors();
@Getter @Setter protected int executorSize = processorPoolSize << 3 ;
@Getter @Setter protected boolean readWritefair = true ;
@Getter protected int channelEventSize = Integer.MAX_VALUE ;
@Getter protected int totalEventSize = Integer.MAX_VALUE ;
// ~ -------------------------------------------------------------------------------------------------------------
public void setProcessorPoolSize(int processorPoolSize) {
if (processorPoolSize <= 0) {
throw new IllegalArgumentException("processor pool size must > 0");
}
this.processorPoolSize = processorPoolSize;
}
public void setChannelEventSize(int channelEventSize) {
if (channelEventSize <= 0) {
channelEventSize = Integer.MAX_VALUE;
}
this.channelEventSize = channelEventSize;
}
public void setTotalEventSize(int totalEventSize) {
if (totalEventSize <= 0) {
totalEventSize = Integer.MAX_VALUE;
}
this.totalEventSize = totalEventSize;
}
}