2
0

BsScriptAsyncOp.h 912 B

12345678910111213141516171819202122232425262728
  1. #pragma once
  2. #include "BsScriptEnginePrerequisites.h"
  3. #include "BsScriptObject.h"
  4. #include "BsAsyncOp.h"
  5. namespace BansheeEngine
  6. {
  7. class BS_SCR_BE_EXPORT ScriptAsyncOp : public ScriptObject<ScriptAsyncOp>
  8. {
  9. public:
  10. SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "AsyncOp")
  11. static MonoObject* create(const AsyncOp& op, std::function<MonoObject*(const AsyncOp&)> asyncOpToReturnValue);
  12. private:
  13. ScriptAsyncOp(MonoObject* instance);
  14. void initialize(const AsyncOp& op, std::function<MonoObject*(const AsyncOp&)> asyncOpToReturnValue);
  15. static void internal_createInstance(MonoObject* managedInstance);
  16. static void internal_isComplete(ScriptAsyncOp* thisPtr, bool* value);
  17. static MonoObject* internal_getReturnValue(ScriptAsyncOp* thisPtr);
  18. static void internal_blockUntilComplete(ScriptAsyncOp* thisPtr);
  19. AsyncOp mAsyncOp;
  20. std::function<MonoObject*(const AsyncOp&)> mConvertCallback;
  21. };
  22. }