Top Description Fields Constructors Methods
io.rsocket.core

pack-priv Class RSocketResponder

extends RequesterResponderSupport
implements RSocket
Class Inheritance
All Implemented Interfaces
io.rsocket.RSocket, io.rsocket.Closeable, reactor.core.Disposable, io.rsocket.Availability
Imports
io.netty.buffer.ByteBuf, io.netty.util.collection.IntObjectMap, io.rsocket.DuplexConnection, .Payload, .RSocket, io.rsocket.exceptions.ConnectionErrorException, io.rsocket.frame.ErrorFrameCodec, .FrameHeaderCodec, .FrameType, .RequestChannelFrameCodec, .RequestFireAndForgetFrameCodec, .RequestNFrameCodec, .RequestResponseFrameCodec, .RequestStreamFrameCodec, io.rsocket.frame.decoder.PayloadDecoder, io.rsocket.plugins.RequestInterceptor, java.nio.channels.ClosedChannelException, java.util.ArrayList, .Collection, java.util.concurrent.CancellationException, java.util.concurrent.atomic.AtomicReferenceFieldUpdater, java.util.function.Function, .Supplier, org.reactivestreams.Publisher, org.slf4j.Logger, .LoggerFactory, reactor.core.publisher.Flux, .Mono, .Sinks, reactor.util.annotation.Nullable

Responder side of RSocket. Receives ByteBufs from a peer's RSocketRequester

Field Summary

Modifier and TypeField and Description
private static final Exception
private final ResponderLeaseTracker
private static final Logger
private final Sinks.Empty<Void>
private final RSocket
private static final AtomicReferenceFieldUpdater<RSocketResponder, Throwable>
private volatile Throwable
Inherited from io.rsocket.core.RequesterResponderSupport:
activeStreamsstreamIdSupplier

Constructor Summary

AccessConstructor and Description
pack-priv
RSocketResponder(DuplexConnection connection, RSocket requestHandler, PayloadDecoder payloadDecoder, ResponderLeaseTracker leaseHandler, int mtu, int maxFrameLength, int maxInboundPayloadSize, Function<RSocket, ? extends RequestInterceptor> requestInterceptorFunction, Sinks.Empty<Void> onThisSideClosedSink)

Method Summary

Modifier and TypeMethod and Description
public boolean
add(int streamId, FrameHandler frameHandler)

Overrides io.rsocket.core.RequesterResponderSupport.add.

private void
public void
dispose()

Overrides default io.rsocket.RSocket.dispose.

Cancel or dispose the underlying task or resource.
pack-priv final void
public Mono<Void>
fireAndForget(Payload
Request payload.
payload
)

Overrides default io.rsocket.RSocket.fireAndForget.

Fire and Forget interaction model of RSocket.
pack-priv final void
handleChannel(int streamId, ByteBuf frame, long initialRequestN, boolean complete)

pack-priv final void
handleFireAndForget(int streamId, ByteBuf frame)

pack-priv final void
private void
pack-priv final void
handleRequestResponse(int streamId, ByteBuf frame)

pack-priv final void
handleStream(int streamId, ByteBuf frame, long initialRequestN)

public boolean
isDisposed()

Overrides default io.rsocket.RSocket.isDisposed.

Optionally return true when the resource or task is disposed.
public Mono<Void>
metadataPush(Payload
Request payloads.
payload
)

Overrides default io.rsocket.RSocket.metadataPush.

Metadata-Push interaction model of RSocket.
public Mono<Void>
onClose()

Overrides default io.rsocket.RSocket.onClose.

Returns a Mono that terminates when the instance is terminated by any reason.
public Flux<Payload>
requestChannel(Publisher<Payload>
Stream of request payloads.
payloads
)

Overrides default io.rsocket.RSocket.requestChannel.

Request-Channel interaction model of RSocket.
public Mono<Payload>
requestResponse(Payload
Request payload.
payload
)

Overrides default io.rsocket.RSocket.requestResponse.

Request-Response interaction model of RSocket.
public Flux<Payload>
requestStream(Payload
Request payload.
payload
)

Overrides default io.rsocket.RSocket.requestStream.

Request-Stream interaction model of RSocket.
private void
sendLeaseRejection(int streamId, Throwable leaseError)

private void
private void
private void
Inherited from io.rsocket.core.RequesterResponderSupport:
addAndGetNextStreamIdgetgetAllocatorgetDuplexConnectiongetMaxFrameLengthgetMaxInboundPayloadSizegetMtugetNextStreamIdgetPayloadDecodergetRequesterLeaseTrackergetRequestInterceptorremove

Field Detail

CLOSED_CHANNEL_EXCEPTIONback to summary
private static final Exception CLOSED_CHANNEL_EXCEPTION
leaseHandlerback to summary
private final ResponderLeaseTracker leaseHandler
Annotations
@Nullable
LOGGERback to summary
private static final Logger LOGGER
onThisSideClosedSinkback to summary
private final Sinks.Empty<Void> onThisSideClosedSink
requestHandlerback to summary
private final RSocket requestHandler
TERMINATION_ERRORback to summary
private static final AtomicReferenceFieldUpdater<RSocketResponder, Throwable> TERMINATION_ERROR
terminationErrorback to summary
private volatile Throwable terminationError

