SubscriptionManager constructor
SubscriptionManager(
- SpacetimeDbConnection _connection, {
- OfflineStorage? offlineStorage,
- OfflineQueuePolicy queuePolicy = const OfflineQueuePolicy(),
- bool retainRowsOnUnsubscribe = false,
Implementation
SubscriptionManager(
this._connection, {
OfflineStorage? offlineStorage,
OfflineQueuePolicy queuePolicy = const OfflineQueuePolicy(),
bool retainRowsOnUnsubscribe = false,
}) : _retainRowsOnUnsubscribe = retainRowsOnUnsubscribe {
_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);
}
if (_retainRowsOnUnsubscribe) {
_mutationSyncer?.querySetTagResolver = _tagForQuerySetId;
}
_startListening();
_startConnectionMonitoring();
}