summaryrefslogtreecommitdiff
path: root/include/JSystem/JSupport/JSURandomInputStream.h
blob: 774ad3b4d6b0ff5360e09d1d60cc59192e7ac6be (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
#ifndef JSURANDOMINPUTSTREAM_H_
#define JSURANDOMINPUTSTREAM_H_

#include "JSystem/JSupport/JSUInputStream.h"

class JSURandomInputStream : public JSUInputStream {
public:
    JSURandomInputStream() {}
    virtual ~JSURandomInputStream() {}

    /* vt[4] */ virtual s32 skip(s32);            /* override */
    /* vt[5] */ virtual u32 readData(void*, s32) = 0;
    /* vt[6] */ virtual s32 getLength() const = 0;
    /* vt[7] */ virtual s32 getPosition() const = 0;
    /* vt[8] */ virtual s32 seekPos(s32, JSUStreamSeekFrom) = 0;

    /* vt[3] */ virtual s32 getAvailable() const  /* override */ {
        return getLength() - getPosition();
    }

    // TODO: fix return types
    s32 align(s32);
    s32 peek(void*, s32);
    s32 seek(s32, JSUStreamSeekFrom);
};  // Size = 0x8

#endif