add GDSOFTCLASS to FileAccess and DirAccess derived classes

This commit is contained in:
nikitalita 2025-04-09 18:42:17 +00:00
parent a8598cd8e2
commit 2d0ae77719
15 changed files with 19 additions and 0 deletions

View File

@ -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;

View File

@ -36,6 +36,8 @@
#define ENCRYPTED_HEADER_MAGIC 0x43454447
class FileAccessEncrypted : public FileAccess {
GDSOFTCLASS(FileAccessEncrypted, FileAccess);
public:
enum Mode : int32_t {
MODE_READ,

View File

@ -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;

View File

@ -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;

View File

@ -73,6 +73,7 @@ public:
};
class FileAccessZip : public FileAccess {
GDSOFTCLASS(FileAccessZip, FileAccess);
unzFile zfile = nullptr;
unz_file_info64 file_info;

View File

@ -40,6 +40,7 @@
#include <unistd.h>
class DirAccessUnix : public DirAccess {
GDSOFTCLASS(DirAccessUnix, DirAccess);
DIR *dir_stream = nullptr;
bool _cisdir = false;

View File

@ -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;

View File

@ -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 };

View File

@ -37,6 +37,7 @@
struct DirAccessWindowsPrivate;
class DirAccessWindows : public DirAccess {
GDSOFTCLASS(DirAccessWindows, DirAccess);
enum {
MAX_DRIVES = 26
};

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -38,6 +38,7 @@
#include <stdio.h>
class FileAccessAndroid : public FileAccess {
GDSOFTCLASS(FileAccessAndroid, FileAccess);
static AAssetManager *asset_manager;
static jobject j_asset_manager;

View File

@ -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;

View File

@ -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;