57 lines
1.4 KiB
Java
57 lines
1.4 KiB
Java
package it.tdlight.reactiveapi;
|
|
|
|
import com.google.common.net.HostAndPort;
|
|
import io.rsocket.transport.ClientTransport;
|
|
import io.rsocket.transport.ServerTransport;
|
|
import io.rsocket.transport.netty.client.TcpClientTransport;
|
|
import io.rsocket.transport.netty.server.TcpServerTransport;
|
|
import java.util.Objects;
|
|
import java.util.StringJoiner;
|
|
|
|
class TransportFactoryTcp implements TransportFactory {
|
|
|
|
private final HostAndPort baseHost;
|
|
|
|
TransportFactoryTcp(HostAndPort baseHost) {
|
|
this.baseHost = baseHost;
|
|
}
|
|
|
|
@Override
|
|
public ClientTransport getClientTransport(int index) {
|
|
return TcpClientTransport.create(baseHost.getHost(), getPort(index));
|
|
}
|
|
|
|
@Override
|
|
public ServerTransport<?> getServerTransport(int index) {
|
|
return TcpServerTransport.create(baseHost.getHost(), getPort(index));
|
|
}
|
|
|
|
private int getPort(int index) {
|
|
return baseHost.getPort() + index;
|
|
}
|
|
|
|
@Override
|
|
public boolean equals(Object o) {
|
|
if (this == o) {
|
|
return true;
|
|
}
|
|
if (o == null || getClass() != o.getClass()) {
|
|
return false;
|
|
}
|
|
TransportFactoryTcp that = (TransportFactoryTcp) o;
|
|
return Objects.equals(baseHost, that.baseHost);
|
|
}
|
|
|
|
@Override
|
|
public int hashCode() {
|
|
return Objects.hash(baseHost);
|
|
}
|
|
|
|
@Override
|
|
public String toString() {
|
|
return new StringJoiner(", ", TransportFactoryTcp.class.getSimpleName() + "[", "]")
|
|
.add("baseHost=" + baseHost)
|
|
.toString();
|
|
}
|
|
}
|