class Core::Java::JniAccessor

Overview

Helper that locally stores a JNIEnv pointer to avoid multiple successive calls to Jni::getEnvironment (). More…

#include <corejnienvironment.h>

class JniAccessor
{
public:
    // construction

    JniAccessor();
    JniAccessor(JNIEnv* jni);

    // methods

    bool isValid() const;
    JNIEnv* operator -> () const;
    operator JNIEnv * () const;
    operator JNIEnv *& ();
    JNIEnv* getJni();
    bool checkException();
    jobject newObject(const JniClass& jniClass) const;
    jobject newObject(const JniClass& jniClass, const JniMethod& constructor, ...) const;

    jobject getStaticField(
        const JniClass& jniClass,
        CStringPtr fieldName,
        CStringPtr fieldType
    ) const;

    template <class T>
    T getField(jobject object, const JniField<T>& field) const;

    template <class T>
    void setField(
        jobject object,
        const JniField<T>& field,
        T value
    ) const;
};

Detailed Documentation

Helper that locally stores a JNIEnv pointer to avoid multiple successive calls to Jni::getEnvironment ().

Methods

jobject newObject(const JniClass& jniClass) const

default constructor

jobject newObject(const JniClass& jniClass, const JniMethod& constructor, ...) const

constructor with arguments