Package org.forgerock.http.io
Class CharsetDecoderFlowableTransformer
java.lang.Object
org.forgerock.http.io.CharsetDecoderFlowableTransformer
- All Implemented Interfaces:
io.reactivex.rxjava3.core.FlowableTransformer<ByteBuffer,CharBuffer>
public final class CharsetDecoderFlowableTransformer
extends Object
implements io.reactivex.rxjava3.core.FlowableTransformer<ByteBuffer,CharBuffer>
A
CharsetDecoderFlowableTransformer decodes bytes from a stream of ByteBuffer into
a stream of CharBuffer using the given Charset.-
Method Summary
Modifier and TypeMethodDescription@NonNull org.reactivestreams.Publisher<CharBuffer>apply(@NonNull io.reactivex.rxjava3.core.Flowable<ByteBuffer> upstream) static io.reactivex.rxjava3.core.FlowableTransformer<ByteBuffer,CharBuffer> static io.reactivex.rxjava3.core.FlowableTransformer<ByteBuffer,CharBuffer> decode(Supplier<CharsetDecoder> decoderSupplier) static io.reactivex.rxjava3.core.FlowableTransformer<ByteBuffer,CharBuffer> decode(Supplier<CharsetDecoder> decoderSupplier, int workingByteBufferCapacity, Supplier<CharBuffer> outputBufferSupplier) Decodes a flow ofByteBufferinto a flow ofCharBufferusing the givenCharBufferandCharsetDecodersuppliers.
-
Method Details
-
decode
public static io.reactivex.rxjava3.core.FlowableTransformer<ByteBuffer,CharBuffer> decode(Charset charset) Decodes a flow ofByteBufferinto a flow ofCharBufferusing the givenCharset.This transformer uses a
CharsetDecoderconfigured to replace malformed and unmappable characters in order to behave as closely as possible to the JDKInputStreamReader.The output char buffers will be new unpooled buffers.
- Parameters:
charset- the target decoding charset- Returns:
- a flowable transformer of
ByteBuffertoCharBuffer
-
decode
public static io.reactivex.rxjava3.core.FlowableTransformer<ByteBuffer,CharBuffer> decode(Supplier<CharsetDecoder> decoderSupplier) Decodes a flow ofByteBufferinto a flow ofCharBufferusing the givenCharsetDecodersupplier.This transformer uses default's capacity for the working copy and decoded buffers (respectively 8192 and 8192). Decoded buffers are unpooled.
- Parameters:
decoderSupplier- a supplier of the charset decoder to use- Returns:
- a flowable transformer of
ByteBuffertoCharBuffer
-
decode
public static io.reactivex.rxjava3.core.FlowableTransformer<ByteBuffer,CharBuffer> decode(Supplier<CharsetDecoder> decoderSupplier, int workingByteBufferCapacity, Supplier<CharBuffer> outputBufferSupplier) Decodes a flow ofByteBufferinto a flow ofCharBufferusing the givenCharBufferandCharsetDecodersuppliers.- Parameters:
decoderSupplier- a supplier of the charset decoder to useworkingByteBufferCapacity- Size of the working copyByteBuffer(greater than 32)outputBufferSupplier- a supplier of the decodedCharBuffer- Returns:
- a flowable transformer of
ByteBuffertoCharBuffer
-
apply
@NonNull public @NonNull org.reactivestreams.Publisher<CharBuffer> apply(@NonNull @NonNull io.reactivex.rxjava3.core.Flowable<ByteBuffer> upstream) - Specified by:
applyin interfaceio.reactivex.rxjava3.core.FlowableTransformer<ByteBuffer,CharBuffer>
-