tdlib-session-container/src/main/java/it/tdlight/reactiveapi/RSocketParameters.java

73 lines
1.8 KiB
Java
Raw Normal View History

2022-10-05 02:26:30 +02:00
package it.tdlight.reactiveapi;
import com.google.common.net.HostAndPort;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Objects;
import java.util.Set;
2022-11-09 18:56:28 +01:00
import java.util.StringJoiner;
2022-10-05 02:26:30 +02:00
public final class RSocketParameters implements ChannelsParameters {
private final boolean client;
2022-11-09 18:56:28 +01:00
private final TransportFactory transportFactory;
2022-10-05 02:26:30 +02:00
private final List<String> lanes;
2022-10-06 00:36:00 +02:00
public RSocketParameters(boolean client, String host, List<String> lanes) {
this.client = client;
2022-11-09 18:56:28 +01:00
var hostAndPort = HostAndPort.fromString(host);
this.transportFactory = TransportFactory.tcp(hostAndPort);
this.lanes = lanes;
}
public RSocketParameters(boolean client, TransportFactory transportFactory, List<String> lanes) {
this.client = client;
this.transportFactory = transportFactory;
2022-10-05 02:26:30 +02:00
this.lanes = lanes;
}
@Override
public Set<String> getAllLanes() {
var lanes = new LinkedHashSet<String>(this.lanes.size() + 1);
lanes.add("main");
lanes.addAll(this.lanes);
return lanes;
}
public boolean isClient() {
return client;
}
2022-11-09 18:56:28 +01:00
public TransportFactory transportFactory() {
return transportFactory;
2022-10-05 03:37:24 +02:00
}
2022-10-05 02:26:30 +02:00
@Override
2022-11-09 18:56:28 +01:00
public boolean equals(Object o) {
if (this == o) {
2022-10-05 02:26:30 +02:00
return true;
}
2022-11-09 18:56:28 +01:00
if (o == null || getClass() != o.getClass()) {
2022-10-05 02:26:30 +02:00
return false;
}
2022-11-09 18:56:28 +01:00
RSocketParameters that = (RSocketParameters) o;
return client == that.client && Objects.equals(transportFactory, that.transportFactory) && Objects.equals(lanes,
that.lanes
);
2022-10-05 02:26:30 +02:00
}
@Override
public int hashCode() {
2022-11-09 18:56:28 +01:00
return Objects.hash(client, transportFactory, lanes);
2022-10-05 02:26:30 +02:00
}
@Override
public String toString() {
2022-11-09 18:56:28 +01:00
return new StringJoiner(", ", RSocketParameters.class.getSimpleName() + "[", "]")
.add("client=" + client)
.add("transportFactory=" + transportFactory)
.add("lanes=" + lanes)
.toString();
2022-10-05 02:26:30 +02:00
}
}