@Override public void write(WriteBuffer buff, Object obj) { Object[] array = (Object[]) obj; for (int i = 0; i < arrayLength; i++) { DataType t = elementTypes[i]; Object o = array[i]; if (o == null) { buff.put((byte) 0); } else { buff.put((byte) 1); t.write(buff, o); } } }
@Override public void write(WriteBuffer buff, Object obj) { VersionedValue v = (VersionedValue) obj; buff.putVarLong(v.operationId); if (v.value == null) { buff.put((byte) 0); } else { buff.put((byte) 1); valueType.write(buff, v.value); } }
@Override public void write(WriteBuffer buff, Object[] obj, int len, boolean key) { boolean fastPath = true; for (int i = 0; i < len; i++) { VersionedValue v = (VersionedValue) obj[i]; if (v.operationId != 0 || v.value == null) { fastPath = false; } } if (fastPath) { buff.put((byte) 0); for (int i = 0; i < len; i++) { VersionedValue v = (VersionedValue) obj[i]; valueType.write(buff, v.value); } } else { // slow path: // store op ids, and some entries may be null buff.put((byte) 1); for (int i = 0; i < len; i++) { write(buff, obj[i]); } } }
@Override public void write(WriteBuffer buff, Object obj) { DataType t = getType(obj); if (t != this) { t.write(buff, obj); return; } byte[] data = serialize(obj); // we say they are larger, because these objects // use quite a lot of disk space int size = data.length * 2; // 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); }
@Override public void write(WriteBuffer buff, Object obj) { Object[] array = (Object[]) obj; for (int i = 0; i < arrayLength; i++) { DataType t = elementTypes[i]; Object o = array[i]; if (o == null) { buff.put((byte) 0); } else { buff.put((byte) 1); t.write(buff, o); } } }
@Override public void write(WriteBuffer buff, Object obj) { Object[] array = (Object[]) obj; for (int i = 0; i < arrayLength; i++) { DataType t = elementTypes[i]; Object o = array[i]; if (o == null) { buff.put((byte) 0); } else { buff.put((byte) 1); t.write(buff, o); } } }
@Override public void write(WriteBuffer buff, Object obj) { VersionedValue v = (VersionedValue) obj; buff.putVarLong(v.operationId); if (v.value == null) { buff.put((byte) 0); } else { buff.put((byte) 1); valueType.write(buff, v.value); } }
@Override public void write(WriteBuffer buff, Object obj) { VersionedValue v = (VersionedValue) obj; buff.putVarLong(v.operationId); if (v.value == null) { buff.put((byte) 0); } else { buff.put((byte) 1); valueType.write(buff, v.value); } }
@Override public void write(WriteBuffer buff, Object[] obj, int len, boolean key) { boolean fastPath = true; for (int i = 0; i < len; i++) { VersionedValue v = (VersionedValue) obj[i]; if (v.operationId != 0 || v.value == null) { fastPath = false; } } if (fastPath) { buff.put((byte) 0); for (int i = 0; i < len; i++) { VersionedValue v = (VersionedValue) obj[i]; valueType.write(buff, v.value); } } else { // slow path: // store op ids, and some entries may be null buff.put((byte) 1); for (int i = 0; i < len; i++) { write(buff, obj[i]); } } }
@Override public void write(WriteBuffer buff, Object[] obj, int len, boolean key) { boolean fastPath = true; for (int i = 0; i < len; i++) { VersionedValue v = (VersionedValue) obj[i]; if (v.operationId != 0 || v.value == null) { fastPath = false; } } if (fastPath) { buff.put((byte) 0); for (int i = 0; i < len; i++) { VersionedValue v = (VersionedValue) obj[i]; valueType.write(buff, v.value); } } else { // slow path: // store op ids, and some entries may be null buff.put((byte) 1); for (int i = 0; i < len; i++) { write(buff, obj[i]); } } }
@Override public void write(WriteBuffer buff, Object obj) { DataType t = getType(obj); if (t != this) { t.write(buff, obj); return; } byte[] data = serialize(obj); // we say they are larger, because these objects // use quite a lot of disk space int size = data.length * 2; // 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); }
@Override public void write(WriteBuffer buff, Object obj) { DataType t = getType(obj); if (t != this) { t.write(buff, obj); return; } byte[] data = serialize(obj); // we say they are larger, because these objects // use quite a lot of disk space int size = data.length * 2; // 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); }
@Override public void write(WriteBuffer buff, Object obj) { DataType t = getType(obj); if (t != this) { t.write(buff, obj); return; } byte[] data = serialize(obj); // we say they are larger, because these objects // use quite a lot of disk space int size = data.length * 2; // 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); }