summaryrefslogtreecommitdiff
path: root/src/hir/serialise_lowlevel.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/hir/serialise_lowlevel.hpp')
-rw-r--r--src/hir/serialise_lowlevel.hpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/hir/serialise_lowlevel.hpp b/src/hir/serialise_lowlevel.hpp
index c1e4a4c8..39c7867d 100644
--- a/src/hir/serialise_lowlevel.hpp
+++ b/src/hir/serialise_lowlevel.hpp
@@ -123,13 +123,24 @@ public:
};
+class ReadBuffer
+{
+ ::std::vector<uint8_t> m_backing;
+ unsigned int m_ofs;
+public:
+ ReadBuffer(size_t size);
+
+ size_t capacity() const { return m_backing.capacity(); }
+ size_t read(void* dst, size_t len);
+ void populate(::std::istream& is);
+};
+
class Reader
{
::std::ifstream m_backing;
::boost::iostreams::filtering_istream m_is;
- ::std::vector<uint8_t> m_buffer;
- unsigned int m_buffer_ofs;
+ ReadBuffer m_buffer;
public:
Reader(const ::std::string& path);
Reader(const Writer&) = delete;