StompDecoder

Decodes one or more STOMP frames contained in a {@link ByteBuffer}.

<p>An attempt is made to read all complete STOMP frames from the buffer, which could be zero, one, or more. If there is any left-over content, i.e. an incomplete STOMP frame, at the end the buffer is reset to point to the beginning of the partial content. The caller is then responsible for dealing with that incomplete content by buffering until there is more input available.

@author Andy Wilkinson @author Rossen Stoyanchev @since 4.0

Members

Aliases

ByteMessage
alias ByteMessage = Message!(byte[])
Undocumented in source.

Functions

decode
List!(ByteMessage) decode(ByteBuffer byteBuffer)

Decodes one or more STOMP frames from the given {@code ByteBuffer} into a list of {@link Message Messages}. If the input buffer contains partial STOMP frame content, or additional content with a partial STOMP frame, the buffer is reset and {@code null} is returned. @param byteBuffer the buffer to decode the STOMP frame from @return the decoded messages, or an empty list if none @throws StompConversionException raised in case of decoding issues

decode
List!(ByteMessage) decode(ByteBuffer byteBuffer, MultiStringsMap partialMessageHeaders)

Decodes one or more STOMP frames from the given {@code buffer} and returns a list of {@link Message Messages}. <p>If the given ByteBuffer contains only partial STOMP frame content and no complete STOMP frames, an empty list is returned, and the buffer is reset to to where it was. <p>If the buffer contains one ore more STOMP frames, those are returned and the buffer reset to point to the beginning of the unused partial content. <p>The output partialMessageHeaders map is used to store successfully parsed headers in case of partial content. The caller can then check if a "content-length" header was read, which helps to determine how much more content is needed before the next attempt to decode. @param byteBuffer the buffer to decode the STOMP frame from @param partialMessageHeaders an empty output map that will store the last successfully parsed partialMessageHeaders in case of partial message content in cases where the partial buffer ended with a partial STOMP frame @return the decoded messages, or an empty list if none @throws StompConversionException raised in case of decoding issues

getHeaderInitializer
MessageHeaderInitializer getHeaderInitializer()

Return the configured {@code MessageHeaderInitializer}, if any.

setHeaderInitializer
void setHeaderInitializer(MessageHeaderInitializer headerInitializer)

Configure a {@link MessageHeaderInitializer} to apply to the headers of {@link Message Messages} from decoded STOMP frames.

skipLeadingEol
void skipLeadingEol(ByteBuffer byteBuffer)

Skip one ore more EOL characters at the start of the given ByteBuffer. Those are STOMP heartbeat frames.

Variables

HEARTBEAT_PAYLOAD
enum byte[] HEARTBEAT_PAYLOAD;
Undocumented in source.

Meta