BsMonoMethod.h 773 B

123456789101112131415161718192021222324252627282930313233343536
  1. #pragma once
  2. #include "BsMonoPrerequisites.h"
  3. #include <mono/jit/jit.h>
  4. namespace BansheeEngine
  5. {
  6. class BS_MONO_EXPORT MonoMethod
  7. {
  8. public:
  9. MonoObject* invoke(MonoObject* instance, void** params);
  10. MonoObject* invokeVirtual(MonoObject* instance, void** params);
  11. /**
  12. * @brief Gets a thunk for this method. A thunk is a C++ like function
  13. * pointer that you can use for calling the method.
  14. *
  15. * @note This is the fastest way of calling managed code.
  16. */
  17. void* getThunk() const;
  18. String getName() const;
  19. MonoClass* getReturnType();
  20. private:
  21. friend class MonoClass;
  22. friend class MonoProperty;
  23. MonoMethod(::MonoMethod* method);
  24. ::MonoMethod* mMethod;
  25. MonoClass* mReturnType;
  26. void* mThunk;
  27. };
  28. }