frindlymap/lib/modules/sync/src/sync_context.dart

29 lines
793 B
Dart

import 'dart:async';
import 'package:friendly_map/modules/core/core.dart';
import 'package:friendly_map/modules/storage/storage.dart';
import 'conflict.dart';
import 'sync_event.dart';
/// 동기화 부품들이 함께 쓰는 재료 묶음.
class SyncContext {
SyncContext({
required this.storage,
required this.transport,
required this.cipher,
required this.identity,
required this.clock,
}) : conflict = ConflictRule(storage.meta);
final Storage storage;
final Transport transport;
final PayloadCipher cipher;
final IdentityProvider identity;
final Clock clock;
final ConflictRule conflict;
final StreamController<SyncEvent> events = StreamController<SyncEvent>.broadcast(sync: true);
Future<MyProfile?> me() => storage.settings.loadProfile();
}