aboutsummaryrefslogtreecommitdiff
path: root/core/src/Utils/IO/Archive.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/Utils/IO/Archive.cpp')
-rw-r--r--core/src/Utils/IO/Archive.cpp37
1 files changed, 10 insertions, 27 deletions
diff --git a/core/src/Utils/IO/Archive.cpp b/core/src/Utils/IO/Archive.cpp
index 559c476..b6f806b 100644
--- a/core/src/Utils/IO/Archive.cpp
+++ b/core/src/Utils/IO/Archive.cpp
@@ -10,23 +10,9 @@ constexpr uint8_t kByteOrderMark = []() {
}
}();
-std::optional<DataArchive> DataArchive::SaveFile(const std::filesystem::path& path)
+std::optional<InputDataStream> DataArchive::LoadFile(const std::filesystem::path& path)
{
- auto archive = DataArchive(DataStream(std::fstream(path)));
- auto& stream = archive.mStream;
-
- stream.WriteBytes(kMagicNumberCount, kMagicNumbers);
- stream.Write(kByteOrderMark);
-
- stream.SetEndianness(std::endian::native);
-
- return archive;
-}
-
-std::optional<DataArchive> DataArchive::LoadFile(const std::filesystem::path& path)
-{
- auto archive = DataArchive(DataStream(std::fstream(path)));
- auto& stream = archive.mStream;
+ auto stream = InputDataStream(std::fstream(path));
uint8_t magicNumbers[kMagicNumberCount];
stream.ReadBytes(kMagicNumberCount, magicNumbers);
@@ -46,20 +32,17 @@ std::optional<DataArchive> DataArchive::LoadFile(const std::filesystem::path& pa
default: std::abort();
}
- return archive;
+ return stream;
}
-const DataStream& DataArchive::GetStream() const
+std::optional<OutputDataStream> DataArchive::SaveFile(const std::filesystem::path& path)
{
- return mStream;
-}
+ auto stream = OutputDataStream(std::fstream(path));
-DataStream& DataArchive::GetStream()
-{
- return mStream;
-}
+ stream.WriteBytes(kMagicNumberCount, kMagicNumbers);
+ stream.Write(kByteOrderMark);
-DataArchive::DataArchive(DataStream stream)
- : mStream(std::move(stream))
-{
+ stream.SetEndianness(std::endian::native);
+
+ return stream;
}