package org.greencheek.elasticacheconfig.client; import org.greencheek.elasticacheconfig.confighandler.AsyncConfigInfoMessageHandler; import org.greencheek.elasticacheconfig.handler.RequestConfigInfoScheduler; import java.util.concurrent.TimeUnit; /** * Created by dominictootell on 20/07/2014. */ public class ConfigRetrievalSettings { private final RequestConfigInfoScheduler scheduledConfigRetrieval; private final AsyncConfigInfoMessageHandler configInfoMessageHandler; private final TimeUnit idleTimeoutTimeUnit; private final long idleReadTimeout; private final TimeUnit reconnectDelayTimeUnit; private final long reconnectDelay; private final int connectionTimeoutInMillis; private final int numberOfConsecutiveInvalidConfigsBeforeReconnect; private final ElastiCacheServerConnectionDetails[] elasticacheConfigHosts; public ConfigRetrievalSettings(RequestConfigInfoScheduler scheduledConfigRetrieval, AsyncConfigInfoMessageHandler obtainedConfigHandler, ElastiCacheServerConnectionDetails[] configurationServerConnectionDetails, TimeUnit idleTimeoutTimeUnit, long idleReadTimeout, TimeUnit reconnectDelayTimeUnit, long reconnectDelay, int noInvalidConfigsBeforeReconnect, int connectionTimeoutInMillis) { this.scheduledConfigRetrieval = scheduledConfigRetrieval; this.configInfoMessageHandler = obtainedConfigHandler; this.elasticacheConfigHosts = new ElastiCacheServerConnectionDetails[configurationServerConnectionDetails.length]; int i = 0; for(ElastiCacheServerConnectionDetails host : configurationServerConnectionDetails) { elasticacheConfigHosts[i++] = host; } this.idleTimeoutTimeUnit = idleTimeoutTimeUnit; this.idleReadTimeout = idleReadTimeout; this.reconnectDelayTimeUnit = reconnectDelayTimeUnit; this.reconnectDelay = reconnectDelay; this.numberOfConsecutiveInvalidConfigsBeforeReconnect = noInvalidConfigsBeforeReconnect; this.connectionTimeoutInMillis = connectionTimeoutInMillis; } public RequestConfigInfoScheduler getScheduledConfigRetrieval() { return scheduledConfigRetrieval; } public AsyncConfigInfoMessageHandler getConfigInfoMessageHandler() { return configInfoMessageHandler; } public ElastiCacheServerConnectionDetails[] getElasticacheConfigHosts() { return elasticacheConfigHosts; } public TimeUnit getIdleTimeoutTimeUnit() { return idleTimeoutTimeUnit; } public long getIdleReadTimeout() { return idleReadTimeout; } public TimeUnit getReconnectDelayTimeUnit() { return reconnectDelayTimeUnit; } public long getReconnectDelay() { return reconnectDelay; } public int getNumberOfConsecutiveInvalidConfigsBeforeReconnect() { return numberOfConsecutiveInvalidConfigsBeforeReconnect; } public int getConnectionTimeoutInMillis() { return connectionTimeoutInMillis; } }