rho::String js_s_SimpleOnlyStaticModule_joinStrings(rho::json::CJSONArray& argv, const rho::String& strObjID) { RAWTRACE2("%s(id=%s)", __FUNCTION__, strObjID.c_str()); MethodResultJni result; if(!result) { result.setError("JNI error: failed to initialize MethodResult java object"); RAWLOG_ERROR("JNI error: failed to initialize MethodResult java object ^^^"); return result.toJson(); } int argc = argv.getSize(); if((argc < 1) || (argc > 3)) { result.setArgError("Wrong number of arguments"); RAWLOG_ERROR1("Wrong number of arguments: %d ^^^", argc); return result.toJson(); } if(argc > 1) { if(argc > 2) result.setCallBack(argv[1], argv[2]); else result.setCallBack(argv[1]); if(!result.hasCallBackUrl()) { RAWLOG_ERROR("Error setting callback ^^^"); return result.toJson(); } } ObjectProxy::joinStrings(argumentsAdapter(argv), result); rho::String res = result.toJson(); RAWTRACE2("%s(id=%s) end ^^^", __FUNCTION__, strObjID.c_str()); return res; }
void MethodExecutorJni::run(jhobject jhTask, MethodResultJni& result) { if(shouldRunWithUiThread()) { runWithUiThread(jhTask); } else if(result.hasCallBackUrl() || shouldRunWithThread()) { runWithSeparateThread(jhTask); } else { run(jhTask); } }
//template <> CallbackSelector<rho::json::CJSONEntry>::CallbackSelector(MethodResultJni& result, JNIEnv* env, jstring jUrl, jstring jData) { result.setJSCallBack(env, jUrl, jData); }
//template <> CallbackSelector<VALUE>::CallbackSelector(MethodResultJni& result, JNIEnv* env, jstring jUrl, jstring jData) { result.setRubyCallBack(env, jUrl, jData); }