@Override public void open() throws HyracksDataException { frameReader.open(); frame.reset(); eos = false; first = true; }
@Override public void reset(IFrame frame, boolean clear) throws HyracksDataException { this.frame = frame; if (clear) { this.frame.reset(); } reset(getBuffer(), clear); }
@Override public boolean nextFrame(IFrame outFrame) throws HyracksDataException { IFrameReader currentSender; while (!senders.isEmpty()) { // process the sender at the beginning of the sequence currentSender = senders.getFirst(); outFrame.reset(); if (currentSender.nextFrame(outFrame)) { return true; } else { // done with the current sender, close it, remove it from the Q and process the next one in sequence currentSender.close(); senders.removeFirst(); } } // done with all senders return false; }
private void forward(IFrameWriter outWriter) throws HyracksDataException { getBuffer().clear(); outWriter.nextFrame(getBuffer()); frame.reset(); reset(getBuffer(), true); }
@Override public void write(IFrameWriter outWriter, boolean clearFrame) throws HyracksDataException { getBuffer().clear(); outWriter.nextFrame(getBuffer()); if (clearFrame) { frame.reset(); reset(getBuffer(), true); } }
@Override public Object[] readData() throws HyracksDataException { while (true) { if (eos) { return null; } if (!first && !frameDeserializer.done()) { return frameDeserializer.deserializeRecord(); } frame.reset(); if (!frameReader.nextFrame(frame)) { eos = true; } else { frameDeserializer.reset(frame.getBuffer()); } first = false; } } }
@Override public boolean nextFrame(IFrame frame) throws HyracksDataException { int index = channelReader.findNextSender(); if (index < 0) { return false; } frame.reset(); ByteBuffer srcFrame = channelReader.getNextBuffer(index); int nBlocks = FrameHelper.deserializeNumOfMinFrame(srcFrame); frame.ensureFrameSize(frame.getMinSize() * nBlocks); FrameUtils.copyWholeFrame(srcFrame, frame.getBuffer()); channelReader.recycleBuffer(index, srcFrame); for (int i = 1; i < nBlocks; ++i) { srcFrame = channelReader.getNextBuffer(index); frame.getBuffer().put(srcFrame); channelReader.recycleBuffer(index, srcFrame); } if (frame.getBuffer().hasRemaining()) { // bigger frame FrameHelper.clearRemainingFrame(frame.getBuffer(), frame.getBuffer().position()); } frame.getBuffer().flip(); return true; }
@Override public boolean nextFrame(IFrame frame) throws HyracksDataException { if (readPtr >= size) { return false; } frame.reset(); int readLength = ioManager.syncRead(handle, readPtr, frame.getBuffer()); if (readLength <= 0) { throw new HyracksDataException("Premature end of file"); } readPtr += readLength; frame.ensureFrameSize(frame.getMinSize() * FrameHelper.deserializeNumOfMinFrame(frame.getBuffer())); if (frame.getBuffer().hasRemaining()) { if (readPtr < size) { readLength = ioManager.syncRead(handle, readPtr, frame.getBuffer()); if (readLength < 0) { throw new HyracksDataException("Premature end of file"); } readPtr += readLength; } if (frame.getBuffer().hasRemaining()) { // file is vanished. FrameHelper.clearRemainingFrame(frame.getBuffer(), frame.getBuffer().position()); } } frame.getBuffer().flip(); return true; }
@Override public int read(IFrame frame) throws HyracksDataException { frame.reset(); int readSize = 0; if (isFirstRead() && !hasNextRecord()) {
return false; frame.reset(); ByteBuffer srcFrame = channel.getNextBuffer(); int nBlocks = FrameHelper.deserializeNumOfMinFrame(srcFrame);
@Override public void nextFrame(ByteBuffer buffer) throws HyracksDataException { tAccess.reset(buffer); int nTuple = tAccess.getTupleCount(); for (int t = 0; t < nTuple; t++) { tRef.reset(tAccess, t); try { formLogRecord(buffer, t); logMgr.log(logRecord); if (!isSink) { appendTupleToFrame(t); } } catch (ACIDException e) { throw HyracksDataException.create(e); } } IFrame message = TaskUtil.get(HyracksConstants.KEY_MESSAGE, ctx); if (message != null && MessagingFrameTupleAppender.getMessageType(message) == MessagingFrameTupleAppender.MARKER_MESSAGE) { try { formMarkerLogRecords(message.getBuffer()); logMgr.log(logRecord); } catch (ACIDException e) { throw HyracksDataException.create(e); } message.reset(); message.getBuffer().put(MessagingFrameTupleAppender.NULL_FEED_MESSAGE); message.getBuffer().flip(); } }
rPartbuff.reset(); for (int pid = partitionStatus.nextSetBit(0); pid >= 0; pid = partitionStatus.nextSetBit(pid + 1)) {