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.hpp19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/hir/serialise_lowlevel.hpp b/src/hir/serialise_lowlevel.hpp
index 4571b863..b710669e 100644
--- a/src/hir/serialise_lowlevel.hpp
+++ b/src/hir/serialise_lowlevel.hpp
@@ -7,21 +7,25 @@
*/
#pragma once
-#include <boost/iostreams/filtering_stream.hpp>
-#include <fstream>
#include <vector>
+#include <string>
+#include <stddef.h>
+#include <assert.h>
namespace HIR {
namespace serialise {
+class WriterInner;
+class ReaderInner;
+
class Writer
{
- ::std::ofstream m_backing;
- ::boost::iostreams::filtering_ostream m_os;
+ WriterInner* m_inner;
public:
Writer(const ::std::string& path);
Writer(const Writer&) = delete;
Writer(Writer&&) = delete;
+ ~Writer();
void write(const void* data, size_t count);
@@ -133,19 +137,18 @@ public:
size_t capacity() const { return m_backing.capacity(); }
size_t read(void* dst, size_t len);
- void populate(::std::istream& is);
+ void populate(ReaderInner& is);
};
class Reader
{
- ::std::ifstream m_backing;
- ::boost::iostreams::filtering_istream m_is;
-
+ ReaderInner* m_inner;
ReadBuffer m_buffer;
public:
Reader(const ::std::string& path);
Reader(const Writer&) = delete;
Reader(Writer&&) = delete;
+ ~Reader();
void read(void* dst, size_t count);