summaryrefslogtreecommitdiff
path: root/Runtime/Serialize/WriteTypeToBuffer.h
diff options
context:
space:
mode:
Diffstat (limited to 'Runtime/Serialize/WriteTypeToBuffer.h')
-rw-r--r--Runtime/Serialize/WriteTypeToBuffer.h21
1 files changed, 21 insertions, 0 deletions
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 <typename TYPE> void WriteTypeToVector (TYPE& object, dynamic_array<UInt8>* data, int options = 0)
+{
+ data->clear ();
+ MemoryCacheWriter memoryCache (*data);
+ StreamedBinaryWrite<false> 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