Sha256: be461a9d0605b5d599ed40d297586ed415b9609c3f93a2eff1015e71540a6dea

Contents?: true

Size: 1.7 KB

Versions: 17

Compression:

Stored size: 1.7 KB

Contents

#include "rhodes.h"
#include "<%= namecamelcase %>.h"

#include "logging/RhoLog.h"
#undef DEFAULT_LOGCATEGORY
#define DEFAULT_LOGCATEGORY "<%= namecamelcase %>_impl"

#define <%= namefixed.upcase %>_FACTORY_CLASS "com.rho.<%= namefixed %>.<%= namecamelcase %>Factory"

extern "C" void Init_<%= namecamelcase %>_API(void);

extern "C" void Init_<%= namecamelcase %>(void)
{
    RAWTRACE(__FUNCTION__);

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

        rho::C<%= namecamelcase %>Base::setJavaFactory(env, jFactory);

        RAWTRACE("Deleting JNI reference");

        env->DeleteLocalRef(jFactory);

        RAWTRACE("Initializing API");

        Init_<%= namecamelcase %>_API();

        RAWTRACE("Init_<%= namecamelcase %> succeeded");
    }
    else
    {
        RAWLOG_ERROR("Failed to initialize <%= namecamelcase %> API: jnienv() is failed");
    }

}

extern "C" void Init_<%= namecamelcase %>_extension() {
    Init_<%= namecamelcase %>();
}

Version data entries

17 entries across 17 versions & 2 rubygems

Version Path
rhodes-7.6.0 res/generators/templates/extension/extensions/montana/ext/platform/android/jni/Montana_impl.cpp
rhodes-7.5.1 res/generators/templates/extension/extensions/montana/ext/platform/android/jni/Montana_impl.cpp
rhodes-7.4.1 res/generators/templates/extension/extensions/montana/ext/platform/android/jni/Montana_impl.cpp
rhodes-7.1.17 res/generators/templates/extension/extensions/montana/ext/platform/android/jni/Montana_impl.cpp
rhodes-6.2.0 res/generators/templates/extension/extensions/montana/ext/platform/android/jni/Montana_impl.cpp
rhodes-6.0.11 res/generators/templates/extension/extensions/montana/ext/platform/android/jni/Montana_impl.cpp
rhodes-5.5.18 res/generators/templates/extension/extensions/montana/ext/platform/android/jni/Montana_impl.cpp
rhodes-5.5.17 res/generators/templates/extension/extensions/montana/ext/platform/android/jni/Montana_impl.cpp
rhodes-5.5.15 res/generators/templates/extension/extensions/montana/ext/platform/android/jni/Montana_impl.cpp
rhodes-5.5.0.22 res/generators/templates/extension/extensions/montana/ext/platform/android/jni/Montana_impl.cpp
rhodes-5.5.2 res/generators/templates/extension/extensions/montana/ext/platform/android/jni/Montana_impl.cpp
rhodes-5.5.0.7 res/generators/templates/extension/extensions/montana/ext/platform/android/jni/Montana_impl.cpp
rhodes-5.5.0.3 res/generators/templates/extension/extensions/montana/ext/platform/android/jni/Montana_impl.cpp
rhodes-5.5.0 res/generators/templates/extension/extensions/montana/ext/platform/android/jni/Montana_impl.cpp
tauplatform-1.0.3 res/generators/templates/extension/extensions/montana/ext/platform/android/jni/Montana_impl.cpp
tauplatform-1.0.2 res/generators/templates/extension/extensions/montana/ext/platform/android/jni/Montana_impl.cpp
tauplatform-1.0.1 res/generators/templates/extension/extensions/montana/ext/platform/android/jni/Montana_impl.cpp