Plasma Engine  2.0
Loading...
Searching...
No Matches
ReflectionSerializer.h
1#pragma once
2
3#include <Foundation/IO/OpenDdlWriter.h>
4#include <Foundation/Reflection/Reflection.h>
5
7
8class PL_FOUNDATION_DLL plReflectionSerializer
9{
10public:
21 static void WriteObjectToDDL(plStreamWriter& inout_stream, const plRTTI* pRtti, const void* pObject, bool bCompactMmode = true,
23
25 static void WriteObjectToDDL(plOpenDdlWriter& ref_ddl, const plRTTI* pRtti, const void* pObject, plUuid guid = plUuid()); // [tested]
26
28 static void WriteObjectToBinary(plStreamWriter& inout_stream, const plRTTI* pRtti, const void* pObject); // [tested]
29
36 static void* ReadObjectFromDDL(plStreamReader& inout_stream, const plRTTI*& ref_pRtti); // [tested]
37
38 static void* ReadObjectFromDDL(const plOpenDdlReaderElement* pRootElement, const plRTTI*& ref_pRtti); // [tested]
39
41 static void* ReadObjectFromBinary(plStreamReader& inout_stream, const plRTTI*& ref_pRtti); // [tested]
42
51 static void ReadObjectPropertiesFromDDL(plStreamReader& inout_stream, const plRTTI& rtti, void* pObject); // [tested]
52
54 static void ReadObjectPropertiesFromBinary(plStreamReader& inout_stream, const plRTTI& rtti, void* pObject); // [tested]
55
61 static void* Clone(const void* pObject, const plRTTI* pType); // [tested]
62
69 static void Clone(const void* pObject, void* pClone, const plRTTI* pType); // [tested]
70
72 template <typename T>
73 static T* Clone(const T* pObject)
74 {
75 return static_cast<T*>(Clone(pObject, plGetStaticRTTI<T>()));
76 }
77};
Represents a single 'object' in a DDL document, e.g. either a custom type or a primitives list.
Definition OpenDdlReader.h:11
The base class for OpenDDL writers.
Definition OpenDdlWriter.h:13
TypeStringMode
Definition OpenDdlWriter.h:16
This class holds information about reflected types. Each instance represents one type that is known t...
Definition RTTI.h:30
Definition ReflectionSerializer.h:9
static T * Clone(const T *pObject)
Templated convenience function that calls Clone and automatically deduces the type.
Definition ReflectionSerializer.h:73
Interface for binary in (read) streams.
Definition Stream.h:22
Interface for binary out (write) streams.
Definition Stream.h:107
This data type is the abstraction for 128-bit Uuid (also known as GUID) instances.
Definition Uuid.h:11