#pragma once #include "fs/IWritablePack.h" #include "fs/FolderPack.h" #include "fs/Error.h" #include "fs/Mode.h" #include "fs/Api.h" namespace fs { class FS_API WritableFolderPack final : virtual public IWritablePack, public FolderPack { public: explicit WritableFolderPack(AbsPath location); WritableFolderPack(tl::lent_ref filesystem, AbsPath location); ~WritableFolderPack() override = default; OpenSinkResult openSink(const AbsPath& i_path, Mode i_mode, SinkFlags i_flags = SinkFlags()) override; OpenStreamSinkResult openStreamSink(const AbsPath& i_path, Mode i_mode, SinkFlags i_flags = SinkFlags()) override; OpenMapSinkResult openMapSink(const AbsPath& i_path, Mode i_mode, size_t i_size, SinkFlags i_flags = SinkFlags()) override; RemoveResult remove(const AbsPath& i_path) override; RenameResult rename(const AbsPath& i_path, const AbsPath& i_newPath) override; MakeFolderResult makeFolder(const AbsPath& i_path) override; RemoveRecursivelyResult removeRecursively(const AbsPath& i_path) override; SetWriteTimeResult setWriteTime(const AbsPath& i_path, time_t i_time) override; }; }