3776313e65
Introduces NULLASSERT token and NNBD condition to allow code to conditionally compile with NNBD. Change-Id: Ib71e439f32c793e69b66c328cd7c9900358d886e Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134045 Commit-Queue: Srujan Gaddam <srujzs@google.com> Reviewed-by: Sigmund Cherem <sigmund@google.com>
95 lines
2.5 KiB
Plaintext
95 lines
2.5 KiB
Plaintext
// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
|
|
// for details. All rights reserved. Use of this source code is governed by a
|
|
// BSD-style license that can be found in the LICENSE file.
|
|
|
|
part of $LIBRARYNAME;
|
|
|
|
$(ANNOTATIONS)$(NATIVESPEC)$(CLASS_MODIFIERS)class $CLASSNAME$EXTENDS$IMPLEMENTS {
|
|
Future<int> count([key_OR_range]) {
|
|
try {
|
|
var request = _count(key_OR_range);
|
|
return _completeRequest(request);
|
|
} catch (e, stacktrace) {
|
|
return new Future.error(e, stacktrace);
|
|
}
|
|
}
|
|
|
|
Future get(key) {
|
|
try {
|
|
var request = _get(key);
|
|
|
|
return _completeRequest(request);
|
|
} catch (e, stacktrace) {
|
|
return new Future.error(e, stacktrace);
|
|
}
|
|
}
|
|
|
|
Future getKey(key) {
|
|
try {
|
|
var request = _getKey(key);
|
|
|
|
return _completeRequest(request);
|
|
} catch (e, stacktrace) {
|
|
return new Future.error(e, stacktrace);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Creates a stream of cursors over the records in this object store.
|
|
*
|
|
* See also:
|
|
*
|
|
* * [ObjectStore.openCursor]
|
|
*/
|
|
Stream<CursorWithValue> openCursor({key, KeyRange$NULLABLE range,
|
|
String$NULLABLE direction, bool$NULLABLE autoAdvance}) {
|
|
var key_OR_range = null;
|
|
if (key != null) {
|
|
if (range != null) {
|
|
throw new ArgumentError('Cannot specify both key and range.');
|
|
}
|
|
key_OR_range = key;
|
|
} else {
|
|
key_OR_range = range;
|
|
}
|
|
var request;
|
|
if (direction == null) {
|
|
// FIXME: Passing in "next" should be unnecessary.
|
|
request = _openCursor(key_OR_range, "next");
|
|
} else {
|
|
request = _openCursor(key_OR_range, direction);
|
|
}
|
|
return ObjectStore._cursorStreamFromResult(request, autoAdvance);
|
|
}
|
|
|
|
/**
|
|
* Creates a stream of cursors over the records in this object store.
|
|
*
|
|
* See also:
|
|
*
|
|
* * [ObjectStore.openCursor]
|
|
*/
|
|
Stream<Cursor> openKeyCursor({key, KeyRange$NULLABLE range,
|
|
String$NULLABLE direction, bool$NULLABLE autoAdvance}) {
|
|
var key_OR_range = null;
|
|
if (key != null) {
|
|
if (range != null) {
|
|
throw new ArgumentError('Cannot specify both key and range.');
|
|
}
|
|
key_OR_range = key;
|
|
} else {
|
|
key_OR_range = range;
|
|
}
|
|
var request;
|
|
if (direction == null) {
|
|
// FIXME: Passing in "next" should be unnecessary.
|
|
request = _openKeyCursor(key_OR_range, "next");
|
|
} else {
|
|
request = _openKeyCursor(key_OR_range, direction);
|
|
}
|
|
return ObjectStore._cursorStreamFromResult(request, autoAdvance);
|
|
}
|
|
|
|
$!MEMBERS
|
|
}
|