29 lines
793 B
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();
|
|
}
|