JJ_MKVMaker/lib/core/remote_fs.dart

24 lines
847 B
Dart

import 'webdav.dart' show DavItem;
/// 원격 저장소 (WebDAV · SFTP) 의 공통 동작. vfs 가 경로의 서버 종류 (dav:// · sftp://) 에 맞는 것을 부른다.
/// 경로 [rel] 은 서버 기준 ("/" 로 시작, 맨 위는 "/").
abstract class RemoteClient {
Future<List<DavItem>> list(String rel);
/// 없으면 null
Future<DavItem?> stat(String rel);
Future<void> mkdirs(String rel);
/// 지우기 (폴더면 안의 것까지)
Future<void> delete(String rel);
/// 같은 서버 안에서 옮기기 · 이름 바꾸기
Future<void> move(String from, String to, {bool overwrite = false});
Future<Stream<List<int>>> openRead(String rel);
Future<void> write(String rel, Stream<List<int>> data, {int? length});
/// (남은 공간, 쓴 공간) - 모르면 null
Future<(int?, int?)> quota();
void close();
}