start method

Future<void> start()

Start sync engine

Implementation

Future<void> start() async {
  if (_isRunning) return;
  _isRunning = true;

  // Listen to connectivity changes
  _connectivitySubscription =
      _connectivityService.onConnectivityChanged.listen((isOnline) {
    // Emit connectivity change event
    _eventController.add(SyncEvent(
      type: SyncEventType.connectivityChanged,
      metadata: {'isOnline': isOnline},
    ));

    if (isOnline) {
      // Reset failed operations when coming back online
      _resetFailedOperations();
      _performSync();
    }
  });

  // Start periodic sync
  _syncTimer = Timer.periodic(_config.syncInterval, (_) {
    if (_connectivityService.isOnline) {
      _performSync();
    }
  });

  // Initial sync if online
  if (_connectivityService.isOnline) {
    await _performSync();
  }
}