#include "components/services/storage/public/cpp/filesystem/filesystem_proxy.h"
#include <memory>
#include <utility>
#include <vector>
#include "base/files/file.h"
#include "base/files/file_util.h"
#include "base/files/important_file_writer.h"
#include "base/task/sequenced_task_runner.h"
#include "base/types/expected.h"
#include "base/types/expected_macros.h"
#include "build/build_config.h"
#include "components/services/storage/public/cpp/filesystem/filesystem_impl.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
namespace storage {
namespace {
class LocalFileLockImpl : public FilesystemProxy::FileLock { … };
class RemoteFileLockImpl : public FilesystemProxy::FileLock { … };
}
FilesystemProxy::FilesystemProxy(decltype(UNRESTRICTED),
const base::FilePath& root)
: … { … }
FilesystemProxy::FilesystemProxy(
decltype(RESTRICTED),
const base::FilePath& root,
mojo::PendingRemote<mojom::Directory> directory,
scoped_refptr<base::SequencedTaskRunner> ipc_task_runner)
: … { … }
FilesystemProxy::~FilesystemProxy() = default;
bool FilesystemProxy::PathExists(const base::FilePath& path) { … }
base::FileErrorOr<std::vector<base::FilePath>>
FilesystemProxy::GetDirectoryEntries(const base::FilePath& path,
DirectoryEntryType type) { … }
base::FileErrorOr<base::File> FilesystemProxy::OpenFile(
const base::FilePath& path,
int flags) { … }
base::File::Error FilesystemProxy::CreateDirectory(const base::FilePath& path) { … }
bool FilesystemProxy::DeleteFile(const base::FilePath& path) { … }
std::optional<base::File::Info> FilesystemProxy::GetFileInfo(
const base::FilePath& path) { … }
std::optional<FilesystemProxy::PathAccessInfo> FilesystemProxy::GetPathAccess(
const base::FilePath& path) { … }
base::File::Error FilesystemProxy::RenameFile(const base::FilePath& old_path,
const base::FilePath& new_path) { … }
base::FileErrorOr<std::unique_ptr<FilesystemProxy::FileLock>>
FilesystemProxy::LockFile(const base::FilePath& path,
bool* same_process_failure) { … }
base::FilePath FilesystemProxy::MakeRelative(const base::FilePath& path) const { … }
base::FilePath FilesystemProxy::MaybeMakeAbsolute(
const base::FilePath& path) const { … }
}