protected int checkReadResponse(Response res, byte[] to, int offset) throws Buffer.BufferException, SFTPException { switch (res.getType()) { case DATA: int recvLen = res.readUInt32AsInt(); System.arraycopy(res.array(), res.rpos(), to, offset, recvLen); return recvLen; case STATUS: res.ensureStatusIs(StatusCode.EOF); return -1; default: throw new SFTPException("Unexpected packet: " + res.getType()); } }
private boolean retrieveUnconfirmedRead(boolean blocking) throws IOException { if (unconfirmedReads.size() <= 0) { return false; } if (!blocking && !unconfirmedReads.peek().isDelivered()) { return false; } unconfirmedReadOffsets.remove(); final Response res = unconfirmedReads.remove().retrieve(requester.getTimeoutMs(), TimeUnit.MILLISECONDS); switch (res.getType()) { case DATA: int recvLen = res.readUInt32AsInt(); responseOffset += recvLen; pending = new ByteArrayInputStream(res.array(), res.rpos(), recvLen); break; case STATUS: res.ensureStatusIs(Response.StatusCode.EOF); eof = true; break; default: throw new SFTPException("Unexpected packet: " + res.getType()); } return true; }
protected int checkReadResponse(Response res, byte[] to, int offset) throws Buffer.BufferException, SFTPException { switch (res.getType()) { case DATA: int recvLen = res.readUInt32AsInt(); System.arraycopy(res.array(), res.rpos(), to, offset, recvLen); return recvLen; case STATUS: res.ensureStatusIs(StatusCode.EOF); return -1; default: throw new SFTPException("Unexpected packet: " + res.getType()); } }
protected int checkReadResponse(Response res, byte[] to, int offset) throws Buffer.BufferException, SFTPException { switch (res.getType()) { case DATA: int recvLen = res.readUInt32AsInt(); System.arraycopy(res.array(), res.rpos(), to, offset, recvLen); return recvLen; case STATUS: res.ensureStatusIs(StatusCode.EOF); return -1; default: throw new SFTPException("Unexpected packet: " + res.getType()); } }
private boolean retrieveUnconfirmedRead(boolean blocking) throws IOException { if (unconfirmedReads.size() <= 0) { return false; } if (!blocking && !unconfirmedReads.peek().isDelivered()) { return false; } unconfirmedReadOffsets.remove(); final Response res = unconfirmedReads.remove().retrieve(requester.getTimeoutMs(), TimeUnit.MILLISECONDS); switch (res.getType()) { case DATA: int recvLen = res.readUInt32AsInt(); responseOffset += recvLen; pending = new ByteArrayInputStream(res.array(), res.rpos(), recvLen); break; case STATUS: res.ensureStatusIs(Response.StatusCode.EOF); eof = true; break; default: throw new SFTPException("Unexpected packet: " + res.getType()); } return true; }