JniApi.hpp 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /*
  2. * Author: Patrick-Christopher Mattulat
  3. * Co-Author: Claude Sonnet 4.6 (LLM)
  4. * Company: Lynar Studios
  5. * E-Mail: webmaster@lynarstudios.com
  6. * Created: 2023-04-07
  7. * Changed: 2026-06-23
  8. *
  9. * */
  10. #ifndef LS_STD_JNI_API_HPP
  11. #define LS_STD_JNI_API_HPP
  12. #include <ls-std/core/interface/IJniApi.hpp>
  13. #include <ls-std/os/dynamic-goal.hpp>
  14. /*
  15. * @doc: class(name: 'JniApi', package: 'core')
  16. * @doc: core.JniApi.description('This class represents an API for the Java Native Interface (JNI) wrapping basic JNI end points.')
  17. * */
  18. namespace ls::standard::core::experimental
  19. {
  20. class LS_STD_DYNAMIC_GOAL JniApi : public ls::standard::core::experimental::interface_type::IJniApi
  21. {
  22. public:
  23. explicit JniApi(JNIEnv *_environment);
  24. ~JniApi() noexcept override;
  25. jboolean callBooleanMethod(jobject _javaObject, jmethodID _methodId) override;
  26. jbyte callByteMethod(jobject _javaObject, jmethodID _methodId) override;
  27. jchar callCharMethod(jobject _javaObject, jmethodID _methodId) override;
  28. jdouble callDoubleMethod(jobject _javaObject, jmethodID _methodId) override;
  29. jfloat callFloatMethod(jobject _javaObject, jmethodID _methodId) override;
  30. jint callIntMethod(jobject _javaObject, jmethodID _methodId) override;
  31. jlong callLongMethod(jobject _javaObject, jmethodID _methodId) override;
  32. jshort callShortMethod(jobject _javaObject, jmethodID _methodId) override;
  33. jclass findClass(const ::std::string &_classPath) override;
  34. jmethodID getMethodId(jclass _javaClass, const char *_methodIdentifier, const char *_methodSignature) override;
  35. private:
  36. JNIEnv *environment{};
  37. };
  38. }
  39. #endif