@Override public ObjectStream openStream() throws MissingObjectException, IOException { PackChunk pc = firstChunk; if (pc != null) firstChunk = null; else pc = ctx.getChunk(ChunkKey.fromString(meta.getFragment(0))); InputStream in = new ChunkInputStream(meta, ctx, pos, pc); in = new BufferedInputStream(new InflaterInputStream(in), 8192); return new ObjectStream.Filter(type, sz, in); }
@Override public ObjectStream openStream() throws MissingObjectException, IOException { PackChunk pc = firstChunk; if (pc != null) firstChunk = null; else pc = ctx.getChunk(ChunkKey.fromString(meta.getFragment(0))); InputStream in = new ChunkInputStream(meta, ctx, pos, pc); in = new BufferedInputStream(new InflaterInputStream(in), 8192); return new ObjectStream.Filter(type, sz, in); }
if (meta != null) { for (int i = 1; i < meta.getFragmentCount(); i++) keys.add(ChunkKey.fromString(meta.getFragment(i)));
for (int fragId = 1; fragId < cnt; fragId++) { PackChunk pc = ctx.getChunk(ChunkKey.fromString( meta.getFragment(fragId))); pc.copyEntireChunkAsIs(out, obj, validate);
for (int fragId = 1; fragId < cnt; fragId++) { PackChunk pc = ctx.getChunk(ChunkKey.fromString( meta.getFragment(fragId))); pc.copyEntireChunkAsIs(out, obj, validate);
if (meta != null) { for (int i = 1; i < meta.getFragmentCount(); i++) keys.add(ChunkKey.fromString(meta.getFragment(i)));
break; pc = reader.getChunk(ChunkKey.fromString( meta.getFragment(nextChunk++))); if (meta.getFragmentCount() == nextChunk) throw new DataFormatException(MessageFormat.format( DhtText.get().shortCompressedObject, ChunkKey.fromString(meta.getFragment(0)), Integer.valueOf(pos)));
break; pc = reader.getChunk(ChunkKey.fromString( meta.getFragment(nextChunk++))); if (meta.getFragmentCount() == nextChunk) throw new DataFormatException(MessageFormat.format( DhtText.get().shortCompressedObject, ChunkKey.fromString(meta.getFragment(0)), Integer.valueOf(pos)));
@Override public int read(byte[] dstbuf, int dstptr, int dstlen) throws IOException { if (0 == dstlen) return 0; int n = pc.read(ptr, dstbuf, dstptr, dstlen); if (n == 0) { if (fragment == meta.getFragmentCount()) return -1; pc = ctx.getChunk(ChunkKey.fromString( meta.getFragment(++fragment))); ptr = 0; n = pc.read(ptr, dstbuf, dstptr, dstlen); if (n == 0) return -1; } ptr += n; return n; }
@Override public int read(byte[] dstbuf, int dstptr, int dstlen) throws IOException { if (0 == dstlen) return 0; int n = pc.read(ptr, dstbuf, dstptr, dstlen); if (n == 0) { if (fragment == meta.getFragmentCount()) return -1; pc = ctx.getChunk(ChunkKey.fromString( meta.getFragment(++fragment))); ptr = 0; n = pc.read(ptr, dstbuf, dstptr, dstlen); if (n == 0) return -1; } ptr += n; return n; }
static ChunkKey getNextFragment(ChunkMeta meta, ChunkKey chunkKey) { int cnt = meta.getFragmentCount(); for (int i = 0; i < cnt - 1; i++) { ChunkKey key = ChunkKey.fromString(meta.getFragment(i)); if (chunkKey.equals(key)) return ChunkKey.fromString(meta.getFragment(i + 1)); } return null; }
static ChunkKey getNextFragment(ChunkMeta meta, ChunkKey chunkKey) { int cnt = meta.getFragmentCount(); for (int i = 0; i < cnt - 1; i++) { ChunkKey key = ChunkKey.fromString(meta.getFragment(i)); if (chunkKey.equals(key)) return ChunkKey.fromString(meta.getFragment(i + 1)); } return null; }