mirror of
https://git.citron-emu.org/Citron/Citron.git
synced 2025-02-07 08:46:25 +01:00
* Add VfsFile and VfsDirectory classes * Finish abstract Vfs classes * Implement RealVfsFile (computer fs backend) * Finish RealVfsFile and RealVfsDirectory * Finished OffsetVfsFile * More changes * Fix import paths * Major refactor * Remove double const * Use experimental/filesystem or filesystem depending on compiler * Port partition_filesystem * More changes * More Overhaul * FSP_SRV fixes * Fixes and testing * Try to get filesystem to compile * Filesystem on linux * Remove std::filesystem and document/test * Compile fixes * Missing include * Bug fixes * Fixes * Rename v_file and v_dir * clang-format fix * Rename NGLOG_* to LOG_* * Most review changes * Fix TODO * Guess 'main' to be Directory by filename
69 lines
1.4 KiB
C++
69 lines
1.4 KiB
C++
// Copyright 2018 yuzu emulator team
|
|
// Licensed under GPLv2 or any later version
|
|
// Refer to the license.txt file included.
|
|
|
|
#pragma once
|
|
|
|
#include <memory>
|
|
#include <string>
|
|
#include <utility>
|
|
#include <vector>
|
|
#include "common/bit_field.h"
|
|
#include "common/common_types.h"
|
|
#include "common/swap.h"
|
|
#include "core/hle/result.h"
|
|
|
|
namespace FileSys {
|
|
|
|
class StorageBackend;
|
|
class DirectoryBackend;
|
|
|
|
// Path string type
|
|
enum LowPathType : u32 {
|
|
Invalid = 0,
|
|
Empty = 1,
|
|
Binary = 2,
|
|
Char = 3,
|
|
Wchar = 4,
|
|
};
|
|
|
|
enum EntryType : u8 {
|
|
Directory = 0,
|
|
File = 1,
|
|
};
|
|
|
|
enum class Mode : u32 {
|
|
Read = 1,
|
|
Write = 2,
|
|
Append = 4,
|
|
};
|
|
|
|
class Path {
|
|
public:
|
|
Path() : type(Invalid) {}
|
|
Path(const char* path) : type(Char), string(path) {}
|
|
Path(std::vector<u8> binary_data) : type(Binary), binary(std::move(binary_data)) {}
|
|
Path(LowPathType type, u32 size, u32 pointer);
|
|
|
|
LowPathType GetType() const {
|
|
return type;
|
|
}
|
|
|
|
/**
|
|
* Gets the string representation of the path for debugging
|
|
* @return String representation of the path for debugging
|
|
*/
|
|
std::string DebugStr() const;
|
|
|
|
std::string AsString() const;
|
|
std::u16string AsU16Str() const;
|
|
std::vector<u8> AsBinary() const;
|
|
|
|
private:
|
|
LowPathType type;
|
|
std::vector<u8> binary;
|
|
std::string string;
|
|
std::u16string u16str;
|
|
};
|
|
|
|
} // namespace FileSys
|