aboutsummaryrefslogtreecommitdiff
path: root/core/src/Utils
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/Utils')
-rw-r--r--core/src/Utils/IO/Archive.cpp4
-rw-r--r--core/src/Utils/IO/DataStream.cpp56
-rw-r--r--core/src/Utils/IO/DataStream.hpp30
3 files changed, 45 insertions, 45 deletions
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);
}