/** {@inheritDoc} */ @Override public int dataStartOffset() { int typeId = BinaryPrimitives.readInt(ptr, start + GridBinaryMarshaller.TYPE_ID_POS); if (typeId == GridBinaryMarshaller.UNREGISTERED_TYPE_ID) { int len = BinaryPrimitives.readInt(ptr, start + GridBinaryMarshaller.DFLT_HDR_LEN + 1); return start + GridBinaryMarshaller.DFLT_HDR_LEN + len + 5; } else return start + GridBinaryMarshaller.DFLT_HDR_LEN; }
/** {@inheritDoc} */ @Override public int dataStartOffset() { int typeId = BinaryPrimitives.readInt(arr, start + GridBinaryMarshaller.TYPE_ID_POS); if (typeId == GridBinaryMarshaller.UNREGISTERED_TYPE_ID) { int len = BinaryPrimitives.readInt(arr, start + GridBinaryMarshaller.DFLT_HDR_LEN + 1); return start + GridBinaryMarshaller.DFLT_HDR_LEN + len + 5; } else return start + GridBinaryMarshaller.DFLT_HDR_LEN; }
/** * @param off Offset related to {@link #pos} * @return Read int value. */ public int readInt(int off) { return BinaryPrimitives.readInt(arr, pos + off); }
/** * Read string length. * * @return String length. */ public int readStringLength() { return BinaryPrimitives.readInt(arr, pos); }
/** {@inheritDoc} */ @Override public int length() { return BinaryPrimitives.readInt(arr, start + GridBinaryMarshaller.TOTAL_LEN_POS); }
/** {@inheritDoc} */ @Override public int readIntPositioned(int pos) { return BinaryPrimitives.readInt(arr, pos); }
/** {@inheritDoc} */ @Override public int schemaId() { return BinaryPrimitives.readInt(ptr, start + GridBinaryMarshaller.SCHEMA_ID_POS); }
/** * @return Read length of array. */ public int readLength() { return BinaryPrimitives.readInt(arr, pos); }
/** {@inheritDoc} */ @Override public int hashCode() { return BinaryPrimitives.readInt(ptr, start + GridBinaryMarshaller.HASH_CODE_POS); }
/** {@inheritDoc} */ @Override public int schemaId() { return BinaryPrimitives.readInt(arr, start + GridBinaryMarshaller.SCHEMA_ID_POS); }
/** {@inheritDoc} */ @Override public int length() { return BinaryPrimitives.readInt(ptr, start + GridBinaryMarshaller.TOTAL_LEN_POS); }
/** * @param ptr Pointer. * @param off Offset. * @return Value. */ public static float readFloat(long ptr, int off) { int val = readInt(ptr, off); return Float.intBitsToFloat(val); }
/** * @param arr Array. * @param off Offset. * @return Value. */ public static float readFloat(byte[] arr, int off) { int val = readInt(arr, off); return Float.intBitsToFloat(val); }
/** {@inheritDoc} */ @Override public int typeId() { int off = start + GridBinaryMarshaller.TYPE_ID_POS; int typeId = BinaryPrimitives.readInt(arr, off); if (typeId == GridBinaryMarshaller.UNREGISTERED_TYPE_ID) { off = start + GridBinaryMarshaller.DFLT_HDR_LEN; assert arr[off] == GridBinaryMarshaller.STRING : arr[off]; int len = BinaryPrimitives.readInt(arr, ++off); String clsName = new String(arr, off + 4, len, UTF_8); typeId = ctx.typeId(clsName); } return typeId; }
/** {@inheritDoc} */ @Override public int typeId() { int typeId = BinaryPrimitives.readInt(ptr, start + GridBinaryMarshaller.TYPE_ID_POS); if (typeId == GridBinaryMarshaller.UNREGISTERED_TYPE_ID) { int off = start + GridBinaryMarshaller.DFLT_HDR_LEN; String clsName = BinaryUtils.doReadClassName(new BinaryOffheapInputStream(ptr + off, size)); typeId = ctx.typeId(clsName); } return typeId; }
/** {@inheritDoc} */ @Override public int footerStartOffset() { short flags = BinaryPrimitives.readShort(ptr, start + GridBinaryMarshaller.FLAGS_POS); if (!BinaryUtils.hasSchema(flags)) return start + length(); return start + BinaryPrimitives.readInt(ptr, start + GridBinaryMarshaller.SCHEMA_OR_RAW_OFF_POS); }
/** {@inheritDoc} */ @Override public int footerStartOffset() { short flags = BinaryPrimitives.readShort(arr, start + GridBinaryMarshaller.FLAGS_POS); if (!BinaryUtils.hasSchema(flags)) return start + length(); return start + BinaryPrimitives.readInt(arr, start + GridBinaryMarshaller.SCHEMA_OR_RAW_OFF_POS); }
/** {@inheritDoc} */ @Override public BinarySerializedFieldComparator createFieldComparator() { int schemaOff = BinaryPrimitives.readInt(arr, start + GridBinaryMarshaller.SCHEMA_OR_RAW_OFF_POS); short flags = BinaryPrimitives.readShort(arr, start + GridBinaryMarshaller.FLAGS_POS); int fieldIdLen = BinaryUtils.isCompactFooter(flags) ? 0 : BinaryUtils.FIELD_ID_LEN; int fieldOffLen = BinaryUtils.fieldOffsetLength(flags); int orderBase = start + schemaOff + fieldIdLen; int orderMultiplier = fieldIdLen + fieldOffLen; return new BinarySerializedFieldComparator(this, arr, 0L, start, orderBase, orderMultiplier, fieldOffLen); }
/** {@inheritDoc} */ @Override public BinarySerializedFieldComparator createFieldComparator() { int schemaOff = BinaryPrimitives.readInt(ptr, start + GridBinaryMarshaller.SCHEMA_OR_RAW_OFF_POS); short flags = BinaryPrimitives.readShort(ptr, start + GridBinaryMarshaller.FLAGS_POS); int fieldIdLen = BinaryUtils.isCompactFooter(flags) ? 0 : BinaryUtils.FIELD_ID_LEN; int fieldOffLen = BinaryUtils.fieldOffsetLength(flags); int orderBase = start + schemaOff + fieldIdLen; int orderMultiplier = fieldIdLen + fieldOffLen; return new BinarySerializedFieldComparator(this, null, ptr, start, orderBase, orderMultiplier, fieldOffLen); }