8fedfc7f8c
R=kevmoo@google.com,vsm@google.com Fixes #32304 Change-Id: Ia2c8f99f0125c4d4bd0f95a792ff2af8a58e3599 Reviewed-on: https://dart-review.googlesource.com/60400 Commit-Queue: Terry Lucas <terry@google.com> Reviewed-by: Kevin Moore <kevmoo@google.com>
95 lines
2.4 KiB
Plaintext
95 lines
2.4 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 range, String direction,
|
|
bool 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 range, String direction,
|
|
bool 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
|
|
}
|