aboutsummaryrefslogtreecommitdiff
path: root/zencore/include
diff options
context:
space:
mode:
authorStefan Boberg <[email protected]>2021-09-28 21:01:03 +0200
committerStefan Boberg <[email protected]>2021-09-28 21:27:00 +0200
commit559147e7fe58fd5ddac3a9e0c042ee15074ca480 (patch)
tree8bbd9061962f4bd83e66232bf0fb5bc223c89f0d /zencore/include
parentapply: Re-enabled environment variable setup for child processes (diff)
downloadzen-559147e7fe58fd5ddac3a9e0c042ee15074ca480.tar.xz
zen-559147e7fe58fd5ddac3a9e0c042ee15074ca480.zip
Removing a bunch of no-longer-useful code from stream.h/cpp in preparation for a greater purge
Diffstat (limited to 'zencore/include')
-rw-r--r--zencore/include/zencore/stream.h200
-rw-r--r--zencore/include/zencore/streamutil.h49
2 files changed, 29 insertions, 220 deletions
diff --git a/zencore/include/zencore/stream.h b/zencore/include/zencore/stream.h
index a0e165bdc..bab349068 100644
--- a/zencore/include/zencore/stream.h
+++ b/zencore/include/zencore/stream.h
@@ -14,42 +14,16 @@
namespace zen {
/**
- * Basic byte stream interface
- *
- * This is intended as a minimal base class offering only the absolute minimum of functionality.
- *
- * IMPORTANT: To better support concurrency, this abstraction offers no "file pointer". Thus
- * every read or write operation needs to specify the offset from which they wish to read.
- *
- * Most client code will likely want to use reader/writer classes like BinaryWriter/BinaryReader
- *
- */
-class OutStream : public RefCounted
-{
-public:
- virtual void Write(const void* Data, size_t ByteCount, uint64_t Offset) = 0;
- virtual void Flush() = 0;
-};
-
-class InStream : public RefCounted
-{
-public:
- virtual void Read(void* DataPtr, size_t ByteCount, uint64_t Offset) = 0;
- virtual uint64_t Size() const = 0;
- uint64_t GetSize() const { return Size(); }
-};
-
-/**
* Stream which writes into a growing memory buffer
*/
-class MemoryOutStream : public OutStream
+class MemoryOutStream : public RefCounted
{
public:
MemoryOutStream() = default;
~MemoryOutStream() = default;
- virtual void Write(const void* DataPtr, size_t ByteCount, uint64_t Offset) override;
- virtual void Flush() override;
+ void Write(const void* DataPtr, size_t ByteCount, uint64_t Offset);
+ void Flush();
inline const uint8_t* Data() const { return m_Buffer.data(); }
inline const uint8_t* GetData() const { return m_Buffer.data(); }
inline uint64_t Size() const { return m_Buffer.size(); }
@@ -67,33 +41,13 @@ MakeMemoryView(const MemoryOutStream& Stream)
}
/**
- * Stream which reads from a memory buffer
- */
-class MemoryInStream : public InStream
-{
-public:
- MemoryInStream(const void* Buffer, size_t Size);
- MemoryInStream(MemoryView View) : MemoryInStream(View.GetData(), View.GetSize()) {}
- ~MemoryInStream() = default;
-
- virtual void Read(void* DataPtr, size_t ByteCount, uint64_t ReadOffset) override;
- virtual uint64_t Size() const override { return m_Buffer.size(); }
- inline const uint8_t* Data() const { return m_Buffer.data(); }
- inline const uint8_t* GetData() const { return m_Buffer.data(); }
-
-private:
- RwLock m_Lock;
- std::vector<uint8_t> m_Buffer;
-};
-
-/**
* Binary stream writer
*/
class BinaryWriter
{
public:
- inline BinaryWriter(OutStream& Stream) : m_Stream(&Stream) {}
+ inline BinaryWriter(MemoryOutStream& Stream) : m_Stream(&Stream) {}
~BinaryWriter() = default;
inline void Write(const void* DataPtr, size_t ByteCount)
@@ -102,67 +56,33 @@ public:
m_Offset += ByteCount;
}
- uint64_t CurrentOffset() const { return m_Offset; }
+ inline uint64_t CurrentOffset() const { return m_Offset; }
private:
- RefPtr<OutStream> m_Stream;
- uint64_t m_Offset = 0;
+ RefPtr<MemoryOutStream> m_Stream;
+ uint64_t m_Offset = 0;
};
-inline BinaryWriter&
-operator<<(BinaryWriter& Writer, bool Value)
-{
- Writer.Write(&Value, sizeof Value);
- return Writer;
-}
-inline BinaryWriter&
-operator<<(BinaryWriter& Writer, int8_t Value)
-{
- Writer.Write(&Value, sizeof Value);
- return Writer;
-}
-inline BinaryWriter&
-operator<<(BinaryWriter& Writer, int16_t Value)
-{
- Writer.Write(&Value, sizeof Value);
- return Writer;
-}
-inline BinaryWriter&
-operator<<(BinaryWriter& Writer, int32_t Value)
-{
- Writer.Write(&Value, sizeof Value);
- return Writer;
-}
-inline BinaryWriter&
-operator<<(BinaryWriter& Writer, int64_t Value)
-{
- Writer.Write(&Value, sizeof Value);
- return Writer;
-}
-inline BinaryWriter&
-operator<<(BinaryWriter& Writer, uint8_t Value)
-{
- Writer.Write(&Value, sizeof Value);
- return Writer;
-}
-inline BinaryWriter&
-operator<<(BinaryWriter& Writer, uint16_t Value)
-{
- Writer.Write(&Value, sizeof Value);
- return Writer;
-}
-inline BinaryWriter&
-operator<<(BinaryWriter& Writer, uint32_t Value)
-{
- Writer.Write(&Value, sizeof Value);
- return Writer;
-}
-inline BinaryWriter&
-operator<<(BinaryWriter& Writer, uint64_t Value)
+/**
+ * Stream which reads from a memory buffer
+ */
+class MemoryInStream : public RefCounted
{
- Writer.Write(&Value, sizeof Value);
- return Writer;
-}
+public:
+ MemoryInStream(const void* Buffer, size_t Size);
+ MemoryInStream(MemoryView View) : MemoryInStream(View.GetData(), View.GetSize()) {}
+ ~MemoryInStream() = default;
+
+ void Read(void* DataPtr, size_t ByteCount, uint64_t ReadOffset);
+ uint64_t Size() const { return m_Buffer.size(); }
+ uint64_t GetSize() const { return Size(); }
+ inline const uint8_t* Data() const { return m_Buffer.data(); }
+ inline const uint8_t* GetData() const { return m_Buffer.data(); }
+
+private:
+ RwLock m_Lock;
+ std::vector<uint8_t> m_Buffer;
+};
/**
* Binary stream reader
@@ -171,7 +91,7 @@ operator<<(BinaryWriter& Writer, uint64_t Value)
class BinaryReader
{
public:
- inline BinaryReader(InStream& Stream) : m_Stream(&Stream) {}
+ inline BinaryReader(MemoryInStream& Stream) : m_Stream(&Stream) {}
~BinaryReader() = default;
inline void Read(void* DataPtr, size_t ByteCount)
@@ -196,8 +116,8 @@ public:
inline uint64_t AvailableBytes() const { return m_Stream->Size() - m_Offset; }
private:
- RefPtr<InStream> m_Stream;
- uint64_t m_Offset = 0;
+ RefPtr<MemoryInStream> m_Stream;
+ uint64_t m_Offset = 0;
};
inline BinaryReader&
@@ -255,68 +175,6 @@ operator>>(BinaryReader& Reader, uint64_t& Value)
return Reader;
}
-/**
- * Text stream writer
- */
-
-class TextWriter
-{
-public:
- ZENCORE_API TextWriter(OutStream& Stream);
- ZENCORE_API ~TextWriter();
-
- ZENCORE_API virtual void Write(const void* DataPtr, size_t ByteCount);
- ZENCORE_API void Writef(const char* FormatString, ...);
-
- inline uint64_t CurrentOffset() const { return m_CurrentOffset; }
-
-private:
- RefPtr<OutStream> m_Stream;
- uint64_t m_CurrentOffset = 0;
-};
-
-ZENCORE_API TextWriter& operator<<(TextWriter& Writer, const char* Value);
-ZENCORE_API TextWriter& operator<<(TextWriter& Writer, const std::string_view& Value);
-ZENCORE_API TextWriter& operator<<(TextWriter& Writer, bool Value);
-ZENCORE_API TextWriter& operator<<(TextWriter& Writer, int8_t Value);
-ZENCORE_API TextWriter& operator<<(TextWriter& Writer, int16_t Value);
-ZENCORE_API TextWriter& operator<<(TextWriter& Writer, int32_t Value);
-ZENCORE_API TextWriter& operator<<(TextWriter& Writer, int64_t Value);
-ZENCORE_API TextWriter& operator<<(TextWriter& Writer, uint8_t Value);
-ZENCORE_API TextWriter& operator<<(TextWriter& Writer, uint16_t Value);
-ZENCORE_API TextWriter& operator<<(TextWriter& Writer, uint32_t Value);
-ZENCORE_API TextWriter& operator<<(TextWriter& Writer, uint64_t Value);
-
-class IndentTextWriter : public TextWriter
-{
-public:
- ZENCORE_API IndentTextWriter(OutStream& stream);
- ZENCORE_API ~IndentTextWriter();
-
- ZENCORE_API virtual void Write(const void* DataPtr, size_t ByteCount) override;
-
- inline void Indent(int Amount) { m_IndentAmount += Amount; }
-
- struct Scope
- {
- Scope(IndentTextWriter& Outer, int IndentAmount = 2) : m_Outer(Outer), m_IndentAmount(IndentAmount)
- {
- m_Outer.Indent(IndentAmount);
- }
-
- ~Scope() { m_Outer.Indent(-m_IndentAmount); }
-
- private:
- IndentTextWriter& m_Outer;
- int m_IndentAmount;
- };
-
-private:
- int m_IndentAmount = 0;
- int m_LineCursor = 0;
- char m_LineBuffer[2048];
-};
-
void stream_forcelink(); // internal
} // namespace zen
diff --git a/zencore/include/zencore/streamutil.h b/zencore/include/zencore/streamutil.h
index 190cd18eb..d9b6b5167 100644
--- a/zencore/include/zencore/streamutil.h
+++ b/zencore/include/zencore/streamutil.h
@@ -14,55 +14,6 @@
namespace zen {
-ZENCORE_API BinaryWriter& operator<<(BinaryWriter& writer, const std::string_view& value);
-ZENCORE_API BinaryReader& operator>>(BinaryReader& reader, std::string& value);
-
-ZENCORE_API BinaryWriter& operator<<(BinaryWriter& writer, const std::wstring_view& value);
-ZENCORE_API BinaryReader& operator>>(BinaryReader& reader, std::wstring& value);
-ZENCORE_API TextWriter& operator<<(TextWriter& writer, const std::wstring_view& value);
-
-inline BinaryWriter&
-operator<<(BinaryWriter& writer, const SHA1& value)
-{
- writer.Write(value.Hash, sizeof value.Hash);
- return writer;
-}
-inline BinaryReader&
-operator>>(BinaryReader& reader, SHA1& value)
-{
- reader.Read(value.Hash, sizeof value.Hash);
- return reader;
-}
-ZENCORE_API TextWriter& operator<<(TextWriter& writer, const zen::SHA1& value);
-
-inline BinaryWriter&
-operator<<(BinaryWriter& writer, const BLAKE3& value)
-{
- writer.Write(value.Hash, sizeof value.Hash);
- return writer;
-}
-inline BinaryReader&
-operator>>(BinaryReader& reader, BLAKE3& value)
-{
- reader.Read(value.Hash, sizeof value.Hash);
- return reader;
-}
-ZENCORE_API TextWriter& operator<<(TextWriter& writer, const BLAKE3& value);
-
-inline BinaryWriter&
-operator<<(BinaryWriter& writer, const IoHash& value)
-{
- writer.Write(value.Hash, sizeof value.Hash);
- return writer;
-}
-inline BinaryReader&
-operator>>(BinaryReader& reader, IoHash& value)
-{
- reader.Read(value.Hash, sizeof value.Hash);
- return reader;
-}
-ZENCORE_API TextWriter& operator<<(TextWriter& writer, const IoHash& value);
-
} // namespace zen
//////////////////////////////////////////////////////////////////////////