sead
Loading...
Searching...
No Matches
seadStream.h
Go to the documentation of this file.
1#ifndef SEAD_STREAM_H_
2#define SEAD_STREAM_H_
3
4#include <prim/seadEndian.h>
5#include <prim/seadSafeString.h>
6
7namespace sead {
8
9class StreamFormat;
10class StreamSrc;
11
12class Stream
13{
14public:
15 enum Modes
16 {
18 cText = 1,
20 };
21
22public:
23 Stream();
24 virtual ~Stream() { }
25
26 void skip(u32 size);
27 void skip(u32 size, u32 count);
28
29 bool isEOF();
30
31 void setBinaryEndian(Endian::Types types);
32 void setMode(Modes mode);
33 void setUserFormat(StreamFormat* format);
34
35protected:
37 {
38 mSrcStream = stream;
39 }
40
41protected:
45
46private:
48};
49
50class ReadStream : public Stream
51{
52public:
54 {
55 }
56
57 virtual ~ReadStream()
58 {
59 }
60
63 u32 readU32();
65
68 s32 readS32();
70
71 f32 readF32();
72
73 void readU8(u8&);
74 void readU16(u16&);
75 void readU32(u32&);
76 void readU64(u64&);
77
78 void readS8(s8&);
79 void readS16(s16&);
80 void readS32(s32&);
81 void readS64(s64&);
82
83 void readF32(f32&);
84
85 void readBit(void*, u32);
86 void readString(BufferedSafeString* dst, u32 size);
87 void readMemBlock(void*, u32);
88
89protected:
90 f32 readF32BitImpl_(u32 exp_bitnum, u32 significand_bitnum);
91 f32 readF64BitImpl_(u32 exp_bitnum, u32 significand_bitnum);
92
93 static const u32 cExpBitMax = 8;
94 static const u32 cSignficandBitMax = 23;
95};
96
97} // namespace sead
98
99#endif // SEAD_STREAM_H_
Definition seadEndian.h:10
Types
Definition seadEndian.h:13
Definition seadStream.h:51
void readMemBlock(void *, u32)
void readS32(s32 &)
void readF32(f32 &)
f32 readF32()
Definition seadStream.cpp:66
virtual ~ReadStream()
Definition seadStream.h:57
void readU64(u64 &)
static const u32 cSignficandBitMax
Definition seadStream.h:94
void readU32(u32 &)
void readString(BufferedSafeString *dst, u32 size)
Definition seadStream.cpp:73
void readU8(u8 &)
static const u32 cExpBitMax
Definition seadStream.h:93
f32 readF64BitImpl_(u32 exp_bitnum, u32 significand_bitnum)
void readS64(s64 &)
f32 readF32BitImpl_(u32 exp_bitnum, u32 significand_bitnum)
void readBit(void *, u32)
void readS16(s16 &)
void readS8(s8 &)
u32 readU32()
Definition seadStream.cpp:52
void readU16(u16 &)
s32 readS32()
Definition seadStream.cpp:59
ReadStream()
Definition seadStream.h:53
Definition seadStreamFormat.h:12
Definition seadStreamSrc.h:9
Definition seadStream.h:13
Stream()
Definition seadStream.cpp:16
void setUserFormat(StreamFormat *format)
Definition seadStream.cpp:47
void setMode(Modes mode)
Definition seadStream.cpp:41
virtual ~Stream()
Definition seadStream.h:24
void skip(u32 size)
Definition seadStream.cpp:23
bool isEOF()
Definition seadStream.cpp:30
static StreamFormat *const BASIC_STREAM_FORMAT[cModeNum]
Definition seadStream.h:47
void setSrcStream_(StreamSrc *stream)
Definition seadStream.h:36
Modes
Definition seadStream.h:16
@ cModeNum
Definition seadStream.h:19
@ cBinary
Definition seadStream.h:17
@ cText
Definition seadStream.h:18
StreamFormat * mFormat
Definition seadStream.h:42
void skip(u32 size, u32 count)
Endian::Types mSrcEndian
Definition seadStream.h:44
void setBinaryEndian(Endian::Types types)
Definition seadStream.cpp:36
StreamSrc * mSrcStream
Definition seadStream.h:43
Definition seadAssert.h:44
BufferedSafeStringBase< char > BufferedSafeString
Definition seadSafeString.h:411