summaryrefslogtreecommitdiff
path: root/lib/binarytools/BinaryReader.h
diff options
context:
space:
mode:
authorKiritoDv <kiritodev01@gmail.com>2023-08-17 00:35:58 -0600
committerKiritoDv <kiritodev01@gmail.com>2023-08-17 00:35:58 -0600
commit6fd8e5ee43dd0f87eb4e57b86e84770fcd95db25 (patch)
tree6a22e06c6105b63a0ae560f571f6d4e2522ba364 /lib/binarytools/BinaryReader.h
Added StormLib, nlohmann, BinaryTools and CLI11
Diffstat (limited to 'lib/binarytools/BinaryReader.h')
-rw-r--r--lib/binarytools/BinaryReader.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/lib/binarytools/BinaryReader.h b/lib/binarytools/BinaryReader.h
new file mode 100644
index 0000000..59eeb52
--- /dev/null
+++ b/lib/binarytools/BinaryReader.h
@@ -0,0 +1,48 @@
+#pragma once
+
+#include <string>
+#include <memory>
+#include <vector>
+#include "endianness.h"
+#include "Stream.h"
+
+class BinaryReader;
+
+namespace LUS {
+
+class BinaryReader {
+ public:
+ BinaryReader(char* nBuffer, size_t nBufferSize);
+ BinaryReader(Stream* nStream);
+ BinaryReader(std::shared_ptr<Stream> nStream);
+
+ void Close();
+
+ void SetEndianness(Endianness endianness);
+ Endianness GetEndianness() const;
+
+ void Seek(int32_t offset, SeekOffsetType seekType);
+ uint32_t GetBaseAddress();
+
+ void Read(int32_t length);
+ void Read(char* buffer, int32_t length);
+ char ReadChar();
+ int8_t ReadInt8();
+ int16_t ReadInt16();
+ int32_t ReadInt32();
+ uint8_t ReadUByte();
+ uint16_t ReadUInt16();
+ uint32_t ReadUInt32();
+ uint64_t ReadUInt64();
+ float ReadFloat();
+ double ReadDouble();
+ std::string ReadString();
+ std::string ReadCString();
+
+ std::vector<char> ToVector();
+
+ protected:
+ std::shared_ptr<Stream> mStream;
+ Endianness mEndianness = Endianness::Native;
+};
+} // namespace LUS