Core: Add a new File class, obtainable from an Archive, and a stub implementation.
This commit is contained in:
parent
6b7b36a874
commit
9251f7e2f8
7 changed files with 208 additions and 0 deletions
|
@ -4,7 +4,12 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include <memory>
|
||||
|
||||
#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<File> 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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue