package it.tdlight.reactiveapi; import it.tdlight.jni.TdApi; import it.tdlight.jni.TdApi.Function; import it.tdlight.jni.TdApi.Object; import it.tdlight.reactiveapi.Event.ClientBoundEvent; import java.time.Instant; import java.util.Map; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; public interface ReactiveApiMultiClient { Flux clientBoundEvents(String lane); Map> clientBoundEvents(); Mono request(long userId, TdApi.Function request, Instant timeout); Mono close(); default ReactiveApiThinClient view(long userId) { return new ReactiveApiThinClient() { @Override public Mono request(Function request, Instant timeout) { return ReactiveApiMultiClient.this.request(userId, request, timeout); } @Override public long getUserId() { return userId; } }; } }