mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu.git
				synced 2025-05-12 00:45:25 +00:00 
			
		
		
		
	Merge pull request #1039 from lioncash/type
vfs: Make type hierarchy objects classes instead of structs
This commit is contained in:
		
						commit
						a970709d5d
					
				| @ -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; | ||||||
|  | |||||||
| @ -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); | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -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 = ""); | ||||||
|  | |||||||
| @ -23,7 +23,7 @@ class HLERequestContext; | |||||||
| } // namespace Kernel
 | } // namespace Kernel
 | ||||||
| 
 | 
 | ||||||
| namespace FileSys { | namespace FileSys { | ||||||
| struct VfsFilesystem; | class VfsFilesystem; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| namespace Service { | namespace Service { | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 bunnei
						bunnei