3#include <Foundation/Types/RefCounted.h>
4#include <Foundation/Types/SharedPtr.h>
5#include <Foundation/Types/Status.h>
6#include <ToolsFoundation/Object/DocumentObjectBase.h>
7#include <ToolsFoundation/Reflection/ReflectedType.h>
8#include <ToolsFoundation/ToolsFoundationDLL.h>
105 BeforeObjectDestroyed,
110 Type m_EventType = Type::Invalid;
141 void SetDocument(
plDocument* pDocument) { m_pObjectStorage->m_pDocument = pDocument; }
148 virtual void DestroyAllObjects();
153 const plDocumentObject* GetRootObject()
const {
return &m_pObjectStorage->m_RootObject; }
154 plDocumentObject* GetRootObject() {
return &m_pObjectStorage->m_RootObject; }
157 const plDocument* GetDocument()
const {
return m_pObjectStorage->m_pDocument; }
158 plDocument* GetDocument() {
return m_pObjectStorage->m_pDocument; }
187 virtual void InternalDestroyObject(
plDocumentObject* pObject) { PL_DEFAULT_DELETE(pObject); }
214 plCopyOnBroadcastEvent<const plDocumentObjectStructureEvent&>::Unsubscriber m_StructureEventsUnsubscriber;
215 plCopyOnBroadcastEvent<const plDocumentObjectPropertyEvent&>::Unsubscriber m_PropertyEventsUnsubscriber;
216 plEvent<const plDocumentObjectEvent&>::Unsubscriber m_ObjectEventsUnsubscriber;
This is the base interface for all properties in the reflection system. It provides enough informatio...
Definition AbstractProperty.h:150
Definition DocumentObjectBase.h:11
Definition DocumentObjectManager.h:120
Represents to content of a document. Every document has exactly one root object under which all objec...
Definition DocumentObjectManager.h:116
Standard root object for most documents. m_RootObjects stores what is in the document and m_TempObjec...
Definition DocumentObjectManager.h:21
Implementation detail of plDocumentObjectManager.
Definition DocumentObjectManager.h:30
Definition DocumentObjectBase.h:61
Definition HashTable.h:333
A hybrid array uses in-place storage to handle the first few elements without any allocation....
Definition HybridArray.h:12
Definition ObjectAccessorBase.h:8
This class holds information about reflected types. Each instance represents one type that is known t...
Definition RTTI.h:30
Base class for reference counted objects.
Definition RefCounted.h:52
All classes that should be dynamically reflectable, need to be derived from this base class.
Definition DynamicRTTI.h:86
A Shared ptr manages a shared object and destroys that object when no one references it anymore....
Definition SharedPtr.h:10
plStringView represent a read-only sub-string of a larger string, as it can store a dedicated string ...
Definition StringView.h:34
This data type is the abstraction for 128-bit Uuid (also known as GUID) instances.
Definition Uuid.h:11
static plUuid MakeStableUuidFromString(plStringView sString)
Creates a uuid from a string. The result is always the same for the same string.
Definition UuidGenerator.cpp:5
plVariant is a class that can store different types of variables, which is useful in situations where...
Definition Variant.h:44
Used by plDocumentObjectManager::m_ObjectEvents.
Definition DocumentObjectManager.h:100
Used by plDocumentObjectManager::m_PropertyEvents.
Definition DocumentObjectManager.h:77
Used by plDocumentObjectManager::m_StructureEvents.
Definition DocumentObjectManager.h:45
An plResult with an additional message for the reason of failure.
Definition Status.h:12