summaryrefslogtreecommitdiff
path: root/include/JSystem/JKernel/JKRFile.h
blob: ed9d35a2c1c72719d2a5b30fdb14f64f1e17df89 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#ifndef JKRFILE_H
#define JKRFILE_H

#include "JSystem/JKernel/JKRDisposer.h"

class JKRFile : public JKRDisposer {
public:
    JKRFile() : mIsAvailable(false) {}
    virtual ~JKRFile() {}

    s32 read(void*, s32, s32);

    bool isAvailable() const { return mIsAvailable; }

public:
    /* vt[03] */ virtual bool open(const char*) = 0;
    /* vt[04] */ virtual void close() = 0;
    /* vt[05] */ virtual s32 readData(void*, s32, s32) = 0;
    /* vt[06] */ virtual s32 writeData(const void*, s32, s32) = 0;
    /* vt[07] */ virtual s32 getFileSize() const = 0;

protected:
    /* 0x00 */  // vtable
    /* 0x04 */  // JKRDisposer
    /* 0x18 */ bool mIsAvailable;
    /* 0x19 */ u8 field_0x19[3];
};

#endif /* JKRFILE_H */