blob: 2b5a8d60f2ff3b020658c89be41b9852e4dbc235 [file] [log] [blame]
// Copyright (c) 2020, 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.
import 'dart:convert';
import 'dart:typed_data';
import 'package:file/src/io.dart' as io;
import 'package:meta/meta.dart';
/// A [RandomAccessFile] implementation that forwards all methods and properties
/// to a delegate.
abstract class ForwardingRandomAccessFile implements io.RandomAccessFile {
/// The entity to which this entity will forward all methods and properties.
@protected
io.RandomAccessFile get delegate;
@override
String get path => delegate.path;
@override
Future<void> close() => delegate.close();
@override
void closeSync() => delegate.closeSync();
@override
Future<io.RandomAccessFile> flush() async {
await delegate.flush();
return this;
}
@override
void flushSync() => delegate.flushSync();
@override
Future<int> length() => delegate.length();
@override
int lengthSync() => delegate.lengthSync();
@override
Future<io.RandomAccessFile> lock([
io.FileLock mode = io.FileLock.exclusive,
int start = 0,
int end = -1,
]) async {
await delegate.lock(mode, start, end);
return this;
}
@override
void lockSync([
io.FileLock mode = io.FileLock.exclusive,
int start = 0,
int end = -1,
]) =>
delegate.lockSync(mode, start, end);
@override
Future<int> position() => delegate.position();
@override
int positionSync() => delegate.positionSync();
@override
Future<Uint8List> read(int bytes) => delegate.read(bytes);
@override
Uint8List readSync(int bytes) => delegate.readSync(bytes);
@override
Future<int> readByte() => delegate.readByte();
@override
int readByteSync() => delegate.readByteSync();
@override
Future<int> readInto(List<int> buffer, [int start = 0, int? end]) =>
delegate.readInto(buffer, start, end);
@override
int readIntoSync(List<int> buffer, [int start = 0, int? end]) =>
delegate.readIntoSync(buffer, start, end);
@override
Future<io.RandomAccessFile> setPosition(int position) async {
await delegate.setPosition(position);
return this;
}
@override
void setPositionSync(int position) => delegate.setPositionSync(position);
@override
Future<io.RandomAccessFile> truncate(int length) async {
await delegate.truncate(length);
return this;
}
@override
void truncateSync(int length) => delegate.truncateSync(length);
@override
Future<io.RandomAccessFile> unlock([int start = 0, int end = -1]) async {
await delegate.unlock(start, end);
return this;
}
@override
void unlockSync([int start = 0, int end = -1]) =>
delegate.unlockSync(start, end);
@override
Future<io.RandomAccessFile> writeByte(int value) async {
await delegate.writeByte(value);
return this;
}
@override
int writeByteSync(int value) => delegate.writeByteSync(value);
@override
Future<io.RandomAccessFile> writeFrom(
List<int> buffer, [
int start = 0,
int? end,
]) async {
await delegate.writeFrom(buffer, start, end);
return this;
}
@override
void writeFromSync(List<int> buffer, [int start = 0, int? end]) =>
delegate.writeFromSync(buffer, start, end);
@override
Future<io.RandomAccessFile> writeString(
String string, {
Encoding encoding = utf8,
}) async {
await delegate.writeString(string, encoding: encoding);
return this;
}
@override
void writeStringSync(String string, {Encoding encoding = utf8}) =>
delegate.writeStringSync(string, encoding: encoding);
}