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
-
Method Details
-
encode
Кодирует сообщение в переданный buffer.Encodes a message into the provided buffer.
- Parameters:
message- сообщение для кодирования / message to encodebuffer- буфер назначения / destination bufferoffset- смещение начала записи payload / payload write offset- Returns:
- число записанных байт / number of bytes written
-
decode
Декодирует сообщение из диапазона buffer-а.Decodes a message from the provided buffer range.
- Parameters:
buffer- буфер-источник / source bufferoffset- смещение начала payload / payload start offsetlength- длина payload в байтах / payload length in bytes- Returns:
- декодированное сообщение / decoded message
-