BsMonoField.h 875 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #pragma once
  2. #include "BsMonoPrerequisites.h"
  3. #include <mono/jit/jit.h>
  4. #include <mono/metadata/class.h>
  5. namespace BansheeEngine
  6. {
  7. enum class MonoFieldVisibility
  8. {
  9. Private,
  10. ProtectedInternal,
  11. Internal,
  12. Protected,
  13. Public
  14. };
  15. class BS_MONO_EXPORT MonoField
  16. {
  17. public:
  18. const String& getName() const { return mName; }
  19. MonoClass* getType();
  20. void getValue(MonoObject* instance, void* outValue);
  21. MonoObject* getValueBoxed(MonoObject* instance);
  22. void setValue(MonoObject* instance, void* value);
  23. bool hasAttribute(MonoClass* monoClass);
  24. MonoObject* getAttribute(MonoClass* monoClass);
  25. MonoFieldVisibility getVisibility();
  26. bool isStatic();
  27. private:
  28. friend class MonoClass;
  29. MonoField(MonoClassField* field);
  30. String mName;
  31. MonoClassField* mField;
  32. MonoClass* mFieldType;
  33. void* mThunk;
  34. };
  35. }