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