From 0396f400a97f71bf743d584acc71a0cdbc155566 Mon Sep 17 00:00:00 2001 From: Stefan Boberg Date: Fri, 30 Jun 2023 11:07:10 +0200 Subject: * Added Guid::FromString * Added LoadCompactBinaryObject from file to compactbinaryfile.cpp/h * Added SaveCompactBinary(BinaryWriter& Ar, ...) functions * Added ZEN_PLATFORM_NAME define * Added SystemMetrics functionality to query system properties (see zencore/system.h) --- src/zencore/compactbinaryfile.cpp | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/zencore/compactbinaryfile.cpp (limited to 'src/zencore/compactbinaryfile.cpp') diff --git a/src/zencore/compactbinaryfile.cpp b/src/zencore/compactbinaryfile.cpp new file mode 100644 index 000000000..f2121a0bd --- /dev/null +++ b/src/zencore/compactbinaryfile.cpp @@ -0,0 +1,33 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#include "zencore/compactbinaryfile.h" +#include "zencore/compactbinaryvalidation.h" + +#include + +namespace zen { + +CbObjectFromFile +LoadCompactBinaryObject(const std::filesystem::path& FilePath) +{ + FileContents ObjectFile = ReadFile(FilePath); + + if (ObjectFile.ErrorCode) + { + throw std::system_error(ObjectFile.ErrorCode); + } + + IoBuffer ObjectBuffer = ObjectFile.Flatten(); + + if (CbValidateError Result = ValidateCompactBinary(ObjectBuffer, CbValidateMode::All); Result == CbValidateError::None) + { + CbObject Object = LoadCompactBinaryObject(ObjectBuffer); + const IoHash WorkerId = IoHash::HashBuffer(ObjectBuffer); + + return {.Object = Object, .Hash = WorkerId}; + } + + return {.Hash = IoHash::Zero}; +} + +} // namespace zen -- cgit v1.2.3