read method
Implementation
@override
Future<Uint8List> read(int offset, int count) {
final int safe = clampCount(offset, count);
if (safe == 0) return Future<Uint8List>.value(Uint8List(0));
final Completer<Uint8List> completer = Completer<Uint8List>();
_queue = _queue.then((void _) async {
if (_closed) {
completer.completeError(const UDocError(code: UDocErrorCode.io, message: "Source is closed"));
return;
}
try {
await _handle.setPosition(offset);
completer.complete(await _handle.read(safe));
} on Object catch (e) {
completer.completeError(UDocError(code: UDocErrorCode.io, message: "Read failed", detail: "$e", path: path));
}
});
return completer.future;
}