NSMBW-Decomp
A decompilation of New Super Mario Bros. Wii
Loading...
Searching...
No Matches
ut_FileStream.h
1#ifndef NW4R_UT_FILE_STREAM_H
2#define NW4R_UT_FILE_STREAM_H
3#include <nw4r/types_nw4r.h>
4
5#include <nw4r/ut/ut_IOStream.h>
6
7namespace nw4r {
8namespace ut {
9
10class FileStream : public IOStream {
11public:
12 NW4R_UT_RTTI_DECL(FileStream);
13
14 enum SeekOrigin { SEEK_BEG, SEEK_CUR, SEEK_END };
15
16public:
17 FileStream() {}
18 virtual ~FileStream() {} // at 0xC
19
20 virtual ulong GetSize() const = 0; // at 0x40
21
22 virtual void Seek(s32 offset, ulong origin); // at 0x44
23
24 virtual void Cancel(); // at 0x48
25 virtual bool CancelAsync(StreamCallback pCallback,
26 void* pCallbackArg); // at 0x4C
27
28 virtual bool CanSeek() const = 0; // at 0x50
29 virtual bool CanCancel() const = 0; // at 0x54
30
31 virtual ulong Tell() const = 0; // at 0x58
32
33protected:
34 class FilePosition {
35 public:
36 FilePosition() : mFileSize(0), mPosition(0) {}
37
38 ulong GetFileSize() const {
39 return mFileSize;
40 }
41 void SetFileSize(ulong size) {
42 mFileSize = size;
43 }
44
45 ulong Tell() const {
46 return mPosition;
47 }
48
49 ulong Skip(s32 offset);
50 ulong Append(s32 offset);
51 void Seek(s32 offset, ulong origin);
52
53 private:
54 ulong mFileSize; // at 0x0
55 ulong mPosition; // at 0x4
56 };
57};
58
59} // namespace ut
60} // namespace nw4r
61
62#endif
Debugging library which includes various utilities used by the rest of nw4r.
Definition ut_list.cpp:4