@Override public ByteBuffer write(ByteBuffer buff, Object obj) { DataType t = getType(obj); if (t != this) { return t.write(buff, obj); } buff.put((byte) TYPE_SERIALIZED_OBJECT); byte[] data = serialize(obj); DataUtils.writeVarInt(buff, data.length); buff = DataUtils.ensureCapacity(buff, data.length); buff.put(data); return buff; }
@Override public void write(WriteBuffer buff, Object obj) { DataType t = getType(obj); if (t != this) { t.write(buff, obj); return; } byte[] data = serialize(obj); int size = data.length; // adjust the average size // using an exponential moving average averageSize = (size + 15 * averageSize) / 16; buff.put((byte) TYPE_SERIALIZED_OBJECT).putVarInt(data.length).put(data); }