public Serializer putInt(FieldBase field, int value) { buf.putInt(value); return this; } public Serializer putLong(FieldBase field, long value) { buf.putLong(value); return this; }
/** * Writes a 31-bit positive integer to the buffer, using 4 bytes. * * @param number the integer to write */ public void putInt1_4BytesAs4(int number) { if (number < 0) { throw new IllegalArgumentException("Cannot encode negative number"); } //no need to check upper boundary, since INT_MAX == 2^31 putInt(number | 0x80000000); }
/** * Writes a 30-bit positive integer to the buffer, using 4 bytes. * * @param number the integer to write */ public void putInt1_2_4BytesAs4(int number) { if (number < 0) { throw new IllegalArgumentException("Cannot encode negative number"); } else if (number > 0x3FFFFFFF) { throw new IllegalArgumentException("Cannot encode number larger than 2^30."); } putInt(number | 0xC0000000); }
/** * Writes a 32 bit positive integer (or 31 bit unsigned) to the buffer, * using 4 bytes. * * @param number the integer to write */ public void putInt2_4_8BytesAs4(long number) { if (number < 0L) { throw new IllegalArgumentException("Cannot encode negative number."); } else if (number > 0x7FFFFFFFL) { throw new IllegalArgumentException("Cannot encode number larger than 2^31-1."); } putInt(((int) number) | 0x80000000); }
public void serialize(GrowableByteBuffer buf) { ByteOrder originalOrder = buf.order(); buf.order(ByteOrder.LITTLE_ENDIAN); buf.putLong(timestamp); // 8 buf.putInt(headerPos); // 12 buf.putInt(headerLen); // 16 buf.putInt(bodyPos); // 20 buf.putInt(bodyLen); // 24 buf.putInt(flags); // 28 (written as little-endian int, this is on purpose) buf.putInt(0); // 32 buf.order(originalOrder); } }
/** * Write out the value of integer field * * @param field - field description (name and data type) * @param value - field value */ public void write(FieldBase field, IntegerFieldValue value) { buf.putInt(value.getInteger()); }
/** * Write out the value of integer field * * @param field - field description (name and data type) * @param value - field value */ public void write(FieldBase field, IntegerFieldValue value) { buf.putInt(value.getInteger()); }
/** * Writes a 31-bit positive integer to the buffer, using 1 or 4 bytes. * * @param number the integer to write */ public void putInt1_4Bytes(int number) { if (number < 0) { throw new IllegalArgumentException("Cannot encode negative number"); } //no need to check upper boundary, since INT_MAX == 2^31 if (number < 0x80) { //length 1 byte put((byte) number); } else { //length 4 bytes putInt(number | 0x80000000); } }
/** * Write out the value of raw field * * @param field - field description (name and data type) * @param value - field value */ public void write(FieldBase field, Raw value) { ByteBuffer rawBuf = value.getByteBuffer(); int origPos = rawBuf.position(); buf.putInt(rawBuf.remaining()); buf.put(rawBuf); rawBuf.position(origPos); }
/** * Write out the value of raw field * * @param field - field description (name and data type) * @param value - field value */ public void write(FieldBase field, Raw value) { ByteBuffer rawBuf = value.getByteBuffer(); int origPos = rawBuf.position(); buf.putInt(rawBuf.remaining()); buf.put(rawBuf); rawBuf.position(origPos); }
/** * Writes a 62-bit positive integer to the buffer, using 2, 4, or 8 bytes. * * @param number the integer to write */ public void putInt2_4_8Bytes(long number) { if (number < 0L) { throw new IllegalArgumentException("Cannot encode negative number."); } else if (number > 0x3FFFFFFFFFFFFFFFL) { throw new IllegalArgumentException("Cannot encode number larger than 2^62."); } if (number < 0x8000L) { //length 2 bytes putShort((short) number); } else if (number < 0x40000000L) { //length 4 bytes putInt(((int) number) | 0x80000000); } else { //length 8 bytes putLong(number | 0xC000000000000000L); } }
/** * Writes a 30-bit positive integer to the buffer, using 1, 2, or 4 bytes. * * @param number the integer to write */ public void putInt1_2_4Bytes(int number) { if (number < 0) { throw new IllegalArgumentException("Cannot encode negative number"); } else if (number > 0x3FFFFFFF) { throw new IllegalArgumentException("Cannot encode number larger than 2^30."); } if (number < 0x80) { //length 1 byte put((byte) number); } else if (number < 0x4000) { //length 2 bytes putShort((short) (((short)number) | ((short) 0x8000))); } else { //length 4 bytes putInt(number | 0xC0000000); } }
@Override public void write(FieldBase field, PredicateFieldValue value) { byte[] buf = BinaryFormat.encode(value.getPredicate()); this.buf.putInt(buf.length); this.buf.put(buf); }
@Override public void write(FieldBase field, PredicateFieldValue value) { byte[] buf = BinaryFormat.encode(value.getPredicate()); this.buf.putInt(buf.length); this.buf.put(buf); }