BsScriptSerializableDictionary.h 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. #pragma once
  2. #include "BsScriptEnginePrerequisites.h"
  3. #include "BsScriptObject.h"
  4. namespace BansheeEngine
  5. {
  6. /**
  7. * @brief Interop class between C++ & CLR for ManagedSerializableDictionary.
  8. */
  9. class BS_SCR_BE_EXPORT ScriptSerializableDictionary : public ScriptObject<ScriptSerializableDictionary>
  10. {
  11. public:
  12. SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "SerializableDictionary")
  13. /**
  14. * @brief Creates a new serializable dictionary interop object from the data in the
  15. * provided property. Caller must ensure the property references a System.Collections.Generic.Dictionary.
  16. */
  17. static ScriptSerializableDictionary* create(const ScriptSerializableProperty* parentProperty);
  18. private:
  19. ScriptSerializableDictionary(MonoObject* instance, const ManagedSerializableTypeInfoDictionaryPtr& typeInfo);
  20. ManagedSerializableTypeInfoDictionaryPtr mTypeInfo;
  21. /************************************************************************/
  22. /* CLR HOOKS */
  23. /************************************************************************/
  24. static MonoObject* internal_createKeyProperty(ScriptSerializableDictionary* nativeInstance);
  25. static MonoObject* internal_createValueProperty(ScriptSerializableDictionary* nativeInstance);
  26. };
  27. }