类 AbstractDataBufferDecoder<T>

java.lang.Object
cn.taketoday.core.codec.AbstractDecoder<T>
cn.taketoday.core.codec.AbstractDataBufferDecoder<T>
类型参数:
T - the element type
所有已实现的接口:
Decoder<T>
直接已知子类:
AbstractCharSequenceDecoder, ByteArrayDecoder, ByteBufferDecoder, DataBufferDecoder, Netty5BufferDecoder, NettyByteBufDecoder, ResourceDecoder

public abstract class AbstractDataBufferDecoder<T> extends AbstractDecoder<T>
Abstract base class for Decoder implementations that can decode a DataBuffer directly to the target element type.

Sub-classes must implement decode(org.reactivestreams.Publisher<cn.taketoday.core.io.buffer.DataBuffer>, cn.taketoday.core.ResolvableType, cn.taketoday.util.MimeType, java.util.Map<java.lang.String, java.lang.Object>) to provide a way to transform a DataBuffer to the target data type. The default decode(org.reactivestreams.Publisher<cn.taketoday.core.io.buffer.DataBuffer>, cn.taketoday.core.ResolvableType, cn.taketoday.util.MimeType, java.util.Map<java.lang.String, java.lang.Object>) implementation transforms each individual data buffer while decodeToMono(org.reactivestreams.Publisher<cn.taketoday.core.io.buffer.DataBuffer>, cn.taketoday.core.ResolvableType, cn.taketoday.util.MimeType, java.util.Map<java.lang.String, java.lang.Object>) applies "reduce" and transforms the aggregated buffer.

Sub-classes can override decode(org.reactivestreams.Publisher<cn.taketoday.core.io.buffer.DataBuffer>, cn.taketoday.core.ResolvableType, cn.taketoday.util.MimeType, java.util.Map<java.lang.String, java.lang.Object>) in order to split the input stream along different boundaries (e.g. on new line characters for String) or always reduce to a single data buffer (e.g. Resource).

从以下版本开始:
4.0
作者:
Rossen Stoyanchev, Harry Yang
  • 字段详细资料

    • maxInMemorySize

      private int maxInMemorySize
  • 构造器详细资料

    • AbstractDataBufferDecoder

      protected AbstractDataBufferDecoder(MimeType... supportedMimeTypes)
  • 方法详细资料

    • setMaxInMemorySize

      public void setMaxInMemorySize(int byteCount)
      Configure a limit on the number of bytes that can be buffered whenever the input stream needs to be aggregated. This can be a result of decoding to a single DataBuffer, ByteBuffer, byte[], Resource, String, etc. It can also occur when splitting the input stream, e.g. delimited text, in which case the limit applies to data buffered between delimiters.

      By default this is set to 256K.

      参数:
      byteCount - the max number of bytes to buffer, or -1 for unlimited
    • getMaxInMemorySize

      public int getMaxInMemorySize()
      Return the configured byte count limit.
    • decode

      public reactor.core.publisher.Flux<T> decode(org.reactivestreams.Publisher<DataBuffer> input, ResolvableType elementType, @Nullable MimeType mimeType, @Nullable Map<String,Object> hints)
      从接口复制的说明: Decoder
      Decode a DataBuffer input stream into a Flux of T.
      参数:
      input - the DataBuffer input stream to decode
      elementType - the expected type of elements in the output stream; this type must have been previously passed to the Decoder.canDecode(cn.taketoday.core.ResolvableType, cn.taketoday.util.MimeType) method and it must have returned true.
      mimeType - the MIME type associated with the input stream (optional)
      hints - additional information about how to do decode
      返回:
      the output stream with decoded elements
    • decodeToMono

      public reactor.core.publisher.Mono<T> decodeToMono(org.reactivestreams.Publisher<DataBuffer> input, ResolvableType elementType, @Nullable MimeType mimeType, @Nullable Map<String,Object> hints)
      从接口复制的说明: Decoder
      Decode a DataBuffer input stream into a Mono of T.
      指定者:
      decodeToMono 在接口中 Decoder<T>
      覆盖:
      decodeToMono 在类中 AbstractDecoder<T>
      参数:
      input - the DataBuffer input stream to decode
      elementType - the expected type of elements in the output stream; this type must have been previously passed to the Decoder.canDecode(cn.taketoday.core.ResolvableType, cn.taketoday.util.MimeType) method and it must have returned true.
      mimeType - the MIME type associated with the input stream (optional)
      hints - additional information about how to do decode
      返回:
      the output stream with the decoded element