@Override
public byte[] serializeMessage(BasicRuntime basicRuntime, Message message) throws Exception
{
return outputPool.run(out ->
{
return kryoPool.run(kryo ->
{
out.writeByte(message.getMessageType());
out.writeInt(message.getMessageId());
writeNodeAddress(out, message.getReferenceAddress());
out.writeInt(message.getInterfaceId());
out.writeInt(message.getMethodId());
writeObjectId(kryo, out, message);
writeHeaders(kryo, out, message.getHeaders());
writeNodeAddress(out, message.getFromNode());
writePayload(kryo, out, message);
out.flush();
return out.getByteArrayOutputStream().toByteArray();
});
}, DEFAULT_BUFFER_SIZE);
}