Class PayloadUtils

java.lang.Object
org.springframework.messaging.rsocket.PayloadUtils

public abstract class PayloadUtils extends Object
Static utility methods to create Payload from DataBuffers and vice versa.
Since:
5.2
Author:
Rossen Stoyanchev
  • Constructor Details

    • PayloadUtils

      public PayloadUtils()
  • Method Details

    • retainDataAndReleasePayload

      public static DataBuffer retainDataAndReleasePayload(io.rsocket.Payload payload, DataBufferFactory bufferFactory)
      Use this method to slice, retain and wrap the data portion of the Payload, and also to release the Payload. This assumes the Payload metadata has been read by now and ensures downstream code need only be aware of DataBuffers.
      Parameters:
      payload - the payload to process
      bufferFactory - the DataBufferFactory to wrap with
      Returns:
      the created DataBuffer instance
    • createPayload

      public static io.rsocket.Payload createPayload(DataBuffer data, DataBuffer metadata)
      Create a Payload from the given metadata and data.

      If at least one is NettyDataBuffer then ByteBufPayload is created with either obtaining the underlying native ByteBuf or using Unpooled.wrappedBuffer(ByteBuffer...) if necessary. Otherwise, if both are DefaultDataBuffer, then DefaultPayload is created.

      Parameters:
      data - the data part for the payload
      metadata - the metadata part for the payload
      Returns:
      the created payload
    • createPayload

      public static io.rsocket.Payload createPayload(DataBuffer data)
      Create a Payload with data only. The created payload is ByteBufPayload if the input is NettyDataBuffer or otherwise it is DefaultPayload.
      Parameters:
      data - the data part for the payload
      Returns:
      created payload