BsScriptSerializableList.h 1.1 KB

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