Started on JKRFileLoader

This commit is contained in:
Wexos 2021-12-30 16:47:55 +01:00
parent 6017ce99f6
commit 3d6ed5baea
4 changed files with 54 additions and 6 deletions

View File

@ -201,10 +201,10 @@ writeToAram__13JKRAramStreamFP20JKRAramStreamCommand,JKRAramStream.o,JKernel.a,f
write_StreamToAram_Async__13JKRAramStreamFP18JSUFileInputStreamUlUlUlPUl,JKRAramStream.o,JKernel.a,false
sync__13JKRAramStreamFP20JKRAramStreamCommandi,JKRAramStream.o,JKernel.a,false
setTransBuffer__13JKRAramStreamFPUcUlP7JKRHeap,JKRAramStream.o,JKernel.a,false
__ct__13JKRFileLoaderFv,JKRFileLoader.o,JKernel.a,false
__ct__13JKRFileLoaderFv,JKRFileLoader.o,JKernel.a,true
__dt__24JSULink<13JKRFileLoader>Fv,JKRFileLoader.o,JKernel.a,false
__dt__13JKRFileLoaderFv,JKRFileLoader.o,JKernel.a,false
unmount__13JKRFileLoaderFv,JKRFileLoader.o,JKernel.a,false
__dt__13JKRFileLoaderFv,JKRFileLoader.o,JKernel.a,true
unmount__13JKRFileLoaderFv,JKRFileLoader.o,JKernel.a,true
getGlbResource__13JKRFileLoaderFPCcP13JKRFileLoader,JKRFileLoader.o,JKernel.a,false
initializeVolumeList__13JKRFileLoaderFv,JKRFileLoader.o,JKernel.a,false
prependVolumeList__13JKRFileLoaderFP24JSULink<13JKRFileLoader>,JKRFileLoader.o,JKernel.a,false

1 Symbol Name Object File Library Archive Matching
201 write_StreamToAram_Async__13JKRAramStreamFP18JSUFileInputStreamUlUlUlPUl JKRAramStream.o JKernel.a false
202 sync__13JKRAramStreamFP20JKRAramStreamCommandi JKRAramStream.o JKernel.a false
203 setTransBuffer__13JKRAramStreamFPUcUlP7JKRHeap JKRAramStream.o JKernel.a false
204 __ct__13JKRFileLoaderFv JKRFileLoader.o JKernel.a false true
205 __dt__24JSULink<13JKRFileLoader>Fv JKRFileLoader.o JKernel.a false
206 __dt__13JKRFileLoaderFv JKRFileLoader.o JKernel.a false true
207 unmount__13JKRFileLoaderFv JKRFileLoader.o JKernel.a false true
208 getGlbResource__13JKRFileLoaderFPCcP13JKRFileLoader JKRFileLoader.o JKernel.a false
209 initializeVolumeList__13JKRFileLoaderFv JKRFileLoader.o JKernel.a false
210 prependVolumeList__13JKRFileLoaderFP24JSULink<13JKRFileLoader> JKRFileLoader.o JKernel.a false

View File

@ -7,9 +7,10 @@ class JKRHeap;
class JKRDisposer {
public:
JKRDisposer();
virtual ~JKRDisposer();
virtual void unmount() = 0;
JKRHeap* mHeap; // _4
JSULink<JKRDisposer> mLink; // _8
};

View File

@ -4,11 +4,29 @@
class JKRFileLoader : public JKRDisposer {
public:
JKRFileLoader();
JKRFileLoader();
virtual ~JKRFileLoader();
virtual void unmount();
virtual void becomeCurrent(const char *) = 0;
virtual void getResource(const char *) = 0;
virtual void getResource(unsigned long, const char *) = 0;
virtual void readResource(void *, unsigned long, const char *) = 0;
virtual void readResource(void *, unsigned long, unsigned long, const char *) = 0;
virtual void removeResourceAll() = 0;
virtual void removeResource(void *) = 0;
virtual void detachResource(void *) = 0;
virtual void getResSize(const void *) const = 0;
virtual void countFile(const char *) const = 0;
virtual void getFirstFile(const char *) const = 0;
virtual void getExpandedResSize(const void *) const = 0;
void getGlbResource(const char *, JKRFileLoader *);
void initializeVolumeList(void);
void prependVolumeList(JSULink<JKRFileLoader>*);
void removeVolumeList(JSULink<JKRFileLoader> *);
JSULink<JKRFileLoader> _18;
u32 _28;
u32 _2C;

View File

@ -0,0 +1,29 @@
#include "JSystem/JKernel/JKRFileLoader.h"
namespace {
JKRFileLoader *gFileLoader;
}
JKRFileLoader::JKRFileLoader() : JKRDisposer(), _18(this) {
_28 = 0;
_2C = 0;
_34 = 0;
}
JKRFileLoader::~JKRFileLoader() {
if (gFileLoader == this) {
gFileLoader = NULL;
}
}
void JKRFileLoader::unmount() {
if (_34 == 0) {
return;
}
if (--_34 != 0) {
return;
}
delete this;
}