/** * */ package com.ganji.as.thrift.protocol.builder; import java.net.SocketAddress; import org.apache.thrift.protocol.TProtocolFactory; import org.slf4j.Logger; import com.ganji.as.thrift.protocol.client.intf.ThriftProtocolClientRetryPolicy; import com.ganji.as.thrift.protocol.cluster.load.balance.LoadBalance; import com.ganji.as.thrift.protocol.service.intf.ThriftProtocolService; /** * @author yikangfeng * @date 2015年7月20日 */ public abstract class ThriftProtocolClientBuilder { static public <REQ, REP> ThriftProtocolService<REQ, REP> safeBuild( final ThriftProtocolClientBuilder clientBuilder) { if (clientBuilder == null) throw new NullPointerException( "Construction parameter object is not valid."); try { return clientBuilder.<REQ, REP> build(); } catch (final Throwable t) { throw new RuntimeException(t); } } static public ThriftProtocolClientBuilder get() { return new ThriftProtocolClientBuilding(); } abstract public ThriftProtocolClientBuilder name(final String name); abstract public ThriftProtocolClientBuilder logger(final Logger logger); abstract public ThriftProtocolClientBuilder tcpConnectTimeout( final int tcpConnectTimeout);// ms abstract public ThriftProtocolClientBuilder sendBufferSize(final int value); abstract public ThriftProtocolClientBuilder recvBufferSize(final int value); abstract public ThriftProtocolClientBuilder hosts( final SocketAddress inetSocketAddress); abstract public ThriftProtocolClientBuilder dest(final String addr); abstract public ThriftProtocolClientBuilder codec( final TProtocolFactory protocolFactory); abstract public ThriftProtocolClientBuilder retries(final int value); abstract public ThriftProtocolClientBuilder retryPolicy( final ThriftProtocolClientRetryPolicy retryPolicy); abstract public ThriftProtocolClientBuilder loadBalancePolicy( final LoadBalance loadBalancePolicy); abstract public ThriftProtocolClientBuilder hostConnectionCoreSize( final int value); abstract public ThriftProtocolClientBuilder hostConnectionMinIdle( final int value);// min idle size abstract public ThriftProtocolClientBuilder hostConnectionMaxIdle( final int value);// max idle size abstract public ThriftProtocolClientBuilder hostConnectionLimit( final int value);// max size abstract public ThriftProtocolClientBuilder hostConnectionMaxWaiters( final int nWaiters); abstract public ThriftProtocolClientBuilder maxWaitHostConnectionMillis( final int maxWaitMillis); abstract public ThriftProtocolClientBuilder hostConnectionBufferSize( final int bufferSize); abstract public ThriftProtocolClientBuilder hostConnectionIdleTime( final int duration); abstract public ThriftProtocolClientBuilder hostConnectionMaxIdleTime( final int duration); abstract public ThriftProtocolClientBuilder hostConnectionMaxLifeTime( final int duration); abstract <REQ, REP> ThriftProtocolService<REQ, REP> build() throws Throwable; }