package com.github.rojanu.client;
import com.github.rojanu.service.BasicFinagleService;
import com.twitter.finagle.Service;
import com.twitter.finagle.thrift.ThriftClientRequest;
import java.io.IOException;
import java.util.Objects;
public class CloseableClient<T extends BasicFinagleService> implements AutoCloseable {
private final Service<ThriftClientRequest, byte[]> transport;
private final T o;
public CloseableClient(final Service<ThriftClientRequest, byte[]> transport, final T o) {
Objects.requireNonNull(o);
this.transport = transport;
this.o = o;
}
public T get() {
return o;
}
@Override
public void close() throws IOException {
if (transport != null) {
transport.close();
}
}
public void closeSilently() {
try {
close();
} catch (IOException ignored) {
}
}
}