NetworkManager constructor

NetworkManager({
  1. NetworkManagerConfig? config,
  2. NetworkStatusMonitor? monitor,
  3. CacheManager? cacheManager,
  4. RequestQueue? queue,
  5. SyncEngine? syncEngine,
  6. Connectivity? connectivity,
  7. NetworkLogger? logger,
})

Creates a NetworkManager with sensible defaults.

All sub-components can be overridden for testing or customization.

Implementation

NetworkManager({
  NetworkManagerConfig? config,
  NetworkStatusMonitor? monitor,
  CacheManager? cacheManager,
  RequestQueue? queue,
  SyncEngine? syncEngine,
  Connectivity? connectivity,
  NetworkLogger? logger,
})  : _config = config ?? const NetworkManagerConfig(),
      _logger = logger ?? NetworkLogger.defaultLogger {
  // Initialize sub-components.
  _monitor = monitor ??
      NetworkStatusMonitor(
        connectivity: connectivity,
        logger: _logger,
      );

  _cache = cacheManager ??
      CacheManager(
        defaultTtl: _config.defaultCacheTtl,
        logger: _logger,
      );

  _queue = queue ?? RequestQueue(logger: _logger);

  _syncEngine = syncEngine ??
      SyncEngine(
        monitor: _monitor,
        queue: _queue,
        cacheManager: _cache,
        logger: _logger,
      );

  // Merge connectivity and sync states into a single stream.
  _setupStateStream();

  if (_config.autoStart) {
    initialize();
  }
}