From 15740faf9fe9fe4be08965098bbf2947e096aeeb Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 14 Aug 2019 22:50:43 +0800 Subject: +Unity Runtime code --- Runtime/Serialize/WriteTypeToBuffer.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 Runtime/Serialize/WriteTypeToBuffer.h (limited to 'Runtime/Serialize/WriteTypeToBuffer.h') diff --git a/Runtime/Serialize/WriteTypeToBuffer.h b/Runtime/Serialize/WriteTypeToBuffer.h new file mode 100644 index 0000000..3065f23 --- /dev/null +++ b/Runtime/Serialize/WriteTypeToBuffer.h @@ -0,0 +1,21 @@ +#ifndef WRITE_TYPE_TO_BUFFER_H +#define WRITE_TYPE_TO_BUFFER_H + +#include "Runtime/Allocator/MemoryManager.h" +#include "Runtime/Utilities/dynamic_array.h" +#include "Runtime/Serialize/TransferFunctions/StreamedBinaryWrite.h" + +template void WriteTypeToVector (TYPE& object, dynamic_array* data, int options = 0) +{ + data->clear (); + MemoryCacheWriter memoryCache (*data); + StreamedBinaryWrite writeStream; + CachedWriter& writeCache = writeStream.Init (0, BuildTargetSelection::NoTarget()); + + writeCache.InitWrite(memoryCache); + writeStream.Transfer(object, "Base"); + + if (!writeCache.CompleteWriting () || writeCache.GetPosition() != data->size ()) + ErrorString ("Error while writing serialized data."); +} +#endif -- cgit v1.1-26-g67d0