onUpdate method

  1. @override
void onUpdate(
  1. String streamStatus,
  2. List? updates,
  3. List? columns,
  4. Map? meta,
  5. DSError? error,
)
override

Implementation

@override
void onUpdate(String streamStatus, List? updates, List? columns, Map? meta,
    DSError? error) {
  if (meta != null && meta['mode'] is String) {
    mode = meta['mode'];
  }
  // TODO: implement error
  if (columns != null) {
    if (_cachedColumns == null || mode == 'refresh') {
      _cachedColumns = TableColumn.parseColumns(columns);
    } else {
      _cachedColumns?.addAll(
          TableColumn.parseColumns(columns) as Iterable<TableColumn>);
    }
  } else
    _cachedColumns ??= getNodeColumns(node);

  if (error != null) {
    streamStatus = StreamStatus.closed;
    _controller.add(RequesterInvokeUpdate(null, null, null, streamStatus,
        error: error, meta: meta));
  } else if (updates != null || meta != null || streamStatus != lastStatus) {
    _controller.add(RequesterInvokeUpdate(
        updates, columns, _cachedColumns, streamStatus,
        meta: meta));
  }
  lastStatus = streamStatus;
  if (streamStatus == StreamStatus.closed) {
    _controller.close();
  }
}