SubscriptionManager constructor

SubscriptionManager(
  1. SpacetimeDbConnection _connection, {
  2. OfflineStorage? offlineStorage,
  3. OfflineQueuePolicy queuePolicy = const OfflineQueuePolicy(),
})

Implementation

SubscriptionManager(
  this._connection, {
  OfflineStorage? offlineStorage,
  OfflineQueuePolicy queuePolicy = const OfflineQueuePolicy(),
}) {
  _optimisticState = OptimisticStateManager(cache);

  if (offlineStorage != null) {
    late ReducerCaller caller;
    _mutationSyncer = MutationSyncer(
      connection: _connection,
      storage: offlineStorage,
      optimisticState: _optimisticState,
      cache: cache,
      send:
          (name, args, {requestId}) =>
              caller.callWithBytes(name, args, requestId: requestId),
      policy: queuePolicy,
    );
    caller = ReducerCaller(
      _connection,
      offlineStorage: offlineStorage,
      mutationHandler: _mutationSyncer,
      policy: queuePolicy,
    );
    reducers = caller;
  } else {
    reducers = ReducerCaller(_connection);
  }

  _startListening();
  _startConnectionMonitoring();
}