yuzu-emu
/
yuzu-mainline
Archived
1
0
Fork 0

Merge pull request #1039 from lioncash/type

vfs: Make type hierarchy objects classes instead of structs
This commit is contained in:
bunnei 2018-08-12 18:43:27 -04:00 committed by GitHub
commit a970709d5d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 17 additions and 11 deletions

View File

@ -15,9 +15,9 @@
namespace FileSys { namespace FileSys {
struct VfsFilesystem; class VfsDirectory;
struct VfsFile; class VfsFile;
struct VfsDirectory; class VfsFilesystem;
// Convenience typedefs to use Vfs* interfaces // Convenience typedefs to use Vfs* interfaces
using VirtualFilesystem = std::shared_ptr<VfsFilesystem>; using VirtualFilesystem = std::shared_ptr<VfsFilesystem>;
@ -34,8 +34,9 @@ enum class VfsEntryType {
// A class representing an abstract filesystem. A default implementation given the root VirtualDir // A class representing an abstract filesystem. A default implementation given the root VirtualDir
// is provided for convenience, but if the Vfs implementation has any additional state or // is provided for convenience, but if the Vfs implementation has any additional state or
// functionality, they will need to override. // functionality, they will need to override.
struct VfsFilesystem : NonCopyable { class VfsFilesystem : NonCopyable {
VfsFilesystem(VirtualDir root); public:
explicit VfsFilesystem(VirtualDir root);
virtual ~VfsFilesystem(); virtual ~VfsFilesystem();
// Gets the friendly name for the filesystem. // Gets the friendly name for the filesystem.
@ -81,7 +82,8 @@ protected:
}; };
// A class representing a file in an abstract filesystem. // A class representing a file in an abstract filesystem.
struct VfsFile : NonCopyable { class VfsFile : NonCopyable {
public:
virtual ~VfsFile(); virtual ~VfsFile();
// Retrieves the file name. // Retrieves the file name.
@ -179,7 +181,8 @@ struct VfsFile : NonCopyable {
}; };
// A class representing a directory in an abstract filesystem. // A class representing a directory in an abstract filesystem.
struct VfsDirectory : NonCopyable { class VfsDirectory : NonCopyable {
public:
virtual ~VfsDirectory(); virtual ~VfsDirectory();
// Retrives the file located at path as if the current directory was root. Returns nullptr if // Retrives the file located at path as if the current directory was root. Returns nullptr if
@ -295,7 +298,8 @@ protected:
// A convenience partial-implementation of VfsDirectory that stubs out methods that should only work // A convenience partial-implementation of VfsDirectory that stubs out methods that should only work
// if writable. This is to avoid redundant empty methods everywhere. // if writable. This is to avoid redundant empty methods everywhere.
struct ReadOnlyVfsDirectory : public VfsDirectory { class ReadOnlyVfsDirectory : public VfsDirectory {
public:
bool IsWritable() const override; bool IsWritable() const override;
bool IsReadable() const override; bool IsReadable() const override;
std::shared_ptr<VfsDirectory> CreateSubdirectory(std::string_view name) override; std::shared_ptr<VfsDirectory> CreateSubdirectory(std::string_view name) override;

View File

@ -15,7 +15,8 @@ namespace FileSys {
// Similar to seeking to an offset. // Similar to seeking to an offset.
// If the file is writable, operations that would write past the end of the offset file will expand // If the file is writable, operations that would write past the end of the offset file will expand
// the size of this wrapper. // the size of this wrapper.
struct OffsetVfsFile : public VfsFile { class OffsetVfsFile : public VfsFile {
public:
OffsetVfsFile(std::shared_ptr<VfsFile> file, size_t size, size_t offset = 0, OffsetVfsFile(std::shared_ptr<VfsFile> file, size_t size, size_t offset = 0,
std::string new_name = "", VirtualDir new_parent = nullptr); std::string new_name = "", VirtualDir new_parent = nullptr);

View File

@ -10,7 +10,8 @@ namespace FileSys {
// An implementation of VfsDirectory that maintains two vectors for subdirectories and files. // An implementation of VfsDirectory that maintains two vectors for subdirectories and files.
// Vector data is supplied upon construction. // Vector data is supplied upon construction.
struct VectorVfsDirectory : public VfsDirectory { class VectorVfsDirectory : public VfsDirectory {
public:
explicit VectorVfsDirectory(std::vector<VirtualFile> files = {}, explicit VectorVfsDirectory(std::vector<VirtualFile> files = {},
std::vector<VirtualDir> dirs = {}, VirtualDir parent = nullptr, std::vector<VirtualDir> dirs = {}, VirtualDir parent = nullptr,
std::string name = ""); std::string name = "");

View File

@ -23,7 +23,7 @@ class HLERequestContext;
} // namespace Kernel } // namespace Kernel
namespace FileSys { namespace FileSys {
struct VfsFilesystem; class VfsFilesystem;
} }
namespace Service { namespace Service {