[ledger] Use new PageSnapshot APIs.
LE-618
Change-Id: I8355e14c45625b3ab935bc46beba69abcbd2db90
diff --git a/examples/ledger/todo_list/lib/src/ledger_helpers.dart b/examples/ledger/todo_list/lib/src/ledger_helpers.dart
index 0f876b1..14aaf98 100644
--- a/examples/ledger/todo_list/lib/src/ledger_helpers.dart
+++ b/examples/ledger/todo_list/lib/src/ledger_helpers.dart
@@ -24,7 +24,7 @@
/// Ledger calls, assemble the complete response and call [callback] exactly
/// once.
void getEntriesFromSnapshot(ledger.PageSnapshotProxy snapshot,
- void callback(ledger.Status status, Map<List<int>, String> items)) {
+ void callback(Map<List<int>, String> items)) {
_getEntriesRecursive(snapshot, <List<int>, String>{}, null, callback);
}
@@ -32,21 +32,17 @@
ledger.PageSnapshotProxy snapshot,
Map<List<int>, String> items,
ledger.Token token,
- void callback(ledger.Status status, Map<List<int>, String> items)) async {
+ void callback(Map<List<int>, String> items)) async {
final response = await snapshot.getEntriesInline(Uint8List(0), token);
final status = response.status;
final entries = response.entries;
final nextToken = response.nextToken;
- if (status != ledger.Status.ok && status != ledger.Status.partialResult) {
- callback(status, <List<int>, String>{});
- return;
- }
for (final ledger.InlinedEntry entry in entries) {
items[entry.key] = utf8.decode(entry.inlinedValue.value);
}
- if (status == ledger.Status.ok) {
- callback(ledger.Status.ok, items);
+ if (status == ledger.IterationStatus.ok) {
+ callback(items);
return;
}
await _getEntriesRecursive(snapshot, items, nextToken, callback);
diff --git a/examples/ledger/todo_list/lib/src/models/todo_list_model.dart b/examples/ledger/todo_list/lib/src/models/todo_list_model.dart
index a4bb05d..91700c4 100644
--- a/examples/ledger/todo_list/lib/src/models/todo_list_model.dart
+++ b/examples/ledger/todo_list/lib/src/models/todo_list_model.dart
@@ -71,13 +71,10 @@
}
void _readItems(ledger.PageSnapshotProxy snapshot) {
- getEntriesFromSnapshot(snapshot,
- (ledger.Status status, Map<List<int>, String> items) {
- if (validateLedgerResponse(status, 'getEntries')) {
- _items = items;
- notifyListeners();
- snapshot.ctrl.close();
- }
+ getEntriesFromSnapshot(snapshot, (Map<List<int>, String> items) {
+ _items = items;
+ notifyListeners();
+ snapshot.ctrl.close();
});
}
diff --git a/public/dart/sledge/lib/src/ledger_helpers.dart b/public/dart/sledge/lib/src/ledger_helpers.dart
index 5b4cd48..f096682 100644
--- a/public/dart/sledge/lib/src/ledger_helpers.dart
+++ b/public/dart/sledge/lib/src/ledger_helpers.dart
@@ -26,8 +26,7 @@
/// Real implementation of LedgerObjectsFactory.
class LedgerObjectsFactoryImpl implements LedgerObjectsFactory {
@override
- ledger.PageSnapshotProxy newPageSnapshotProxy() =>
- ledger.PageSnapshotProxy();
+ ledger.PageSnapshotProxy newPageSnapshotProxy() => ledger.PageSnapshotProxy();
@override
ledger.PageWatcherBinding newPageWatcherBinding() =>
@@ -60,28 +59,24 @@
List<int> keyPrefix, {
ledger.Token token,
}) async {
- Completer<ledger.Status> statusCompleter = Completer<ledger.Status>();
+ Completer<ledger.IterationStatus> statusCompleter =
+ Completer<ledger.IterationStatus>();
List<ledger.Entry> entries;
ledger.Token nextToken;
- snapshot.getEntries(keyPrefix ?? Uint8List(0), token,
- (ledger.Status status, List<ledger.Entry> entriesResult,
+ snapshot.getEntriesNew(keyPrefix ?? Uint8List(0), token,
+ (ledger.IterationStatus status, List<ledger.Entry> entriesResult,
ledger.Token nextTokenResult) {
entries = entriesResult;
nextToken = nextTokenResult;
statusCompleter.complete(status);
});
- ledger.Status status = await statusCompleter.future;
-
- if (status != ledger.Status.ok && status != ledger.Status.partialResult) {
- throw Exception(
- 'PageSnapshot::GetEntries() returned an error status: $status');
- }
+ ledger.IterationStatus status = await statusCompleter.future;
result.addAll(entries.takeWhile((entry) => hasPrefix(entry.key, keyPrefix)));
- if (status == ledger.Status.partialResult &&
+ if (status == ledger.IterationStatus.partialResult &&
hasPrefix(entries[entries.length - 1].key, keyPrefix)) {
return _getFullEntriesRecursively(
snapshot,
diff --git a/public/dart/sledge/test/fakes/fake_ledger_page_snapshot.dart b/public/dart/sledge/test/fakes/fake_ledger_page_snapshot.dart
index 25f2ff9..b87d234 100644
--- a/public/dart/sledge/test/fakes/fake_ledger_page_snapshot.dart
+++ b/public/dart/sledge/test/fakes/fake_ledger_page_snapshot.dart
@@ -27,11 +27,12 @@
_FakeProxyController<FakeLedgerPageSnapshot>();
@override
- void getEntries(
+ void getEntriesNew(
Uint8List keyPrefix,
ledger.Token token,
- void callback(ledger.Status status, List<ledger.Entry> entriesResult,
- ledger.Token nextTokenResult)) {
- callback(ledger.Status.ok, _fakeLedgerPage.getEntries(keyPrefix), token);
+ void callback(ledger.IterationStatus status,
+ List<ledger.Entry> entriesResult, ledger.Token nextTokenResult)) {
+ callback(ledger.IterationStatus.ok, _fakeLedgerPage.getEntries(keyPrefix),
+ token);
}
}