getDataStream method

  1. @override
Future<List<DataStreamBatch>> getDataStream(
  1. DataStreamId dataStream,
  2. int fromSequenceId, [
  3. int? toSequenceIdInclusive
])
override

Retrieve all data points in dataStream that fall within the inclusive range defined by fromSequenceId and toSequenceIdInclusive. If toSequenceIdInclusive is null, all data points starting fromSequenceId are returned.

In case no data for dataStream is stored in this repository, or is available for the specified range, an empty list is returned.

Throws IllegalArgumentException if:

  • dataStream has never been opened
  • the dataStream does not exist (i.e, that the combination of dataStream.deviceRoleName and dataStream.dataType is correct for the protocol used in the dataStream.studyDeploymentId deployment.)
  • fromSequenceId is negative or toSequenceIdInclusive is smaller than fromSequenceId

Implementation

@override
Future<List<DataStreamBatch>> getDataStream(
  DataStreamId dataStream,
  int fromSequenceId, [
  int? toSequenceIdInclusive,
]) async {
  Map<String, dynamic> responseJson = await _rpc(GetDataStream(
    dataStream,
    fromSequenceId,
    toSequenceIdInclusive,
  ));

  // we expect a list of 'items'
  List<dynamic> items = responseJson['items'] as List<dynamic>;

  return (items.isEmpty)
      ? []
      : items
          .map((item) =>
              DataStreamBatch.fromJson(item as Map<String, dynamic>))
          .toList();
}