private bool makeDataAvailable(long n) { if (n >= bufferStart && n < bufferStart + bufferDataSize) { return(true); } if (reader is cape.SeekableReader) { var block = n / bufferSize; var blockPos = block * bufferSize; if (readPos != blockPos) { if (((cape.SeekableReader)reader).setCurrentPosition((long)blockPos) == false) { return(false); } readPos = blockPos; } } bufferDataSize = (long)reader.read(buffer); bufferStart = readPos; readPos += bufferDataSize; if (n >= bufferStart && n < bufferStart + bufferDataSize) { return(true); } return(false); }
public virtual int read(byte[] buffer) { if (reader == null) { return(-1); } return(reader.read(buffer)); }
public byte[] read1() { if (!(reader != null)) { return(null); } if (!(buffer1 != null)) { buffer1 = new byte[1]; } var r = reader.read(buffer1); if (!(r == 1)) { close(); return(null); } return(buffer1); }
public static byte[] readFrom(cape.Reader reader) { if (reader == null) { return(null); } byte[] v = null; var tmp = new byte[1024]; while (true) { var r = reader.read(tmp); if (r < 1) { break; } v = cape.Buffer.append(v, tmp, (long)r); if (v == null) { break; } } return(v); }