diff options
| author | bunnei <bunneidev@gmail.com> | 2014-11-17 22:26:54 -0500 |
|---|---|---|
| committer | bunnei <bunneidev@gmail.com> | 2014-11-17 22:26:54 -0500 |
| commit | b66859714bda5968e36fed47a2ff8516bcfd2248 (patch) | |
| tree | f1a933079afdfea73e76a187441733642489e2b0 /src/core/file_sys/archive.h | |
| parent | 4ac4c3caf1ddcb645ef1ee877163eaf93cd5f1c5 (diff) | |
| parent | 11641b5e7913a90d2428d7a3ad04b9963e9fa278 (diff) | |
Merge pull request #192 from bunnei/fs-fix-paths
FileSys: Updates backend code to use FileSys::Path and fixes binary path types.
Diffstat (limited to 'src/core/file_sys/archive.h')
| -rw-r--r-- | src/core/file_sys/archive.h | 35 |
1 files changed, 32 insertions, 3 deletions
diff --git a/src/core/file_sys/archive.h b/src/core/file_sys/archive.h index 38145eed8..dc2d2ced9 100644 --- a/src/core/file_sys/archive.h +++ b/src/core/file_sys/archive.h @@ -74,6 +74,35 @@ public: return type; } + /** + * Gets the string representation of the path for debugging + * @return String representation of the path for debugging + */ + const std::string DebugStr() const { + switch (GetType()) { + case Invalid: + return "[Invalid]"; + case Empty: + return "[Empty]"; + case Binary: + { + std::stringstream res; + res << "[Binary: "; + for (unsigned byte : binary) + res << std::hex << std::setw(2) << std::setfill('0') << byte; + res << ']'; + return res.str(); + } + case Char: + return "[Char: " + AsString() + ']'; + case Wchar: + return "[Wchar: " + AsString() + ']'; + default: + ERROR_LOG(KERNEL, "LowPathType cannot be converted to string!"); + return {}; + } + } + const std::string AsString() const { switch (GetType()) { case Char: @@ -153,21 +182,21 @@ public: * @param mode Mode to open the file with * @return Opened file, or nullptr */ - virtual std::unique_ptr<File> OpenFile(const std::string& path, const Mode mode) const = 0; + virtual std::unique_ptr<File> OpenFile(const Path& path, const Mode mode) const = 0; /** * Create a directory specified by its path * @param path Path relative to the archive * @return Whether the directory could be created */ - virtual bool CreateDirectory(const std::string& path) const = 0; + virtual bool CreateDirectory(const Path& path) const = 0; /** * Open a directory specified by its path * @param path Path relative to the archive * @return Opened directory, or nullptr */ - virtual std::unique_ptr<Directory> OpenDirectory(const std::string& path) const = 0; + virtual std::unique_ptr<Directory> OpenDirectory(const Path& path) const = 0; /** * Read data from the archive |
