diff options
| author | KiritoDv <kiritodev01@gmail.com> | 2023-08-17 00:35:58 -0600 |
|---|---|---|
| committer | KiritoDv <kiritodev01@gmail.com> | 2023-08-17 00:35:58 -0600 |
| commit | 6fd8e5ee43dd0f87eb4e57b86e84770fcd95db25 (patch) | |
| tree | 6a22e06c6105b63a0ae560f571f6d4e2522ba364 /lib/binarytools/BinaryReader.h | |
Added StormLib, nlohmann, BinaryTools and CLI11
Diffstat (limited to 'lib/binarytools/BinaryReader.h')
| -rw-r--r-- | lib/binarytools/BinaryReader.h | 48 |
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 |
