3#include <Foundation/Communication/Event.h>
4#include <Foundation/Containers/HashTable.h>
5#include <Foundation/Reflection/ReflectionUtils.h>
6#include <Foundation/Serialization/AbstractObjectGraph.h>
7#include <Foundation/Types/RefCounted.h>
8#include <Foundation/Types/SharedPtr.h>
9#include <ToolsFoundation/ToolsFoundationDLL.h>
14template <
typename KEY,
typename VALUE>
22 const VALUE* m_pValue;
23 plUInt32 m_uiModifiedFlags;
32 mutable enum class AccessMode { Nothing,
35 mutable KEY m_AcessingKey;
46 bool HasMetaData(
const KEY objectKey)
const;
48 void ClearMetaData(
const KEY objectKey);
52 void EndReadMetaData()
const;
54 VALUE* BeginModifyMetaData(
const KEY objectKey);
55 void EndModifyMetaData(plUInt32 uiModifiedFlags = 0xFFFFFFFF);
58 plMutex& GetMutex()
const {
return m_pMetaStorage->m_Mutex; }
60 const VALUE& GetDefaultValue()
const {
return m_DefaultValue; }
75 typename plEvent<const EventData&>::Unsubscriber m_EventsUnsubscriber;
78#include <ToolsFoundation/Object/Implementation/ObjectMetaData_inl.h>
Definition AbstractObjectGraph.h:115
Definition HashTable.h:333
Provides a simple mechanism for mutual exclusion to prevent multiple threads from accessing a shared ...
Definition Mutex.h:13
Base class for reference counted objects.
Definition RefCounted.h:52
A Shared ptr manages a shared object and destroys that object when no one references it anymore....
Definition SharedPtr.h:10