private Flux<Payload> handleChannel(Flux<Payload> request) { return lifecycle .active() .thenMany( Flux.defer(
private Mono<Payload> handleRequestResponse(final Payload payload) { return lifecycle .active() .then( Mono.defer( () -> { int streamId = streamIdSupplier.nextStreamId(); final Frame requestFrame = Frame.Request.from(streamId, FrameType.REQUEST_RESPONSE, payload, 1); payload.release(); UnicastMonoProcessor<Payload> receiver = UnicastMonoProcessor.create(); receivers.put(streamId, receiver); sendProcessor.onNext(requestFrame); return receiver .doOnError(t -> sendProcessor.onNext(Frame.Error.from(streamId, t))) .doFinally( s -> { if (s == SignalType.CANCEL) { sendProcessor.onNext(Frame.Cancel.from(streamId)); } receivers.remove(streamId); }); })); }
private Flux<Payload> handleRequestStream(final Payload payload) { return lifecycle .active() .thenMany( Flux.defer(
private Flux<Payload> handleChannel(Flux<Payload> request) { return lifecycle .active() .thenMany( Flux.defer(
private Flux<Payload> handleRequestStream(final Payload payload) { return lifecycle .active() .thenMany( Flux.defer(
private Mono<Payload> handleRequestResponse(final Payload payload) { return lifecycle .active() .then( Mono.defer( () -> { int streamId = streamIdSupplier.nextStreamId(); final Frame requestFrame = Frame.Request.from(streamId, FrameType.REQUEST_RESPONSE, payload, 1); payload.release(); UnicastMonoProcessor<Payload> receiver = UnicastMonoProcessor.create(); receivers.put(streamId, receiver); sendProcessor.onNext(requestFrame); return receiver .doOnError(t -> sendProcessor.onNext(Frame.Error.from(streamId, t))) .doFinally( s -> { if (s == SignalType.CANCEL) { sendProcessor.onNext(Frame.Cancel.from(streamId)); } receivers.remove(streamId); }); })); }
private Mono<Void> handleFireAndForget(Payload payload) { return lifecycle .active() .then( Mono.fromRunnable( () -> { final int streamId = streamIdSupplier.nextStreamId(); final Frame requestFrame = Frame.Request.from(streamId, FrameType.REQUEST_FNF, payload, 1); payload.release(); sendProcessor.onNext(requestFrame); })); }
private Mono<Void> handleMetadataPush(Payload payload) { return lifecycle .active() .then( Mono.fromRunnable( () -> { final Frame requestFrame = Frame.Request.from(0, FrameType.METADATA_PUSH, payload, 1); payload.release(); sendProcessor.onNext(requestFrame); })); }
private Mono<Void> handleFireAndForget(Payload payload) { return lifecycle .active() .then( Mono.fromRunnable( () -> { final int streamId = streamIdSupplier.nextStreamId(); final Frame requestFrame = Frame.Request.from(streamId, FrameType.REQUEST_FNF, payload, 1); payload.release(); sendProcessor.onNext(requestFrame); })); }
private Mono<Void> handleMetadataPush(Payload payload) { return lifecycle .active() .then( Mono.fromRunnable( () -> { final Frame requestFrame = Frame.Request.from(0, FrameType.METADATA_PUSH, payload, 1); payload.release(); sendProcessor.onNext(requestFrame); })); }