BsScriptSerializableArray.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 ManagedSerializableArray.
  8. */
  9. class BS_SCR_BE_EXPORT ScriptSerializableArray : public ScriptObject<ScriptSerializableArray>
  10. {
  11. public:
  12. SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "SerializableArray")
  13. /**
  14. * @brief Creates a new serializable array interop object from the data in the
  15. * provided property. Caller must ensure the property references an array.
  16. */
  17. static ScriptSerializableArray* create(const ScriptSerializableProperty* parentProperty);
  18. private:
  19. ScriptSerializableArray(MonoObject* instance, const ManagedSerializableTypeInfoArrayPtr& typeInfo);
  20. ManagedSerializableTypeInfoArrayPtr mTypeInfo;
  21. /************************************************************************/
  22. /* CLR HOOKS */
  23. /************************************************************************/
  24. static MonoObject* internal_createProperty(ScriptSerializableArray* nativeInstance);
  25. };
  26. }