VALUE MethodResultJni::enumerateRubyObjects(VALUE klass) { RAWTRACE("enumerateRubyObjects"); JNIEnv *env = jniInit(); if (!env) { RAWLOG_ERROR("JNI initialization failed"); rb_raise(rb_eRuntimeError,"JNI initialization failed"); return Qnil;; } if(getResultType(env) == typeList) { CHoldRubyValue valArray(rho_ruby_create_array()); HStringVector pIDs = rho_cast<HStringVector>(env, getListResult(env)); for(HStringVector::element_type::size_type i = 0; i < pIDs->size(); ++i) { VALUE valObj = rho_ruby_create_object_with_id( klass, (*pIDs)[i].c_str() ); rho_ruby_add_to_array(valArray, valObj); } RAWTRACE("has enumerated"); reset(env); return valArray; } else { return toRuby(); } }
MethodResultJni::MethodResultJni(JNIEnv* env, jobject jResult) : m_jhResult(jResult), m_bGlobalRef(false), m_bSlaveRef(false), m_hasCallback(false), m_resType(typeNone) { m_env = jniInit(env); if (!m_env) { RAWLOG_ERROR("ctor - JNI initialization failed"); return; } }
MethodResultJni::MethodResultJni() : m_jhResult(0), m_hasCallbackUrl(false), m_resType(typeNone) { JNIEnv *env = jniInit(); if (!env) { RAWLOG_ERROR("ctor - JNI initialization failed"); return; } m_jhResult = env->NewObject(s_methodResultClass, s_midMethodResult); }
JNIEnv* CGenPropBagBase::jniInit() { JNIEnv *env = jnienv(); if(!env) { LOG(FATAL) + "JNI init failed: JNIEnv is null"; return 0; } return jniInit(env); }
void MethodExecutorJni::runWithUiThread(jhobject jhTask) { JNIEnv *env = jniInit(); if (!env) { RAWLOG_ERROR("JNI initialization failed"); return; } env->CallStaticVoidMethod(s_MethodExecutorClass, s_midRunWithUiThread, jhTask.get()); }
JNIEnv* CBarcode1::jniInit() { JNIEnv *env = jnienv(); if(!env) { RAWLOG_ERROR("JNI init failed: JNIEnv is null"); return 0; } return jniInit(env); }
MethodResultJni::MethodResultJni(bool isRuby) : m_env(0), m_jhResult(0), m_bGlobalRef(false), m_bSlaveRef(false), m_hasCallback(false), m_resType(typeNone) { m_env = jniInit(); if (!m_env) { RAWLOG_ERROR("ctor - JNI initialization failed"); return; } m_jhResult = m_env->NewObject(s_methodResultClass, s_midMethodResult, static_cast<jboolean>(isRuby)); }
JNIEnv* CLightsensorBase::jniInit() { JNIEnv *env = jnienv(); if(!env) { LOG(FATAL) + "JNI init failed: JNIEnv is null"; return 0; } return jniInit(env); }
jhobject CBarcode1::create(jhstring& jhId) { JNIEnv *env = jniInit(); if (!env) { RAWLOG_ERROR("JNI initialization failed"); return; } jhobject res = env->CallStaticObjectMethod(s_class, s_midCreate, ghId.get()); }
jhobject CBarcode1::enumerate() { JNIEnv *env = jniInit(); if (!env) { RAWLOG_ERROR("JNI initialization failed"); return; } jhobject res = env->CallStaticObjectMethod(s_class, s_midEnumerate); return res; }
void CBarcode1::setDefaultID(jhstring& jhId) { JNIEnv *env = jniInit(); if (!env) { RAWLOG_ERROR("JNI initialization failed"); return; } env->CallStaticVoidMethod(s_class, s_midSetDefaultID, jhId.get()); }
jhobject CBarcode1::getDefault() { JNIEnv *env = jniInit(); if (!env) { RAWLOG_ERROR("JNI initialization failed"); return; } jhstring res = env->CallStaticObjectMethod(s_class, s_midGetDefault); return res; }
MethodResultJni::MethodResultJni(JNIEnv* env, jobject jResult) : m_bhasLocalFrame(false), m_jhResult(jResult), m_bGlobalRef(false), m_bSlaveRef(false), m_hasCallback(false), m_resType(typeNone), m_javaResultType(0) { if(env->PushLocalFrame(256) >= 0) { m_bhasLocalFrame = true; } m_env = jniInit(env); if (!m_env) { RAWLOG_ERROR("ctor - JNI initialization failed"); return; } }
void CBarcode1::enumerate(MethodResultJni& res) { RAWTRACE("enumerate"); JNIEnv *env = jniInit(); if (!env) { RAWLOG_ERROR("JNI initialization failed"); return; } jhobject jhSingleton = getSingleton(env); env->CallVoidMethod(jhSingleton.get(), s_midEnumerate, static_cast<jobject>(res)); }
void CLightsensorBase::setJavaFactory(JNIEnv* env, jobject jFactory) { LOG(TRACE) + "setJavaFactory"; env = jniInit(env); if (!env) { LOG(FATAL) + "JNI initialization failed"; return; } env->CallStaticVoidMethod(s_clsFactorySingleton, s_midFactorySetInstance, jFactory); LOG(TRACE) + "setJavaFactory succeeded"; }
/* * Class: com_jni_demos_TestJNI * Method: Init * Signature: (I)V */ JNIEXPORT void JNICALL Java_com_libcc_test_TestJNI_Init (JNIEnv *env, jobject obj, jobject amgr) { if (amgr && env) { assetManager = AAssetManager_fromJava(env, amgr); if (NULL == assetManager) { CC_ERROR_LOG("AAssetManager_fromJava() return null !"); } cc_jni_set_asset_manager(assetManager); jniInit(); } else { CC_ERROR_LOG("assetManager is null !"); } }
void CLightsensorBase::setDefaultID(const rho::String& id) { LOG(TRACE) + "setDefaultID: " + id; JNIEnv *env = jniInit(); if (!env) { LOG(FATAL) + "JNI initialization failed"; return; } jhobject instance = getSingleton(env); jhstring jhId = rho_cast<jstring>(env, id); env->CallVoidMethod(instance.get(), s_midSetDefaultID, jhId.get()); }
rho::String CLightsensorBase::getDefaultID() { LOG(TRACE) + "getDefaultID"; JNIEnv *env = jniInit(); if (!env) { LOG(FATAL) + "JNI initialization failed"; return rho::String(); } jhobject jhSingleton = getSingleton(env); jhstring res = static_cast<jstring>(env->CallObjectMethod(jhSingleton.get(), s_midGetDefaultID)); return rho_cast<rho::String>(env, res); }
void CBarcode1::setDefaultID(const rho::String& id) { RAWTRACE1("setDefaultID(id = \"%s\")", id.c_str()); JNIEnv *env = jniInit(); if (!env) { RAWLOG_ERROR("JNI initialization failed"); return; } jhobject instance = getSingleton(env); jhstring jhId = rho_cast<jstring>(env, id); env->CallVoidMethod(instance.get(), s_midSetDefaultID, jhId.get()); }
rho::String CBarcode1::getDefaultID() { RAWTRACE("getDefaultID"); JNIEnv *env = jniInit(); if (!env) { RAWLOG_ERROR("JNI initialization failed"); return rho::String(); } jhobject jhSingleton = getSingleton(env); jhstring res = static_cast<jstring>(env->CallObjectMethod(jhSingleton.get(), s_midGetDefaultID)); return rho_cast<rho::String>(env, res); }
//---------------------------------------------------------------------------------------------------------------------- void CBarcode1::takeBarcode(MethodResultJni& result) { RAWTRACE("takeBarcode(result)"); JNIEnv *env = jniInit(); if (!env) { RAWLOG_ERROR("JNI initialization failed"); return; } jhobject jhObject = getObject(env); jhobject jhTask = env->NewObject(s_clsTakeBarcodeTask, s_midTakeBarcodeTask, jhObject.get(), static_cast<jobject>(result)); run(env, jhTask.get(), result); }
void CBarcode1::getProps(jobject names, MethodResultJni& result) { RAWTRACE("getProps(nameList, result)"); JNIEnv *env = jniInit(); if (!env) { RAWLOG_ERROR("JNI initialization failed"); return; } jhobject jhObject = getObject(env); jhobject jhTask = env->NewObject(s_clsGetProps2Task, s_midGetProps2Task, jhObject.get(), names, static_cast<jobject>(result)); run(env, jhTask.get(), result); }
void CBarcode1::setJavaFactory(JNIEnv* env, jobject jFactory) { RAWTRACE("setJavaFactory"); env = jniInit(env); if (!env) { RAWLOG_ERROR("JNI initialization failed"); return; } RAWTRACE1("s_clsFactorySingleton: 0x%.8X ------------------------------------", s_clsFactorySingleton); env->CallStaticVoidMethod(s_clsFactorySingleton, s_midFactorySetInstance, jFactory); RAWTRACE("setJavaFactory succeeded"); }
VALUE MethodResultJni::toRuby() { RAWTRACE("toRuby"); VALUE res = Qnil; JNIEnv *env = jniInit(); if (!env) { RAWLOG_FATAL("JNI initialization failed"); rb_raise(rb_eRuntimeError,"JNI initialization failed"); return Qnil; } int type = getResultType(env); switch(type) { case typeNone: break; case typeBoolean: { bool booleanResult = static_cast<bool>(getBooleanResult(env)); res = booleanResult ? Qtrue : Qfalse; } break; case typeInteger: { int intResult = static_cast<int>(getIntegerResult(env)); res = rho_ruby_create_integer(intResult); } break; case typeDouble: { double doubleResult = static_cast<double>(getDoubleResult(env)); res = rho_ruby_create_double(doubleResult); } break; case typeString: { jhstring jhStrResult = getStringResult(env); res = rho_cast<VALUE>(env, jhStrResult); } break; case typeList: { jhobject jhListResult = getListResult(env); res = rho_cast<VALUE>(env, jhListResult); } break; case typeMap: { jhobject jhMapResult = getMapResult(env); res = rho_cast<VALUE>(env, jhMapResult); } break; case typeArgError: rho_ruby_raise_argerror(getErrorMessage(env).c_str()); break; case typeError: rb_raise(rb_eRuntimeError, getErrorMessage(env).c_str()); break; default: RAWLOG_FATAL("Unknown runtime error in MethodResultJni class"); rb_raise(rb_eRuntimeError,"Unknown runtime error in MethodResultJni class"); } reset(env); return res; }
JNIEXPORT void JNICALL Java_com_mapzen_tangram_Tangram_init(JNIEnv* jniEnv, jobject obj, jobject tangramInstance, jobject assetManager) { jniInit(jniEnv, tangramInstance, assetManager); Tangram::initialize(); }
std::string MethodResultJni::toJson() { std::string res = "{}"; JNIEnv *env = jniInit(); if (!env) { RAWLOG_FATAL("JNI initialization failed"); rb_raise(rb_eRuntimeError,"JNI initialization failed"); return res; } int type = getResultType(env); switch(type) { case typeNone: break; case typeBoolean: // { // bool booleanResult = static_cast<bool>(getBooleanResult(env)); // res = booleanResult ? Qtrue : Qfalse; // } break; case typeInteger: // { // int intResult = static_cast<int>(getIntegerResult(env)); // res = rho_ruby_create_integer(intResult); // } break; case typeDouble: // { // double doubleResult = static_cast<double>(getDoubleResult(env)); // res = rho_ruby_create_double(doubleResult); // } break; case typeString: // { // jhstring jhStrResult = getStringResult(env); // res = rho_cast<VALUE>(env, jhStrResult); // } break; case typeList: // { // jhobject jhListResult = getListResult(env); // res = rho_cast<VALUE>(env, jhListResult); // } break; case typeMap: // { // jhobject jhMapResult = getMapResult(env); // res = rho_cast<VALUE>(env, jhMapResult); // } break; case typeArgError: case typeError: { res = "{'error' : { 'message' : '"; res += getErrorMessage(env) + "' } }"; } break; default: RAWLOG_ERROR("Unknown runtime error in MethodResultJni class"); res = "{'error' : { 'message' : 'Unknown runtime error in MethodResultJni class' } }"; } reset(env); return res; }