diff options
Diffstat (limited to 'core/src')
-rw-r--r-- | core/src/Model/Assets.cpp | 4 | ||||
-rw-r--r-- | core/src/Utils/IO/Archive.cpp | 4 | ||||
-rw-r--r-- | core/src/Utils/IO/DataStream.cpp | 56 | ||||
-rw-r--r-- | core/src/Utils/IO/DataStream.hpp | 30 |
4 files changed, 47 insertions, 47 deletions
diff --git a/core/src/Model/Assets.cpp b/core/src/Model/Assets.cpp index ed8009e..045a46f 100644 --- a/core/src/Model/Assets.cpp +++ b/core/src/Model/Assets.cpp @@ -24,8 +24,8 @@ void SavedAsset::OperateIOProxy(TProxy& proxy) proxy.Value(Payload); } -template void SavedAsset::OperateIOProxy(SerializationStreamProxy& adapter); -template void SavedAsset::OperateIOProxy(DeserializationStreamProxy& adapter); +template void SavedAsset::OperateIOProxy(InputDataStream& adapter); +template void SavedAsset::OperateIOProxy(OutputDataStream& adapter); Asset::Asset() { diff --git a/core/src/Utils/IO/Archive.cpp b/core/src/Utils/IO/Archive.cpp index b6f806b..6c4084f 100644 --- a/core/src/Utils/IO/Archive.cpp +++ b/core/src/Utils/IO/Archive.cpp @@ -12,7 +12,7 @@ constexpr uint8_t kByteOrderMark = []() { std::optional<InputDataStream> DataArchive::LoadFile(const std::filesystem::path& path) { - auto stream = InputDataStream(std::fstream(path)); + auto stream = InputDataStream(InputFileStream(path)); uint8_t magicNumbers[kMagicNumberCount]; stream.ReadBytes(kMagicNumberCount, magicNumbers); @@ -37,7 +37,7 @@ std::optional<InputDataStream> DataArchive::LoadFile(const std::filesystem::path std::optional<OutputDataStream> DataArchive::SaveFile(const std::filesystem::path& path) { - auto stream = OutputDataStream(std::fstream(path)); + auto stream = OutputDataStream(OutputFileStream(path, OutputFileStream::TruncateFile)); stream.WriteBytes(kMagicNumberCount, kMagicNumbers); stream.Write(kByteOrderMark); diff --git a/core/src/Utils/IO/DataStream.cpp b/core/src/Utils/IO/DataStream.cpp index 7fee881..bfc6252 100644 --- a/core/src/Utils/IO/DataStream.cpp +++ b/core/src/Utils/IO/DataStream.cpp @@ -55,41 +55,41 @@ void BaseDataStream::SetEndianness(std::endian endianness) mEndian = endianness; } -InputDataStream::InputDataStream(std::fstream stream) +InputDataStream::InputDataStream(InputFileStream stream) : mBackend{ std::move(stream) } { } void InputDataStream::ReadBytes(size_t byteCount, std::byte* buffer) { - mBackend.read(reinterpret_cast<char*>(buffer), static_cast<std::streamsize>(byteCount)); + mBackend.ReadBytes(static_cast<std::streamsize>(byteCount),reinterpret_cast<std::byte*>(buffer)); } void InputDataStream::ReadBytes(size_t byteCount, char* buffer) { - mBackend.read(reinterpret_cast<char*>(buffer), static_cast<std::streamsize>(byteCount)); + mBackend.ReadBytes(static_cast<std::streamsize>(byteCount),reinterpret_cast<std::byte*>(buffer)); } void InputDataStream::ReadBytes(size_t byteCount, signed char* buffer) { - mBackend.read(reinterpret_cast<char*>(buffer), static_cast<std::streamsize>(byteCount)); + mBackend.ReadBytes(static_cast<std::streamsize>(byteCount),reinterpret_cast<std::byte*>(buffer)); } void InputDataStream::ReadBytes(size_t byteCount, unsigned char* buffer) { - mBackend.read(reinterpret_cast<char*>(buffer), static_cast<std::streamsize>(byteCount)); + mBackend.ReadBytes(static_cast<std::streamsize>(byteCount),reinterpret_cast<std::byte*>(buffer)); } void InputDataStream::Read(int8_t& n) { // sizeof() of a reference type yields the size of the reference - mBackend.read(reinterpret_cast<char*>(&n), sizeof(n)); + mBackend.ReadBytes(sizeof(n),reinterpret_cast<std::byte*>(&n)); } void InputDataStream::Read(int16_t& n) { int16_t tmp; - mBackend.read(reinterpret_cast<char*>(&tmp), sizeof(tmp)); + mBackend.ReadBytes(sizeof(tmp),reinterpret_cast<std::byte*>(&tmp)); if (GetEndianness() != std::endian::native) { n = ::ByteSwap(tmp); } else { @@ -100,7 +100,7 @@ void InputDataStream::Read(int16_t& n) void InputDataStream::Read(int32_t& n) { int32_t tmp; - mBackend.read(reinterpret_cast<char*>(&tmp), sizeof(tmp)); + mBackend.ReadBytes(sizeof(tmp),reinterpret_cast<std::byte*>(&tmp)); if (GetEndianness() != std::endian::native) { n = ::ByteSwap(tmp); } else { @@ -111,7 +111,7 @@ void InputDataStream::Read(int32_t& n) void InputDataStream::Read(int64_t& n) { int64_t tmp; - mBackend.read(reinterpret_cast<char*>(&tmp), sizeof(tmp)); + mBackend.ReadBytes(sizeof(tmp),reinterpret_cast<std::byte*>(&tmp)); if (GetEndianness() != std::endian::native) { n = ::ByteSwap(tmp); } else { @@ -121,13 +121,13 @@ void InputDataStream::Read(int64_t& n) void InputDataStream::Read(uint8_t& n) { - mBackend.read(reinterpret_cast<char*>(&n), sizeof(n)); + mBackend.ReadBytes(sizeof(n),reinterpret_cast<std::byte*>(&n)); } void InputDataStream::Read(uint16_t& n) { uint16_t tmp; - mBackend.read(reinterpret_cast<char*>(&tmp), sizeof(tmp)); + mBackend.ReadBytes(sizeof(tmp),reinterpret_cast<std::byte*>(&tmp)); if (GetEndianness() != std::endian::native) { n = ::ByteSwap(tmp); } else { @@ -138,7 +138,7 @@ void InputDataStream::Read(uint16_t& n) void InputDataStream::Read(uint32_t& n) { uint32_t tmp; - mBackend.read(reinterpret_cast<char*>(&tmp), sizeof(tmp)); + mBackend.ReadBytes(sizeof(tmp),reinterpret_cast<std::byte*>(&tmp)); if (GetEndianness() != std::endian::native) { n = ::ByteSwap(tmp); } else { @@ -149,7 +149,7 @@ void InputDataStream::Read(uint32_t& n) void InputDataStream::Read(uint64_t& n) { uint64_t tmp; - mBackend.read(reinterpret_cast<char*>(&tmp), sizeof(tmp)); + mBackend.ReadBytes(sizeof(tmp),reinterpret_cast<std::byte*>(&tmp)); if (GetEndianness() != std::endian::native) { n = ::ByteSwap(tmp); } else { @@ -181,34 +181,34 @@ void InputDataStream::Read(double& n) n = std::bit_cast<double>(buffer); } -OutputDataStream::OutputDataStream(std::fstream stream) +OutputDataStream::OutputDataStream(OutputFileStream stream) : mBackend{ std::move(stream) } { } void OutputDataStream::WriteBytes(size_t byteCount, const std::byte* buffer) { - mBackend.write(reinterpret_cast<const char*>(buffer), static_cast<std::streamsize>(byteCount)); + mBackend.WriteBytes(static_cast<std::streamsize>(byteCount), reinterpret_cast<const std::byte*>(buffer)); } void OutputDataStream::WriteBytes(size_t byteCount, const char* buffer) { - mBackend.write(reinterpret_cast<const char*>(buffer), static_cast<std::streamsize>(byteCount)); + mBackend.WriteBytes(static_cast<std::streamsize>(byteCount), reinterpret_cast<const std::byte*>(buffer)); } void OutputDataStream::WriteBytes(size_t byteCount, const signed char* buffer) { - mBackend.write(reinterpret_cast<const char*>(buffer), static_cast<std::streamsize>(byteCount)); + mBackend.WriteBytes(static_cast<std::streamsize>(byteCount), reinterpret_cast<const std::byte*>(buffer)); } void OutputDataStream::WriteBytes(size_t byteCount, const unsigned char* buffer) { - mBackend.write(reinterpret_cast<const char*>(buffer), static_cast<std::streamsize>(byteCount)); + mBackend.WriteBytes(static_cast<std::streamsize>(byteCount), reinterpret_cast<const std::byte*>(buffer)); } void OutputDataStream::Write(int8_t n) { - mBackend.write(reinterpret_cast<const char*>(&n), sizeof(n)); + mBackend.WriteBytes(sizeof(n), reinterpret_cast<const std::byte*>(&n)); } void OutputDataStream::Write(int16_t n) @@ -216,7 +216,7 @@ void OutputDataStream::Write(int16_t n) if (GetEndianness() != std::endian::native) { n = ::ByteSwap(n); } - mBackend.write(reinterpret_cast<const char*>(&n), sizeof(n)); + mBackend.WriteBytes(sizeof(n), reinterpret_cast<const std::byte*>(&n)); } void OutputDataStream::Write(int32_t n) @@ -224,7 +224,7 @@ void OutputDataStream::Write(int32_t n) if (GetEndianness() != std::endian::native) { n = ::ByteSwap(n); } - mBackend.write(reinterpret_cast<const char*>(&n), sizeof(n)); + mBackend.WriteBytes(sizeof(n), reinterpret_cast<const std::byte*>(&n)); } void OutputDataStream::Write(int64_t n) @@ -232,12 +232,12 @@ void OutputDataStream::Write(int64_t n) if (GetEndianness() != std::endian::native) { n = ::ByteSwap(n); } - mBackend.write(reinterpret_cast<const char*>(&n), sizeof(n)); + mBackend.WriteBytes(sizeof(n), reinterpret_cast<const std::byte*>(&n)); } void OutputDataStream::Write(uint8_t n) { - mBackend.write(reinterpret_cast<const char*>(&n), sizeof(n)); + mBackend.WriteBytes(sizeof(n), reinterpret_cast<const std::byte*>(&n)); } void OutputDataStream::Write(uint16_t n) @@ -245,7 +245,7 @@ void OutputDataStream::Write(uint16_t n) if (GetEndianness() != std::endian::native) { n = ::ByteSwap(n); } - mBackend.write(reinterpret_cast<const char*>(&n), sizeof(n)); + mBackend.WriteBytes(sizeof(n), reinterpret_cast<const std::byte*>(&n)); } void OutputDataStream::Write(uint32_t n) @@ -253,7 +253,7 @@ void OutputDataStream::Write(uint32_t n) if (GetEndianness() != std::endian::native) { n = ::ByteSwap(n); } - mBackend.write(reinterpret_cast<const char*>(&n), sizeof(n)); + mBackend.WriteBytes(sizeof(n), reinterpret_cast<const std::byte*>(&n)); } void OutputDataStream::Write(uint64_t n) @@ -261,7 +261,7 @@ void OutputDataStream::Write(uint64_t n) if (GetEndianness() != std::endian::native) { n = ::ByteSwap(n); } - mBackend.write(reinterpret_cast<const char*>(&n), sizeof(n)); + mBackend.WriteBytes(sizeof(n), reinterpret_cast<const std::byte*>(&n)); } void OutputDataStream::Write(float n) @@ -270,7 +270,7 @@ void OutputDataStream::Write(float n) if (GetEndianness() != std::endian::native) { buffer = ::ByteSwap(buffer); } - mBackend.read(reinterpret_cast<char*>(&buffer), sizeof(buffer)); + mBackend.WriteBytes(sizeof(buffer), reinterpret_cast<const std::byte*>(&buffer)); } void OutputDataStream::Write(double n) @@ -279,5 +279,5 @@ void OutputDataStream::Write(double n) if (GetEndianness() != std::endian::native) { buffer = ::ByteSwap(buffer); } - mBackend.read(reinterpret_cast<char*>(&buffer), sizeof(buffer)); + mBackend.WriteBytes(sizeof(buffer), reinterpret_cast<const std::byte*>(&buffer)); } diff --git a/core/src/Utils/IO/DataStream.hpp b/core/src/Utils/IO/DataStream.hpp index d1f3647..fa22549 100644 --- a/core/src/Utils/IO/DataStream.hpp +++ b/core/src/Utils/IO/DataStream.hpp @@ -1,11 +1,11 @@ #pragma once +#include "FileStream.hpp" #include "cplt_fwd.hpp" #include <bit> #include <cstddef> #include <cstdint> -#include <fstream> #include <span> class BaseDataStream @@ -21,7 +21,7 @@ public: class InputDataStream : public BaseDataStream { private: - std::fstream mBackend; + InputFileStream mBackend; public: static constexpr bool IsSerializer() @@ -29,7 +29,7 @@ public: return false; } - InputDataStream(std::fstream stream); + InputDataStream(InputFileStream stream); void ReadBytes(size_t byteCount, std::byte* buffer); void ReadBytes(size_t byteCount, char* buffer); @@ -65,7 +65,7 @@ public: { if constexpr (requires(TObject t) { t.ReadFromDataStream(std::declval<BaseDataStream>()); }) { obj.ReadFromDataStream(*this); - } else if constexpr (requires(TObject t) { t.OperateIOProxy(std::declval<DataInputStream>()); }) { + } else if constexpr (requires(TObject t) { t.OperateIOProxy(std::declval<InputDataStream>()); }) { obj.OperateIOProxy(*this); } else { static_assert(false && sizeof(TObject), "This type does not have integration with InputDataStream."); @@ -82,25 +82,25 @@ public: // Proxy functions for OperateIOProxy template <class T> - void Bytes(size_t byteCount, T* buffer) const + void Bytes(size_t byteCount, T* buffer) { ReadBytes(byteCount, buffer); } template <class T> - void Value(T& t) const + void Value(T& t) { Read(t); } template <class T> - void Object(T& obj) const + void Object(T& obj) { ReadObject(obj); } template <class TObject, class TAdapter> - void ObjectAdapted(TObject& obj, TAdapter&& adapter) const + void ObjectAdapted(TObject& obj, TAdapter&& adapter) { ReadObjectAdapted(obj, adapter); } @@ -109,7 +109,7 @@ public: class OutputDataStream : public BaseDataStream { private: - std::fstream mBackend; + OutputFileStream mBackend; public: static constexpr bool IsSerializer() @@ -117,7 +117,7 @@ public: return true; } - OutputDataStream(std::fstream stream); + OutputDataStream(OutputFileStream stream); void WriteBytes(size_t byteCount, const std::byte* buffer); void WriteBytes(size_t byteCount, const char* buffer); @@ -151,7 +151,7 @@ public: { if constexpr (requires(TObject t) { t.WriteToDataStream(std::declval<BaseDataStream>()); }) { obj.WriteToDataStream(*this); - } else if constexpr (requires(TObject t) { t.OperateIOProxy(std::declval<DataOutputStream>()); }) { + } else if constexpr (requires(TObject t) { t.OperateIOProxy(std::declval<OutputDataStream>()); }) { obj.OperateIOProxy(*this); } else { static_assert(false && sizeof(TObject), "This type does not have integration with OutputDataStream."); @@ -168,25 +168,25 @@ public: // Proxy functions for OperateIOProxy template <class T> - void Bytes(size_t byteCount, T* buffer) const + void Bytes(size_t byteCount, T* buffer) { WriteBytes(byteCount, buffer); } template <class T> - void Value(T t) const + void Value(T t) { Write(t); } template <class T> - void Object(T& obj) const + void Object(T& obj) { WriteObject(obj); } template <class TObject, class TAdapter> - void ObjectAdapted(TObject& obj, TAdapter&& adapter) const + void ObjectAdapted(TObject& obj, TAdapter&& adapter) { WriteObjectAdapted(obj, adapter); } |