singletonFw<T> method
Future<Fw<T>>
singletonFw<
T>({ - required int id,
- required BiDi<List<byte>, T> bidi,
- required T defaultValue,
- required DspReg disposers,
})
Implementation
Future<Fw<T>> singletonFw<T>({
required int id,
required BiDi<List<byte>, T> bidi,
required T defaultValue,
required DspReg disposers,
}) async {
return singletonRecords.blobRecordFw(
id: id,
createRecord: SingletonRecord.new,
bidi: bidi,
defaultValue: defaultValue,
disposers: disposers,
);
//
// T parse(SingletonRecord? record) =>
// record?.blob.let(bidi.forward) ?? defaultValue;
//
// final result = fw(
// parse(
// await singletonRecords.get(id),
// ),
// );
//
// final listening = singletonRecords
// .watchObject(
// id,
// fireImmediately: true,
// )
// .map(parse)
// .listen(result.set);
//
// final updates = StreamController<T>()
// ..closeBy(disposers);
//
// updates.stream.asyncForEach((value) async {
// await writeTxn(() async {
// await singletonRecords.put(
// SingletonRecord()
// ..id = id
// ..blob = bidi.backward(value),
// );
// });
// }).awaitBy(disposers);
//
// disposers.add(() async {
// await listening.cancel();
// await result.dispose();
// });
//
// return mk.Fwi.fromFr(
// fr: result,
// set: (value) {
// updates.add(value);
// result.set(value);
// },
// );
}