diff options
| author | Per Larsson <[email protected]> | 2022-02-21 14:22:38 +0100 |
|---|---|---|
| committer | Per Larsson <[email protected]> | 2022-02-21 14:22:38 +0100 |
| commit | fd9f9086b3ddd0c38fa87d7e49f6341dacdcc125 (patch) | |
| tree | 50be00e62f1e0d3a0521d08d5c7f00fe7787e014 /zencore/include | |
| parent | Basic websocket service and test. (diff) | |
| download | zen-fd9f9086b3ddd0c38fa87d7e49f6341dacdcc125.tar.xz zen-fd9f9086b3ddd0c38fa87d7e49f6341dacdcc125.zip | |
Refactored websocket message.
Diffstat (limited to 'zencore/include')
| -rw-r--r-- | zencore/include/zencore/stream.h | 48 |
1 files changed, 17 insertions, 31 deletions
diff --git a/zencore/include/zencore/stream.h b/zencore/include/zencore/stream.h index 6d7e7d19f..54d7e1014 100644 --- a/zencore/include/zencore/stream.h +++ b/zencore/include/zencore/stream.h @@ -27,12 +27,29 @@ public: m_Offset += ByteCount; } + inline void Write(MemoryView Memory) { Write(Memory.GetData(), Memory.GetSize()); } + inline uint64_t CurrentOffset() const { return m_Offset; } 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(); } inline uint64_t GetSize() const { return m_Buffer.size(); } + void Reset(); + + inline MemoryView GetView(uint64_t Offset = 0) const + { + MemoryView View(m_Buffer.data(), m_Offset); + View.RightChopInline(Offset); + return View; + } + + inline MutableMemoryView GetMutableView(uint64_t Offset = 0) + { + MutableMemoryView View(m_Buffer.data(), m_Offset); + View.RightChopInline(Offset); + return View; + } private: RwLock m_Lock; @@ -49,37 +66,6 @@ MakeMemoryView(const BinaryWriter& Stream) } /** - * Non thread-safe stream writer - */ - -class SimpleBinaryWriter -{ - static constexpr uint32_t DefaultBlockSize = 64; - -public: - SimpleBinaryWriter(uint32_t BlockSize = DefaultBlockSize) : m_BlockSize(BlockSize), m_Offset{0} {} - ~SimpleBinaryWriter() = default; - - void Write(MemoryView Memory); - void Write(const void* Data, size_t Size) { Write(MemoryView(Data, Size)); } - void Clear(); - - inline uint64_t CurrentOffset() const { return m_Offset; } - - 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(); } - inline uint64_t GetSize() const { return m_Buffer.size(); } - - MemoryView GetView() const { return MemoryView(m_Buffer.data(), m_Offset); } - -private: - std::vector<uint8_t> m_Buffer; - uint64_t m_Offset; - uint32_t m_BlockSize; -}; - -/** * Binary stream reader */ |