parseVarArray static method

AsyncBag parseVarArray(
  1. DC data,
  2. int offset,
  3. int length,
  4. DistributedConnection connection,
)
Parse an array of bytes into an array of varialbes. Array of bytes. Zero-indexed offset. Number of bytes to parse. DistributedConnection is required to fetch resources.

Implementation

static AsyncBag<dynamic> parseVarArray(
    DC data, int offset, int length, DistributedConnection connection) {
  var rt = new AsyncBag<dynamic>();
  var sizeObject = new SizeObject();

  while (length > 0) {
    rt.add(parse(data, offset, connection, sizeObject));

    if (sizeObject.size > 0) {
      offset += sizeObject.size;
      length -= sizeObject.size;
    } else
      throw new Exception("Error while parsing structured data");
  }

  rt.seal();
  return rt;
}