readAll method

int readAll(
  1. Int8List buffer,
  2. int offset,
  3. int length
)

Guarantees that all of length bytes are actually read off the transport. Returns the number of bytes actually read, which must be equal to length. Throws TTransportError if there was an error reading data

Implementation

int readAll(Int8List buffer, int offset, int length) {
  int got = 0;
  int ret = 0;
  while (got < length) {
    ret = read(buffer, offset + got, length - got);
    if (ret <= 0) {
      throw TTransportError(
          TTransportErrorType.UNKNOWN,
          "Cannot read. Remote side has closed. Tried to read $length "
          "bytes, but only got $got bytes.");
    }
    got += ret;
  }
  return got;
}