/** * Creates key-group range with offsets from the given start key-group to end key-group. The order of given offsets * must be aligned with respect to the key-groups in the range. * * @param rangeStart Start key-group of the range (inclusive) * @param rangeEnd End key-group of the range (inclusive) * @param offsets The aligned array of offsets for the given key-groups. */ public KeyGroupRangeOffsets(int rangeStart, int rangeEnd, long[] offsets) { this(KeyGroupRange.of(rangeStart, rangeEnd), offsets); }
/** * Creates key-group range with offsets from the given start key-group to end key-group. * All offsets are initially zero. * * @param rangeStart Start key-group of the range (inclusive) * @param rangeEnd End key-group of the range (inclusive) */ public KeyGroupRangeOffsets(int rangeStart, int rangeEnd) { this(KeyGroupRange.of(rangeStart, rangeEnd)); }
/** * Creates key-group range with offsets from the given start key-group to end key-group. * All offsets are initially zero. * * @param rangeStart Start key-group of the range (inclusive) * @param rangeEnd End key-group of the range (inclusive) */ public KeyGroupRangeOffsets(int rangeStart, int rangeEnd) { this(KeyGroupRange.of(rangeStart, rangeEnd)); }
/** * Creates key-group range with offsets from the given start key-group to end key-group. * All offsets are initially zero. * * @param rangeStart Start key-group of the range (inclusive) * @param rangeEnd End key-group of the range (inclusive) */ public KeyGroupRangeOffsets(int rangeStart, int rangeEnd) { this(KeyGroupRange.of(rangeStart, rangeEnd)); }
/** * Creates key-group range with offsets from the given start key-group to end key-group. The order of given offsets * must be aligned with respect to the key-groups in the range. * * @param rangeStart Start key-group of the range (inclusive) * @param rangeEnd End key-group of the range (inclusive) * @param offsets The aligned array of offsets for the given key-groups. */ public KeyGroupRangeOffsets(int rangeStart, int rangeEnd, long[] offsets) { this(KeyGroupRange.of(rangeStart, rangeEnd), offsets); }
/** * Creates key-group range with offsets from the given start key-group to end key-group. The order of given offsets * must be aligned with respect to the key-groups in the range. * * @param rangeStart Start key-group of the range (inclusive) * @param rangeEnd End key-group of the range (inclusive) * @param offsets The aligned array of offsets for the given key-groups. */ public KeyGroupRangeOffsets(int rangeStart, int rangeEnd, long[] offsets) { this(KeyGroupRange.of(rangeStart, rangeEnd), offsets); }
/** * Creates key-group range with offsets from the given start key-group to end key-group. * All offsets are initially zero. * * @param rangeStart Start key-group of the range (inclusive) * @param rangeEnd End key-group of the range (inclusive) */ public KeyGroupRangeOffsets(int rangeStart, int rangeEnd) { this(KeyGroupRange.of(rangeStart, rangeEnd)); }
/** * Creates key-group range with offsets from the given start key-group to end key-group. The order of given offsets * must be aligned with respect to the key-groups in the range. * * @param rangeStart Start key-group of the range (inclusive) * @param rangeEnd End key-group of the range (inclusive) * @param offsets The aligned array of offsets for the given key-groups. */ public KeyGroupRangeOffsets(int rangeStart, int rangeEnd, long[] offsets) { this(KeyGroupRange.of(rangeStart, rangeEnd), offsets); }
private static KeyedStateHandle deserializeRawKeyedStateHandle(DataInputStream dis) throws IOException { final int type = dis.readByte(); if (NULL_HANDLE == type) { return null; } else if (KEY_GROUPS_HANDLE == type) { int startKeyGroup = dis.readInt(); int numKeyGroups = dis.readInt(); KeyGroupRange keyGroupRange = KeyGroupRange.of(startKeyGroup, startKeyGroup + numKeyGroups - 1); long[] offsets = new long[numKeyGroups]; for (int i = 0; i < numKeyGroups; ++i) { offsets[i] = dis.readLong(); } KeyGroupRangeOffsets keyGroupRangeOffsets = new KeyGroupRangeOffsets( keyGroupRange, offsets); StreamStateHandle stateHandle = deserializeStreamStateHandle(dis); return new KeyGroupsStateHandle(keyGroupRangeOffsets, stateHandle); } else { throw new IllegalStateException("Reading invalid RawKeyedStateHandle, type: " + type); } }
@VisibleForTesting public static KeyedStateHandle deserializeKeyedStateHandle(DataInputStream dis) throws IOException { final int type = dis.readByte(); if (NULL_HANDLE == type) { return null; } else if (KEY_GROUPS_HANDLE == type) { int startKeyGroup = dis.readInt(); int numKeyGroups = dis.readInt(); KeyGroupRange keyGroupRange = KeyGroupRange.of(startKeyGroup, startKeyGroup + numKeyGroups - 1); long[] offsets = new long[numKeyGroups]; for (int i = 0; i < numKeyGroups; ++i) { offsets[i] = dis.readLong(); } KeyGroupRangeOffsets keyGroupRangeOffsets = new KeyGroupRangeOffsets( keyGroupRange, offsets); StreamStateHandle stateHandle = deserializeStreamStateHandle(dis); return new KeyGroupsStateHandle(keyGroupRangeOffsets, stateHandle); } else { throw new IllegalStateException("Reading invalid KeyedStateHandle, type: " + type); } }
@VisibleForTesting public static KeyedStateHandle deserializeKeyedStateHandle(DataInputStream dis) throws IOException { final int type = dis.readByte(); if (NULL_HANDLE == type) { return null; } else if (KEY_GROUPS_HANDLE == type) { int startKeyGroup = dis.readInt(); int numKeyGroups = dis.readInt(); KeyGroupRange keyGroupRange = KeyGroupRange.of(startKeyGroup, startKeyGroup + numKeyGroups - 1); long[] offsets = new long[numKeyGroups]; for (int i = 0; i < numKeyGroups; ++i) { offsets[i] = dis.readLong(); } KeyGroupRangeOffsets keyGroupRangeOffsets = new KeyGroupRangeOffsets( keyGroupRange, offsets); StreamStateHandle stateHandle = deserializeStreamStateHandle(dis); return new KeyGroupsStateHandle(keyGroupRangeOffsets, stateHandle); } else { throw new IllegalStateException("Reading invalid KeyedStateHandle, type: " + type); } }
@VisibleForTesting public static KeyedStateHandle deserializeKeyedStateHandle(DataInputStream dis) throws IOException { final int type = dis.readByte(); if (NULL_HANDLE == type) { return null; } else if (KEY_GROUPS_HANDLE == type) { int startKeyGroup = dis.readInt(); int numKeyGroups = dis.readInt(); KeyGroupRange keyGroupRange = KeyGroupRange.of(startKeyGroup, startKeyGroup + numKeyGroups - 1); long[] offsets = new long[numKeyGroups]; for (int i = 0; i < numKeyGroups; ++i) { offsets[i] = dis.readLong(); } KeyGroupRangeOffsets keyGroupRangeOffsets = new KeyGroupRangeOffsets( keyGroupRange, offsets); StreamStateHandle stateHandle = deserializeStreamStateHandle(dis); return new KeyGroupsStateHandle(keyGroupRangeOffsets, stateHandle); } else { throw new IllegalStateException("Reading invalid KeyedStateHandle, type: " + type); } }
@VisibleForTesting public static KeyedStateHandle deserializeKeyedStateHandle(DataInputStream dis) throws IOException { final int type = dis.readByte(); if (NULL_HANDLE == type) { return null; } else if (KEY_GROUPS_HANDLE == type) { int startKeyGroup = dis.readInt(); int numKeyGroups = dis.readInt(); KeyGroupRange keyGroupRange = KeyGroupRange.of(startKeyGroup, startKeyGroup + numKeyGroups - 1); long[] offsets = new long[numKeyGroups]; for (int i = 0; i < numKeyGroups; ++i) { offsets[i] = dis.readLong(); } KeyGroupRangeOffsets keyGroupRangeOffsets = new KeyGroupRangeOffsets( keyGroupRange, offsets); StreamStateHandle stateHandle = deserializeStreamStateHandle(dis); return new KeyGroupsStateHandle(keyGroupRangeOffsets, stateHandle); } else { throw new IllegalStateException("Reading invalid KeyedStateHandle, type: " + type); } }
int numKeyGroups = dis.readInt(); KeyGroupRange keyGroupRange = KeyGroupRange.of(startKeyGroup, startKeyGroup + numKeyGroups - 1); long[] offsets = new long[numKeyGroups]; for (int i = 0; i < numKeyGroups; ++i) { int numKeyGroups = dis.readInt(); KeyGroupRange keyGroupRange = KeyGroupRange.of(startKeyGroup, startKeyGroup + numKeyGroups - 1);
int numKeyGroups = dis.readInt(); KeyGroupRange keyGroupRange = KeyGroupRange.of(startKeyGroup, startKeyGroup + numKeyGroups - 1); long[] offsets = new long[numKeyGroups]; for (int i = 0; i < numKeyGroups; ++i) { int numKeyGroups = dis.readInt(); KeyGroupRange keyGroupRange = KeyGroupRange.of(startKeyGroup, startKeyGroup + numKeyGroups - 1);
int numKeyGroups = dis.readInt(); KeyGroupRange keyGroupRange = KeyGroupRange.of(startKeyGroup, startKeyGroup + numKeyGroups - 1); long[] offsets = new long[numKeyGroups]; for (int i = 0; i < numKeyGroups; ++i) { int numKeyGroups = dis.readInt(); KeyGroupRange keyGroupRange = KeyGroupRange.of(startKeyGroup, startKeyGroup + numKeyGroups - 1);
int numKeyGroups = dis.readInt(); KeyGroupRange keyGroupRange = KeyGroupRange.of(startKeyGroup, startKeyGroup + numKeyGroups - 1); long[] offsets = new long[numKeyGroups]; for (int i = 0; i < numKeyGroups; ++i) { int numKeyGroups = dis.readInt(); KeyGroupRange keyGroupRange = KeyGroupRange.of(startKeyGroup, startKeyGroup + numKeyGroups - 1);