You've already forked godot
							
							
				mirror of
				https://github.com/godotengine/godot.git
				synced 2025-11-04 12:00:25 +00:00 
			
		
		
		
	add GDSOFTCLASS to FileAccess and DirAccess derived classes
This commit is contained in:
		@@ -34,6 +34,7 @@
 | 
			
		||||
#include "core/io/file_access.h"
 | 
			
		||||
 | 
			
		||||
class FileAccessCompressed : public FileAccess {
 | 
			
		||||
	GDSOFTCLASS(FileAccessCompressed, FileAccess);
 | 
			
		||||
	Compression::Mode cmode = Compression::MODE_ZSTD;
 | 
			
		||||
	bool writing = false;
 | 
			
		||||
	uint64_t write_pos = 0;
 | 
			
		||||
 
 | 
			
		||||
@@ -36,6 +36,8 @@
 | 
			
		||||
#define ENCRYPTED_HEADER_MAGIC 0x43454447
 | 
			
		||||
 | 
			
		||||
class FileAccessEncrypted : public FileAccess {
 | 
			
		||||
	GDSOFTCLASS(FileAccessEncrypted, FileAccess);
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
	enum Mode : int32_t {
 | 
			
		||||
		MODE_READ,
 | 
			
		||||
 
 | 
			
		||||
@@ -33,6 +33,7 @@
 | 
			
		||||
#include "core/io/file_access.h"
 | 
			
		||||
 | 
			
		||||
class FileAccessMemory : public FileAccess {
 | 
			
		||||
	GDSOFTCLASS(FileAccessMemory, FileAccess);
 | 
			
		||||
	uint8_t *data = nullptr;
 | 
			
		||||
	uint64_t length = 0;
 | 
			
		||||
	mutable uint64_t pos = 0;
 | 
			
		||||
 
 | 
			
		||||
@@ -157,6 +157,7 @@ public:
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
class FileAccessPack : public FileAccess {
 | 
			
		||||
	GDSOFTCLASS(FileAccessPack, FileAccess);
 | 
			
		||||
	PackedData::PackedFile pf;
 | 
			
		||||
 | 
			
		||||
	mutable uint64_t pos;
 | 
			
		||||
@@ -241,6 +242,7 @@ bool PackedData::has_directory(const String &p_path) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class DirAccessPack : public DirAccess {
 | 
			
		||||
	GDSOFTCLASS(DirAccessPack, DirAccess);
 | 
			
		||||
	PackedData::PackedDir *current;
 | 
			
		||||
 | 
			
		||||
	List<String> list_dirs;
 | 
			
		||||
 
 | 
			
		||||
@@ -73,6 +73,7 @@ public:
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
class FileAccessZip : public FileAccess {
 | 
			
		||||
	GDSOFTCLASS(FileAccessZip, FileAccess);
 | 
			
		||||
	unzFile zfile = nullptr;
 | 
			
		||||
	unz_file_info64 file_info;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -40,6 +40,7 @@
 | 
			
		||||
#include <unistd.h>
 | 
			
		||||
 | 
			
		||||
class DirAccessUnix : public DirAccess {
 | 
			
		||||
	GDSOFTCLASS(DirAccessUnix, DirAccess);
 | 
			
		||||
	DIR *dir_stream = nullptr;
 | 
			
		||||
 | 
			
		||||
	bool _cisdir = false;
 | 
			
		||||
 
 | 
			
		||||
@@ -38,6 +38,7 @@
 | 
			
		||||
#if defined(UNIX_ENABLED)
 | 
			
		||||
 | 
			
		||||
class FileAccessUnix : public FileAccess {
 | 
			
		||||
	GDSOFTCLASS(FileAccessUnix, FileAccess);
 | 
			
		||||
	FILE *f = nullptr;
 | 
			
		||||
	int flags = 0;
 | 
			
		||||
	void check_errors(bool p_write = false) const;
 | 
			
		||||
 
 | 
			
		||||
@@ -38,6 +38,7 @@
 | 
			
		||||
#if defined(UNIX_ENABLED)
 | 
			
		||||
 | 
			
		||||
class FileAccessUnixPipe : public FileAccess {
 | 
			
		||||
	GDSOFTCLASS(FileAccessUnixPipe, FileAccess);
 | 
			
		||||
	bool unlink_on_close = false;
 | 
			
		||||
 | 
			
		||||
	int fd[2] = { -1, -1 };
 | 
			
		||||
 
 | 
			
		||||
@@ -37,6 +37,7 @@
 | 
			
		||||
struct DirAccessWindowsPrivate;
 | 
			
		||||
 | 
			
		||||
class DirAccessWindows : public DirAccess {
 | 
			
		||||
	GDSOFTCLASS(DirAccessWindows, DirAccess);
 | 
			
		||||
	enum {
 | 
			
		||||
		MAX_DRIVES = 26
 | 
			
		||||
	};
 | 
			
		||||
 
 | 
			
		||||
@@ -38,6 +38,7 @@
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
 | 
			
		||||
class FileAccessWindows : public FileAccess {
 | 
			
		||||
	GDSOFTCLASS(FileAccessWindows, FileAccess);
 | 
			
		||||
	FILE *f = nullptr;
 | 
			
		||||
	int flags = 0;
 | 
			
		||||
	void check_errors(bool p_write = false) const;
 | 
			
		||||
 
 | 
			
		||||
@@ -37,7 +37,9 @@
 | 
			
		||||
 | 
			
		||||
#define WIN32_LEAN_AND_MEAN
 | 
			
		||||
#include <windows.h>
 | 
			
		||||
 | 
			
		||||
class FileAccessWindowsPipe : public FileAccess {
 | 
			
		||||
	GDSOFTCLASS(FileAccessWindowsPipe, FileAccess);
 | 
			
		||||
	HANDLE fd[2] = { nullptr, nullptr };
 | 
			
		||||
 | 
			
		||||
	mutable Error last_error = OK;
 | 
			
		||||
 
 | 
			
		||||
@@ -42,6 +42,7 @@
 | 
			
		||||
/// The implementation use jni in order to comply with Android filesystem
 | 
			
		||||
/// access restriction.
 | 
			
		||||
class DirAccessJAndroid : public DirAccessUnix {
 | 
			
		||||
	GDSOFTCLASS(DirAccessJAndroid, DirAccessUnix);
 | 
			
		||||
	static jobject dir_access_handler;
 | 
			
		||||
	static jclass cls;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -38,6 +38,7 @@
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
 | 
			
		||||
class FileAccessAndroid : public FileAccess {
 | 
			
		||||
	GDSOFTCLASS(FileAccessAndroid, FileAccess);
 | 
			
		||||
	static AAssetManager *asset_manager;
 | 
			
		||||
	static jobject j_asset_manager;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -35,6 +35,7 @@
 | 
			
		||||
#include "core/io/file_access.h"
 | 
			
		||||
 | 
			
		||||
class FileAccessFilesystemJAndroid : public FileAccess {
 | 
			
		||||
	GDSOFTCLASS(FileAccessFilesystemJAndroid, FileAccess);
 | 
			
		||||
	static jobject file_access_handler;
 | 
			
		||||
	static jclass cls;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -41,6 +41,8 @@
 | 
			
		||||
#include <unistd.h>
 | 
			
		||||
 | 
			
		||||
class DirAccessMacOS : public DirAccessUnix {
 | 
			
		||||
	GDSOFTCLASS(DirAccessMacOS, DirAccessUnix);
 | 
			
		||||
 | 
			
		||||
protected:
 | 
			
		||||
	virtual String fix_unicode_name(const char *p_name) const override;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user