blob: 08c5d07c6702fd441a3848b9d7171fdde0d2a5fb [file] [log] [blame]
// 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)class $CLASSNAME$EXTENDS$IMPLEMENTS$NATIVESPEC {
@DomName('IDBIndex.count')
Future<int> count([key_OR_range]) {
try {
var request;
if (key_OR_range != null) {
request = $dom_count(key_OR_range);
} else {
request = $dom_count();
}
return _completeRequest(request);
} catch (e, stacktrace) {
return new Future.immediateError(e, stacktrace);
}
}
@DomName('IDBIndex.get')
Future get(key) {
try {
var request = $dom_get(key);
return _completeRequest(request);
} catch (e, stacktrace) {
return new Future.immediateError(e, stacktrace);
}
}
@DomName('IDBIndex.getKey')
Future getKey(key) {
try {
var request = $dom_getKey(key);
return _completeRequest(request);
} catch (e, stacktrace) {
return new Future.immediateError(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) {
request = $dom_openCursor(key_OR_range);
} else {
request = $dom_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) {
request = $dom_openKeyCursor(key_OR_range);
} else {
request = $dom_openKeyCursor(key_OR_range, direction);
}
return ObjectStore._cursorStreamFromResult(request, autoAdvance);
}
$!MEMBERS
}