summaryrefslogtreecommitdiff
path: root/ZAPD/Utils/BinaryReader.h
diff options
context:
space:
mode:
Diffstat (limited to 'ZAPD/Utils/BinaryReader.h')
-rw-r--r--ZAPD/Utils/BinaryReader.h41
1 files changed, 41 insertions, 0 deletions
diff --git a/ZAPD/Utils/BinaryReader.h b/ZAPD/Utils/BinaryReader.h
new file mode 100644
index 0000000..f4b37c9
--- /dev/null
+++ b/ZAPD/Utils/BinaryReader.h
@@ -0,0 +1,41 @@
+#pragma once
+
+#include <array>
+#include <memory>
+#include <string>
+#include <vector>
+#include "BitConverter.h"
+#include "Stream.h"
+
+class BinaryReader
+{
+public:
+ BinaryReader(Stream* nStream);
+ BinaryReader(std::shared_ptr<Stream> nStream);
+
+ void Close();
+
+ void SetEndianness(Endianness endianness);
+ Endianness GetEndianness() const;
+
+ void Seek(uint32_t offset, SeekOffsetType seekType);
+ uint32_t GetBaseAddress();
+
+ void Read(int32_t length);
+ void Read(char* buffer, int32_t length);
+ char ReadChar();
+ int8_t ReadByte();
+ int16_t ReadInt16();
+ int32_t ReadInt32();
+ uint8_t ReadUByte();
+ uint16_t ReadUInt16();
+ uint32_t ReadUInt32();
+ uint64_t ReadUInt64();
+ float ReadSingle();
+ double ReadDouble();
+ std::string ReadString();
+
+protected:
+ std::shared_ptr<Stream> stream;
+ Endianness endianness = Endianness::Native;
+}; \ No newline at end of file