public ChannelReaderInputViewIterator(BlockChannelReader<MemorySegment> reader, LinkedBlockingQueue<MemorySegment> returnQueue, List<MemorySegment> segments, List<MemorySegment> freeMemTarget, TypeSerializer<E> accessors, int numBlocks) throws IOException { this.accessors = accessors; this.freeMemTarget = freeMemTarget; this.inView = new ChannelReaderInputView(reader, segments, numBlocks, false); }
public void waitForFirstBlock() throws IOException { if (getCurrentSegment() == null) { advance(); } }
static void deserializeFromPages(BinaryRow reuse, ChannelReaderInputView inView, BinaryRowSerializer buildSideSerializer) throws IOException { if (shouldAdvance(inView.getCurrentSegmentLimit() - inView.getCurrentPositionInSegment(), buildSideSerializer)) { inView.advance(); } MemorySegment segment = reuse.getMemorySegment(); int length = toLength(inView.getCurrentSegment().getLong( inView.getCurrentPositionInSegment())); inView.skipBytesToRead(8); if (segment == null || segment.size() < length) { segment = MemorySegmentFactory.wrap(new byte[length]); } inView.readFully(segment.getHeapMemory(), 0, length); reuse.pointTo(segment, 0, length); }
final MemorySegment current = getCurrentSegment(); if (current != null) { list.add(current); clear();
sendReadRequest(memory.get(i)); advance();
@Override public E next(E reuse) throws IOException { try { return this.accessors.deserializeFromPages(reuse, this.inView); } catch (EOFException eofex) { final List<MemorySegment> freeMem = this.inView.close(); if (this.freeMemTarget != null) { this.freeMemTarget.addAll(freeMem); } return null; } }
final MemorySegment current = getCurrentSegment(); if (current != null) { list.add(current); clear();
sendReadRequest(memory.get(i)); advance();
@Override public E next() throws IOException { try { return this.accessors.deserialize(this.inView); } catch (EOFException eofex) { final List<MemorySegment> freeMem = this.inView.close(); if (this.freeMemTarget != null) { this.freeMemTarget.addAll(freeMem); } return null; } } }
public void waitForFirstBlock() throws IOException { if (getCurrentSegment() == null) { advance(); } }
final MemorySegment current = getCurrentSegment(); if (current != null) { list.add(current); clear();
sendReadRequest(memory.get(i)); advance();
public ChannelReaderInputViewIterator(BlockChannelReader<MemorySegment> reader, LinkedBlockingQueue<MemorySegment> returnQueue, List<MemorySegment> segments, List<MemorySegment> freeMemTarget, TypeSerializer<E> accessors, int numBlocks) throws IOException { this.accessors = accessors; this.freeMemTarget = freeMemTarget; this.inView = new ChannelReaderInputView(reader, segments, numBlocks, false); }
@Override public E next(E reuse) throws IOException { try { return this.accessors.deserialize(reuse, this.inView); } catch (EOFException eofex) { final List<MemorySegment> freeMem = this.inView.close(); if (this.freeMemTarget != null) { this.freeMemTarget.addAll(freeMem); } return null; } }
public void waitForFirstBlock() throws IOException { if (getCurrentSegment() == null) { advance(); } }
final MemorySegment current = getCurrentSegment(); if (current != null) { list.add(current); clear();
sendReadRequest(memory.get(i)); advance();