diff options
Diffstat (limited to 'src/core/file_sys/path_parser.h')
-rw-r--r-- | src/core/file_sys/path_parser.h | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/src/core/file_sys/path_parser.h b/src/core/file_sys/path_parser.h deleted file mode 100644 index 184f59d55..000000000 --- a/src/core/file_sys/path_parser.h +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2016 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#pragma once - -#include <string> -#include <vector> -#include "core/file_sys/filesystem.h" - -namespace FileSys { - -/** - * A helper class parsing and verifying a string-type Path. - * Every archives with a sub file system should use this class to parse the path argument and check - * the status of the file / directory in question on the host file system. - */ -class PathParser { -public: - explicit PathParser(const Path& path); - - /** - * Checks if the Path is valid. - * This function should be called once a PathParser is constructed. - * A Path is valid if: - * - it is a string path (with type LowPathType::Char or LowPathType::Wchar), - * - it starts with "/" (this seems a hard requirement in real 3DS), - * - it doesn't contain invalid characters, and - * - it doesn't go out of the root directory using "..". - */ - bool IsValid() const { - return is_valid; - } - - /// Checks if the Path represents the root directory. - bool IsRootDirectory() const { - return is_root; - } - - enum HostStatus { - InvalidMountPoint, - PathNotFound, // "/a/b/c" when "a" doesn't exist - FileInPath, // "/a/b/c" when "a" is a file - FileFound, // "/a/b/c" when "c" is a file - DirectoryFound, // "/a/b/c" when "c" is a directory - NotFound // "/a/b/c" when "a/b/" exists but "c" doesn't exist - }; - - /// Checks the status of the specified file / directory by the Path on the host file system. - HostStatus GetHostStatus(const std::string& mount_point) const; - - /// Builds a full path on the host file system. - std::string BuildHostPath(const std::string& mount_point) const; - -private: - std::vector<std::string> path_sequence; - bool is_valid{}; - bool is_root{}; -}; - -} // namespace FileSys |