Constructor Detail

RSocketResponderback to summary
pack-priv RSocketResponder(DuplexConnection connection, RSocket requestHandler, PayloadDecoder payloadDecoder, ResponderLeaseTracker leaseHandler, int mtu, int maxFrameLength, int maxInboundPayloadSize, Function<RSocket, ? extends RequestInterceptor> requestInterceptorFunction, Sinks.Empty<Void> onThisSideClosedSink)

Method Detail

addback to summary
public boolean add(int streamId, FrameHandler frameHandler)

Overrides io.rsocket.core.RequesterResponderSupport.add.

Annotations
@Override
cleanUpSendingSubscriptionsback to summary
private void cleanUpSendingSubscriptions()
disposeback to summary
public void dispose()

Overrides default io.rsocket.RSocket.dispose.

Doc from reactor.core.Disposable.dispose.

Cancel or dispose the underlying task or resource.

Implementations are required to make this method idempotent.

Annotations
@Override
doOnDisposeback to summary
pack-priv final void doOnDispose()
fireAndForgetback to summary
public Mono<Void> fireAndForget(Payload payload)

Overrides default io.rsocket.RSocket.fireAndForget.

Doc from io.rsocket.RSocket.fireAndForget.

Fire and Forget interaction model of RSocket.

Parameters
payload:Payload

Request payload.

Returns:Mono<Void>

Publisher that completes when the passed payload is successfully handled, otherwise errors.

Annotations
@Override
handleChannelback to summary
pack-priv final void handleChannel(int streamId, ByteBuf frame, long initialRequestN, boolean complete)
handleFireAndForgetback to summary
pack-priv final void handleFireAndForget(int streamId, ByteBuf frame)
handleFrameback to summary
pack-priv final void handleFrame(ByteBuf frame)
handleMetadataPushback to summary
private void handleMetadataPush(Mono<Void> result)
handleRequestResponseback to summary
pack-priv final void handleRequestResponse(int streamId, ByteBuf frame)
handleStreamback to summary
pack-priv final void handleStream(int streamId, ByteBuf frame, long initialRequestN)
isDisposedback to summary
public boolean isDisposed()

Overrides default io.rsocket.RSocket.isDisposed.

Doc from reactor.core.Disposable.isDisposed.

Optionally return true when the resource or task is disposed.

Implementations are not required to track disposition and as such may never return true even when disposed. However, they MUST only return true when there's a guarantee the resource or task is disposed.

Returns:boolean

true when there's a guarantee the resource or task is disposed.

Annotations
@Override
metadataPushback to summary
public Mono<Void> metadataPush(Payload payload)

Overrides default io.rsocket.RSocket.metadataPush.

Doc from io.rsocket.RSocket.metadataPush.

Metadata-Push interaction model of RSocket.

Parameters
payload:Payload

Request payloads.

Returns:Mono<Void>

Publisher that completes when the passed payload is successfully handled, otherwise errors.

Annotations
@Override
onCloseback to summary
public Mono<Void> onClose()

Overrides default io.rsocket.RSocket.onClose.

Doc from io.rsocket.Closeable.onClose.

Returns a Mono that terminates when the instance is terminated by any reason. Note, in case of error termination, the cause of error will be propagated as an error signal through org.reactivestreams.Subscriber#onError(Throwable). Otherwise, Subscriber#onComplete() will be called.

Returns:Mono<Void>

a Mono to track completion with success or error of the underlying resource. When the underlying resource is an `RSocket`, the Mono exposes stream 0 (i.e. connection level) errors.

Annotations
@Override
requestChannelback to summary
public Flux<Payload> requestChannel(Publisher<Payload> payloads)

Overrides default io.rsocket.RSocket.requestChannel.

Doc from io.rsocket.RSocket.requestChannel.

Request-Channel interaction model of RSocket.

Parameters
payloads:Publisher<Payload>

Stream of request payloads.

Returns:Flux<Payload>

Stream of response payloads.

Annotations
@Override
requestResponseback to summary
public Mono<Payload> requestResponse(Payload payload)

Overrides default io.rsocket.RSocket.requestResponse.

Doc from io.rsocket.RSocket.requestResponse.

Request-Response interaction model of RSocket.

Parameters
payload:Payload

Request payload.

Returns:Mono<Payload>

Publisher containing at most a single Payload representing the response.

Annotations
@Override
requestStreamback to summary
public Flux<Payload> requestStream(Payload payload)

Overrides default io.rsocket.RSocket.requestStream.

Doc from io.rsocket.RSocket.requestStream.

Request-Stream interaction model of RSocket.

Parameters
payload:Payload

Request payload.

Returns:Flux<Payload>

Publisher containing the stream of Payloads representing the response.

Annotations
@Override
sendLeaseRejectionback to summary
private void sendLeaseRejection(int streamId, Throwable leaseError)
tryTerminateback to summary
private void tryTerminate(Supplier<Throwable> errorSupplier)
tryTerminateOnConnectionCloseback to summary
private void tryTerminateOnConnectionClose()
tryTerminateOnConnectionErrorback to summary
private void tryTerminateOnConnectionError(Throwable e)