Interface MessageCodec<T>

Type Parameters:
T - тип сообщения, который codec кодирует и декодирует / message type encoded and decoded by this codec

public interface MessageCodec<T>
Абстракция сериализации payload для RPC-ядра.

Реализация предоставляется пользователем и может работать с любым форматом: SBE, Protocol Buffers, plain bytes, ручным binary layout или любым другим представлением, которое умеет читать и писать байты в Agrona buffer-ы. Само RPC-ядро не зависит от конкретного payload-формата.

Payload serialization abstraction used by the RPC core. Implementations are provided by user code and may use any format that can read and write bytes through Agrona buffers.

Контракт codec-а / Codec contract:

  • encode(Object, MutableDirectBuffer, int) пишет payload в переданный buffer начиная с offset и возвращает число записанных байт / writes the payload into the provided buffer and returns the number of bytes written;
  • decode(DirectBuffer, int, int) читает payload из указанного диапазона buffer-а и возвращает объект сообщения / reads the payload from the specified buffer range and returns a decoded message object;
  • если реализация stateful, пользователь сам отвечает за ее потокобезопасность / if an implementation is stateful, the caller is responsible for its thread-safety.
  • Method Summary

    Modifier and Type
    Method
    Description
    decode(org.agrona.DirectBuffer buffer, int offset, int length)
    Декодирует сообщение из диапазона buffer-а.
    int
    encode(T message, org.agrona.MutableDirectBuffer buffer, int offset)
    Кодирует сообщение в переданный buffer.
  • Method Details

    • encode

      int encode(T message, org.agrona.MutableDirectBuffer buffer, int offset)
      Кодирует сообщение в переданный buffer.

      Encodes a message into the provided buffer.

      Parameters:
      message - сообщение для кодирования / message to encode
      buffer - буфер назначения / destination buffer
      offset - смещение начала записи payload / payload write offset
      Returns:
      число записанных байт / number of bytes written
    • decode

      T decode(org.agrona.DirectBuffer buffer, int offset, int length)
      Декодирует сообщение из диапазона buffer-а.

      Decodes a message from the provided buffer range.

      Parameters:
      buffer - буфер-источник / source buffer
      offset - смещение начала payload / payload start offset
      length - длина payload в байтах / payload length in bytes
      Returns:
      декодированное сообщение / decoded message