/** * Split blocks according to maximum split length. * * @param start Start position. * @param len Length. * @param maxLen Maximum allowed length. * @param nodes Affinity nodes. * @param res Where to put results. */ private void splitBlocks(long start, long len, long maxLen, Collection<GridNode> nodes, Collection<GridGgfsBlockLocation> res) { if (maxLen > 0) { long end = start + len; long start0 = start; while (start0 < end) { long len0 = Math.min(maxLen, end - start0); res.add(new GridGgfsBlockLocationImpl(start0, len0, nodes)); start0 += len0; } } else res.add(new GridGgfsBlockLocationImpl(start, len, nodes)); }
/** * @param start Start. * @param len Length. * @param nodes Affinity nodes. */ public GridGgfsBlockLocationImpl(long start, long len, Collection<GridNode> nodes) { assert start >= 0; assert len > 0; assert nodes != null && !nodes.isEmpty(); this.start = start; this.len = len; convertFromNodes(nodes); }
GridGgfsBlockLocationImpl location = new GridGgfsBlockLocationImpl(); location.readExternal(in);
GridGgfsBlockLocationImpl location = new GridGgfsBlockLocationImpl(); location.readExternal(in);
/** * @param start Start. * @param len Length. * @param nodes Affinity nodes. */ public GridGgfsBlockLocationImpl(long start, long len, Collection<GridNode> nodes) { assert start >= 0; assert len > 0; assert nodes != null && !nodes.isEmpty(); this.start = start; this.len = len; convertFromNodes(nodes); }
/** * Split blocks according to maximum split length. * * @param start Start position. * @param len Length. * @param maxLen Maximum allowed length. * @param nodes Affinity nodes. * @param res Where to put results. */ private void splitBlocks(long start, long len, long maxLen, Collection<GridNode> nodes, Collection<GridGgfsBlockLocation> res) { if (maxLen > 0) { long end = start + len; long start0 = start; while (start0 < end) { long len0 = Math.min(maxLen, end - start0); res.add(new GridGgfsBlockLocationImpl(start0, len0, nodes)); start0 += len0; } } else res.add(new GridGgfsBlockLocationImpl(start, len, nodes)); }