Plasma Engine  2.0
Loading...
Searching...
No Matches
ReflectedType.h
1#pragma once
2
3#include <Foundation/Containers/Set.h>
4#include <Foundation/Reflection/Reflection.h>
5#include <Foundation/Strings/HashedString.h>
6#include <Foundation/Types/Bitflags.h>
7#include <Foundation/Types/Enum.h>
8#include <Foundation/Types/Id.h>
9#include <Foundation/Types/Variant.h>
10#include <ToolsFoundation/ToolsFoundationDLL.h>
11
12class plRTTI;
15
17struct PL_TOOLSFOUNDATION_DLL plPhantomTypeChange
18{
19 const plRTTI* m_pChangedType = nullptr;
20};
21
22struct PL_TOOLSFOUNDATION_DLL plAttributeHolder
23{
26 virtual ~plAttributeHolder();
27
28 plUInt32 GetCount() const;
29 const plPropertyAttribute* GetValue(plUInt32 uiIndex) const;
30 void SetValue(plUInt32 uiIndex, const plPropertyAttribute* value);
31 void Insert(plUInt32 uiIndex, const plPropertyAttribute* value);
32 void Remove(plUInt32 uiIndex);
33
34 void operator=(const plAttributeHolder& rhs);
35
38};
39PL_DECLARE_REFLECTABLE_TYPE(PL_TOOLSFOUNDATION_DLL, plAttributeHolder);
40
62PL_DECLARE_REFLECTABLE_TYPE(PL_TOOLSFOUNDATION_DLL, plReflectedPropertyDescriptor);
63
71PL_DECLARE_REFLECTABLE_TYPE(PL_TOOLSFOUNDATION_DLL, plFunctionArgumentDescriptor);
72
90PL_DECLARE_REFLECTABLE_TYPE(PL_TOOLSFOUNDATION_DLL, plReflectedFunctionDescriptor);
91
92
94struct PL_TOOLSFOUNDATION_DLL plReflectedTypeDescriptor : public plAttributeHolder
95{
97
98 plString m_sTypeName;
99 plString m_sPluginName;
100 plString m_sParentTypeName;
101
105 plUInt32 m_uiTypeVersion = 1;
106};
107PL_DECLARE_REFLECTABLE_TYPE(PL_TOOLSFOUNDATION_DLL, plReflectedTypeDescriptor);
This class encapsulates an array and it's size. It is recommended to use this class instead of plain ...
Definition ArrayPtr.h:37
Definition DynamicArray.h:81
A hybrid array uses in-place storage to handle the first few elements without any allocation....
Definition HybridArray.h:12
Manages all plPhantomRTTI types that have been added to him.
Definition PhantomRttiManager.h:31
Base class of all attributes can be used to decorate a RTTI property.
Definition PropertyAttributes.h:11
This class holds information about reflected types. Each instance represents one type that is known t...
Definition RTTI.h:30
Manages all plReflectedTypeStorageAccessor instances.
Definition ReflectedTypeStorageManager.h:15
plStringView represent a read-only sub-string of a larger string, as it can store a dedicated string ...
Definition StringView.h:34
plVariant is a class that can store different types of variables, which is useful in situations where...
Definition Variant.h:44
Definition ReflectedType.h:23
The plBitflags class allows you to work with type-safe bitflags.
Definition Bitflags.h:82
A custom enum implementation that allows to define the underlying storage type to control its memory ...
Definition Enum.h:37
Definition ReflectedType.h:65
Event message used by the plPhantomRttiManager.
Definition ReflectedType.h:18
Enum
Definition AbstractProperty.h:136
Stores the description of a reflected function in a serializable form, used by plReflectedTypeDescrip...
Definition ReflectedType.h:75
Stores the description of a reflected property in a serializable form, used by plReflectedTypeDescrip...
Definition ReflectedType.h:43
plString m_sName
The name of this property. E.g. what plAbstractProperty::GetPropertyName() returns.
Definition ReflectedType.h:56
plString m_sType
The name of the type of the property. E.g. plAbstractProperty::GetSpecificType().GetTypeName()
Definition ReflectedType.h:57
Stores the description of a reflected type in a serializable form. Used by plPhantomRttiManager to ad...
Definition ReflectedType.h:95