Sha256: 848b7096c523d9b27dc16dba8a264cbec76f04f8d8278a3e4001cb978643740d

Contents?: true

Size: 1.74 KB

Versions: 14

Compression:

Stored size: 1.74 KB

Contents

#include "rhodes.h"
#include "Signature.h"

#include "logging/RhoLog.h"
#undef DEFAULT_LOGCATEGORY
#define DEFAULT_LOGCATEGORY "Signature_impl"

#ifndef RHO_NO_RUBY_API
extern "C" unsigned long rb_require(const char *fname);
extern "C" int  rho_ruby_is_started();
#endif



#define SIGNATURE_FACTORY_CLASS "com.rho.signature.SignatureFactory"

extern "C" void Init_Signature_API(void);

extern "C" void Init_Signature(void)
{
    RAWTRACE(__FUNCTION__);

    JNIEnv *env = jnienv();
    if(env)
    {
        jclass cls = rho_find_class(env, SIGNATURE_FACTORY_CLASS);
        if(!cls)
        {
            RAWLOG_ERROR1("Failed to find java class: %s", SIGNATURE_FACTORY_CLASS);
            return;
        }
        jmethodID midFactory = env->GetMethodID(cls, "<init>", "()V");
        if(!midFactory)
        {
            RAWLOG_ERROR1("Failed to get constructor for java class %s", SIGNATURE_FACTORY_CLASS);
            return;
        }
        jobject jFactory = env->NewObject(cls, midFactory);
        if(env->IsSameObject(jFactory, NULL))
        {
            RAWLOG_ERROR1("Failed to create %s instance", SIGNATURE_FACTORY_CLASS);
            return;
        }
        
        RAWTRACE("Initializing Java factory");

        rho::CSignatureBase::setJavaFactory(env, jFactory);

        RAWTRACE("Deleting JNI reference");

        env->DeleteLocalRef(jFactory);

        RAWTRACE("Initializing API");

        Init_Signature_API();

        RAWTRACE("Init_Signature succeeded");
    }
    else
    {
        RAWLOG_ERROR("Failed to initialize Signature API: jnienv() is failed");
    }

}

extern "C" void Init_Signature_extension() {
    Init_Signature();
#ifndef RHO_NO_RUBY_API
    if (rho_ruby_is_started())
    {
        rb_require("RhoSignatureApi");
    }
#endif
}

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
rhodes-7.6.0 lib/commonAPI/signature/ext/platform/android/jni/Signature_impl.cpp
rhodes-7.5.1 lib/commonAPI/signature/ext/platform/android/jni/Signature_impl.cpp
rhodes-7.4.1 lib/commonAPI/signature/ext/platform/android/jni/Signature_impl.cpp
rhodes-7.1.17 lib/commonAPI/signature/ext/platform/android/jni/Signature_impl.cpp
rhodes-6.2.0 lib/commonAPI/signature/ext/platform/android/jni/Signature_impl.cpp
rhodes-6.0.11 lib/commonAPI/signature/ext/platform/android/jni/Signature_impl.cpp
rhodes-5.5.18 lib/commonAPI/signature/ext/platform/android/jni/Signature_impl.cpp
rhodes-5.5.17 lib/commonAPI/signature/ext/platform/android/jni/Signature_impl.cpp
rhodes-5.5.15 lib/commonAPI/signature/ext/platform/android/jni/Signature_impl.cpp
rhodes-5.5.0.22 lib/commonAPI/signature/ext/platform/android/jni/Signature_impl.cpp
rhodes-5.5.2 lib/commonAPI/signature/ext/platform/android/jni/Signature_impl.cpp
rhodes-5.5.0.7 lib/commonAPI/signature/ext/platform/android/jni/Signature_impl.cpp
rhodes-5.5.0.3 lib/commonAPI/signature/ext/platform/android/jni/Signature_impl.cpp
rhodes-5.5.0 lib/commonAPI/signature/ext/platform/android/jni/Signature_impl.cpp