unsubscribe method

void unsubscribe(
  1. int querySetId, {
  2. int requestId = 0,
  3. bool sendDroppedRows = false,
})

Remove a subscription. Set sendDroppedRows: true to receive the dropped-row payload on the resulting UnsubscribeApplied (slice 5 / v2.rs:86-93). The default is false — server sends no dropped rows.

Implementation

void unsubscribe(
  int querySetId, {
  int requestId = 0,
  bool sendDroppedRows = false,
}) {
  final message = UnsubscribeMessage(
    querySetId: querySetId,
    requestId: requestId,
    flags:
        sendDroppedRows
            ? UnsubscribeFlags.sendDroppedRows
            : UnsubscribeFlags.defaultFlag,
  );
  _connection.send(message.encode());
  final queries = _subscriptionsByQuerySetId.remove(querySetId);
  final retainTag = _retainTagFor(queries);
  _dropQuerySetEverywhere(querySetId, retainTag: retainTag);
  if (retainTag != null) {
    _mutationSyncer?.persistTableSnapshots(
      onlyTables: _tablesFromQueries(queries!),
    );
  }
}