// Setter functions static void setStub(getdns_context* context, Handle<Value> opt) { if (opt->IsTrue()) { getdns_context_set_resolution_type(context, GETDNS_RESOLUTION_STUB); } else { getdns_context_set_resolution_type(context, GETDNS_RESOLUTION_RECURSING); } }
JNIEXPORT jboolean JNICALL Java_org_appcelerator_kroll_runtime_v8_V8Object_nativeFireEvent (JNIEnv *env, jobject jEmitter, jlong ptr, jstring event, jobject data) { ENTER_V8(V8Runtime::globalContext); JNIScope jniScope(env); Handle<Value> jsEvent = TypeConverter::javaStringToJsString(event); #ifdef TI_DEBUG String::Utf8Value eventName(jsEvent); LOGV(TAG, "firing event \"%s\"", *eventName); #endif Handle<Object> emitter; if (ptr != 0) { emitter = Persistent<Object>((Object *) ptr); } else { emitter = TypeConverter::javaObjectToJsValue(jEmitter)->ToObject(); } Handle<Value> fireEventValue = emitter->Get(EventEmitter::emitSymbol); if (!fireEventValue->IsFunction()) { return JNI_FALSE; } Handle<Function> fireEvent = Handle<Function>::Cast(fireEventValue->ToObject()); Handle<Value> jsData = TypeConverter::javaObjectToJsValue(data); Handle<Value> result; TryCatch tryCatch; if (jsData->IsNull()) { Handle<Value> args[] = { jsEvent }; result = fireEvent->Call(emitter, 1, args); } else { Handle<Value> args[] = { jsEvent, jsData }; result = fireEvent->Call(emitter, 2, args); } if (tryCatch.HasCaught()) { V8Util::openJSErrorDialog(tryCatch); V8Util::reportException(tryCatch); } else if (result->IsTrue()) { return JNI_TRUE; } return JNI_FALSE; }
JNIEXPORT jboolean JNICALL Java_org_appcelerator_kroll_runtime_v8_V8Object_nativeFireEvent (JNIEnv *env, jobject jEmitter, jlong ptr, jobject jsource, jlong sourcePtr, jstring event, jobject data, jboolean bubble, jboolean reportSuccess, jint code, jstring errorMessage) { ENTER_V8(V8Runtime::globalContext); JNIScope jniScope(env); Handle<Value> jsEvent = TypeConverter::javaStringToJsString(env, event); #ifdef TI_DEBUG String::Utf8Value eventName(jsEvent); LOGV(TAG, "firing event \"%s\"", *eventName); #endif Handle<Object> emitter; if (ptr != 0) { emitter = Persistent<Object>((Object *) ptr); } else { emitter = TypeConverter::javaObjectToJsValue(env, jEmitter)->ToObject(); } Handle<Value> fireEventValue = emitter->Get(EventEmitter::emitSymbol); if (!fireEventValue->IsFunction()) { return JNI_FALSE; } Handle<Object> source; if ((jsource == NULL) || (jsource == jEmitter)) { source = emitter; } else if (sourcePtr != 0) { source = Persistent<Object>((Object *) sourcePtr); } else { source = TypeConverter::javaObjectToJsValue(env, jsource)->ToObject(); } Handle<Function> fireEvent = Handle<Function>::Cast(fireEventValue->ToObject()); Handle<Object> jsData = TypeConverter::javaHashMapToJsValue(env, data); jsData->Set(String::NewSymbol("bubbles"), TypeConverter::javaBooleanToJsBoolean(bubble)); jsData->Set(String::NewSymbol("source"), source); if (reportSuccess || code != 0) { jsData->Set(String::NewSymbol("success"), TypeConverter::javaBooleanToJsBoolean(code == 0)); jsData->Set(String::NewSymbol("code"), TypeConverter::javaIntToJsNumber(code)); } if (errorMessage != NULL) { jsData->Set(String::NewSymbol("error"), TypeConverter::javaStringToJsString(env, errorMessage)); } Handle<Value> result; TryCatch tryCatch; Handle<Value> args[] = { jsEvent, jsData }; result = fireEvent->Call(emitter, 2, args); if (tryCatch.HasCaught()) { V8Util::openJSErrorDialog(tryCatch); V8Util::reportException(tryCatch); } else if (result->IsTrue()) { return JNI_TRUE; } return JNI_FALSE; }
static void setReturnDnssecStatus(getdns_context* context, Handle<Value> opt) { int val = opt->IsTrue() ? GETDNS_EXTENSION_TRUE : GETDNS_EXTENSION_FALSE; getdns_context_set_return_dnssec_status(context, val); }
static void setUseThreads(getdns_context* context, Handle<Value> opt) { int val = opt->IsTrue() ? 1 : 0; getdns_context_set_use_threads(context, val); }