package netflix.ocelli.rxnetty.internal;
import io.reactivex.netty.client.ConnectionProvider;
import io.reactivex.netty.protocol.tcp.client.events.TcpClientEventListener;
import java.util.Collection;
public class HostConnectionProvider<W, R> {
private final ConnectionProvider<W, R> provider;
private final TcpClientEventListener eventsListener;
private HostConnectionProvider(ConnectionProvider<W, R> provider) {
this(provider, null);
}
HostConnectionProvider(ConnectionProvider<W, R> provider, TcpClientEventListener eventsListener) {
this.provider = provider;
this.eventsListener = eventsListener;
}
public static <W, R> boolean removeFrom(Collection<HostConnectionProvider<W, R>> c,
ConnectionProvider<W, R> toRemove) {
return c.remove(new HostConnectionProvider<W, R>(toRemove));
}
public ConnectionProvider<W, R> getProvider() {
return provider;
}
public TcpClientEventListener getEventsListener() {
return eventsListener;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof HostConnectionProvider)) {
return false;
}
@SuppressWarnings("unchecked")
HostConnectionProvider<W, R> that = (HostConnectionProvider<W, R>) o;
if (provider != null? !provider.equals(that.provider) : that.provider != null) {
return false;
}
return true;
}
@Override
public int hashCode() {
return provider != null? provider.hashCode() : 0;
}
}