1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-12-01 15:26:01 +00:00
oot/tools/ZAPD/ZAPDUtils/Utils/Stream.h
fig02 68899c2e33
git subrepo pull --force tools/ZAPD (#1049)
subrepo:
  subdir:   "tools/ZAPD"
  merged:   "a3363333d"
upstream:
  origin:   "https://github.com/zeldaret/ZAPD.git"
  branch:   "master"
  commit:   "a3363333d"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"
2021-12-03 21:57:05 +01:00

41 lines
No EOL
779 B
C++

#pragma once
#include <cstdint>
#include <memory>
enum class SeekOffsetType
{
Start,
Current,
End
};
// TODO: Eventually account for endianess in binaryreader and binarywriter
enum class Endianess
{
Little = 0,
Big = 1,
};
class Stream
{
public:
virtual ~Stream() = default;
virtual uint64_t GetLength() = 0;
uint64_t GetBaseAddress() { return baseAddress; }
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 void Flush() = 0;
virtual void Close() = 0;
protected:
uint64_t baseAddress;
};