![JAR search and dependency download from the Maven repository](/logo.png)
com.facebook.swift.service.ThriftClientConfig Maven / Gradle / Ivy
/*
* Copyright (C) 2012 Facebook, 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 com.facebook.swift.service;
import com.google.common.net.HostAndPort;
import io.airlift.configuration.Config;
import io.airlift.units.Duration;
import io.airlift.units.MinDuration;
import java.util.concurrent.TimeUnit;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import static com.google.common.base.Preconditions.checkArgument;
public class ThriftClientConfig
{
public static final Duration DEFAULT_CONNECT_TIMEOUT = new Duration(500, TimeUnit.MILLISECONDS);
public static final Duration DEFAULT_RECEIVE_TIMEOUT = new Duration(1, TimeUnit.MINUTES);
public static final Duration DEFAULT_READ_TIMEOUT = new Duration(10, TimeUnit.SECONDS);
public static final Duration DEFAULT_WRITE_TIMEOUT = new Duration(1, TimeUnit.MINUTES);
// Default max frame size of 16 MB
public static final int DEFAULT_MAX_FRAME_SIZE = 16777216;
private int maxFrameSize = DEFAULT_MAX_FRAME_SIZE;
private Duration connectTimeout = DEFAULT_CONNECT_TIMEOUT;
private Duration receiveTimeout = DEFAULT_RECEIVE_TIMEOUT;
private Duration readTimeout = DEFAULT_READ_TIMEOUT;
private Duration writeTimeout = DEFAULT_WRITE_TIMEOUT;
private HostAndPort socksProxy;
@MinDuration("1ms")
public Duration getConnectTimeout()
{
return connectTimeout;
}
@Config("thrift.client.connect-timeout")
public ThriftClientConfig setConnectTimeout(Duration connectTimeout)
{
this.connectTimeout = connectTimeout;
return this;
}
@MinDuration("1ms")
public Duration getReceiveTimeout()
{
return receiveTimeout;
}
@Config("thrift.client.receive-timeout")
public ThriftClientConfig setReceiveTimeout(Duration receiveTimeout)
{
this.receiveTimeout = receiveTimeout;
return this;
}
@MinDuration("1ms")
public Duration getReadTimeout()
{
return readTimeout;
}
@Config("thrift.client.read-timeout")
public ThriftClientConfig setReadTimeout(Duration readTimeout)
{
this.readTimeout = readTimeout;
return this;
}
@MinDuration("1ms")
public Duration getWriteTimeout()
{
return writeTimeout;
}
@Config("thrift.client.write-timeout")
public ThriftClientConfig setWriteTimeout(Duration writeTimeout)
{
this.writeTimeout = writeTimeout;
return this;
}
public HostAndPort getSocksProxy()
{
return socksProxy;
}
@Config("thrift.client.socks-proxy")
public ThriftClientConfig setSocksProxy(HostAndPort socksProxy)
{
this.socksProxy = socksProxy;
return this;
}
@Min(0)
@Max(0x3FFFFFFF)
public int getMaxFrameSize()
{
return maxFrameSize;
}
@Config("thrift.client.max-frame-size")
public ThriftClientConfig setMaxFrameSize(int maxFrameSize)
{
checkArgument(maxFrameSize <= 0x3FFFFFFF);
this.maxFrameSize = maxFrameSize;
return this;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy