/* * Copyright 2012 LinkedIn, Inc * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package voldemort.client; import voldemort.common.OpTimeMap; /** * Encapsulates the timeouts, in ms, for various Voldemort operations * */ public class TimeoutConfig { public static int DEFAULT_GLOBAL_TIMEOUT_MS = 5000; public static boolean DEFAULT_ALLOW_PARTIAL_GETALLS = false; private OpTimeMap timeoutMap; private boolean partialGetAllAllowed; public TimeoutConfig() { this(DEFAULT_GLOBAL_TIMEOUT_MS, DEFAULT_ALLOW_PARTIAL_GETALLS); } public TimeoutConfig(long globalTimeoutMs) { this(globalTimeoutMs, DEFAULT_ALLOW_PARTIAL_GETALLS); } public TimeoutConfig(long globalTimeoutMs, boolean allowPartialGetAlls) { timeoutMap = new OpTimeMap(globalTimeoutMs); setPartialGetAllAllowed(allowPartialGetAlls); } public TimeoutConfig(long getTimeoutMs, long putTimeoutMs, long deleteTimeoutMs, long getAllTimeoutMs, long getVersionsTimeoutMs, boolean allowPartialGetAlls) { timeoutMap = new OpTimeMap(getTimeoutMs, putTimeoutMs, deleteTimeoutMs, getAllTimeoutMs, getVersionsTimeoutMs); setPartialGetAllAllowed(allowPartialGetAlls); } public long getOperationTimeout(Byte opCode) { return timeoutMap.getOpTime(opCode); } public void setOperationTimeout(Byte opCode, long timeoutMs) { timeoutMap.setOpTime(opCode, timeoutMs); } public boolean isPartialGetAllAllowed() { return partialGetAllAllowed; } public void setPartialGetAllAllowed(boolean allowPartialGetAlls) { this.partialGetAllAllowed = allowPartialGetAlls; } }