subscribe method

Future<int> subscribe(
  1. List<String> queries
)

Subscribe a new query set. Returns the assigned querySetId. Awaits the matching SubscribeApplied so initial rows are in the cache. Resolves without throwing if the manager is disposed first.

Implementation

Future<int> subscribe(List<String> queries) async {
  final querySetId = _nextQuerySetId++;
  _subscriptionsByQuerySetId[querySetId] = List.of(queries);

  final message = SubscribeMessage(queries, querySetId: querySetId);
  _connection.send(message.encode());

  try {
    await onSubscribeApplied.firstWhere((m) => m.querySetId == querySetId);
  } on StateError {
    SdkLogger.d(
      'subscribe($querySetId): manager disposed before SubscribeApplied',
    );
  }
  return querySetId;
}