diff options
Diffstat (limited to 'lib/binarytools/Stream.h')
| -rw-r--r-- | lib/binarytools/Stream.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/lib/binarytools/Stream.h b/lib/binarytools/Stream.h new file mode 100644 index 0000000..f22c212 --- /dev/null +++ b/lib/binarytools/Stream.h @@ -0,0 +1,33 @@ +#pragma once + +#include <cstdint> +#include <memory> +#include <vector> + +namespace LUS { +enum class SeekOffsetType { Start, Current, End }; + +class Stream { + public: + virtual ~Stream() = default; + virtual uint64_t GetLength() = 0; + uint64_t GetBaseAddress(); + + virtual void Seek(int32_t offset, SeekOffsetType seekType) = 0; + + virtual std::unique_ptr<char[]> Read(size_t length) = 0; + virtual void Read(const char* dest, size_t length) = 0; + virtual int8_t ReadByte() = 0; + + virtual void Write(char* destBuffer, size_t length) = 0; + virtual void WriteByte(int8_t value) = 0; + + virtual std::vector<char> ToVector() = 0; + + virtual void Flush() = 0; + virtual void Close() = 0; + + protected: + uint64_t mBaseAddress; +}; +} // namespace LUS |
