From 9251f7e2f8dbb507f0846c680c6f2af155724e7a Mon Sep 17 00:00:00 2001 From: Emmanuel Gil Peyrot Date: Fri, 12 Sep 2014 00:42:59 +0200 Subject: Core: Add a new File class, obtainable from an Archive, and a stub implementation. --- src/core/file_sys/archive.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/core/file_sys/archive.h') diff --git a/src/core/file_sys/archive.h b/src/core/file_sys/archive.h index ac5630bea..67440ef58 100644 --- a/src/core/file_sys/archive.h +++ b/src/core/file_sys/archive.h @@ -4,7 +4,12 @@ #pragma once +#include + #include "common/common_types.h" +#include "common/bit_field.h" + +#include "core/file_sys/file.h" #include "core/hle/kernel/kernel.h" @@ -13,6 +18,13 @@ namespace FileSys { +union Mode { + u32 hex; + BitField<0, 1, u32> read_flag; + BitField<1, 1, u32> write_flag; + BitField<2, 1, u32> create_flag; +}; + class Archive : NonCopyable { public: /// Supported archive types @@ -35,6 +47,14 @@ public: */ virtual IdCode GetIdCode() const = 0; + /** + * Open a file specified by its path, using the specified mode + * @param path Path relative to the archive + * @param mode Mode to open the file with + * @return Opened file, or nullptr + */ + virtual std::unique_ptr OpenFile(const std::string& path, const Mode mode) const = 0; + /** * Read data from the archive * @param offset Offset in bytes to start reading data from -- cgit v1.2.3