JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved) { if (!vm) { return JNI_ERR; } JNIEnv *env = NULL; if (JNI_OK != vm->GetEnv((void **) &env, JNI_VERSION_1_6)) { return JNI_ERR; } // Get the class references if (false == getClassRef(env, "java/lang/Object", gSimulatorClassRefs.classObject)) { return JNI_ERR; } if (false == getClassRef(env, "java/lang/Integer", gSimulatorClassRefs.classInteger)) { return JNI_ERR; } if (false == getClassRef(env, "java/lang/Double", gSimulatorClassRefs.classDouble)) { return JNI_ERR; } if (false == getClassRef(env, "java/lang/Boolean", gSimulatorClassRefs.classBoolean)) { return JNI_ERR; } if (false == getClassRef(env, "java/lang/String", gSimulatorClassRefs.classString)) { return JNI_ERR; } if (false == getClassRef(env, "java/util/HashMap", gSimulatorClassRefs.classHashMap)) { return JNI_ERR; } if (false == getClassRef(env, "java/util/Vector", gSimulatorClassRefs.classVector)) { return JNI_ERR; } if (false == getClassRef(env, "java/util/Map", gSimulatorClassRefs.classMap)) { return JNI_ERR; } if (false == getClassRef(env, "java/util/Map$Entry", gSimulatorClassRefs.classMapEntry)) { return JNI_ERR; } if (false == getClassRef(env, "java/util/Set", gSimulatorClassRefs.classSet)) { return JNI_ERR; } if (false == getClassRef(env, "java/util/Iterator", gSimulatorClassRefs.classIterator)) { return JNI_ERR; } if (false == getClassRef(env, "java/util/LinkedList", gSimulatorClassRefs.classLinkedList)) { return JNI_ERR; } if (false == getClassRef(env, "org/oic/simulator/serviceprovider/SimulatorResourceServer", gSimulatorClassRefs.classSimulatorResource)) { return JNI_ERR; } if (false == getClassRef(env, "org/oic/simulator/SimulatorResourceModel", gSimulatorClassRefs.classSimulatorResourceModel)) { return JNI_ERR; } if (false == getClassRef(env, "org/oic/simulator/ResourceAttribute", gSimulatorClassRefs.classResourceAttribute)) { return JNI_ERR; } if (false == getClassRef(env, "org/oic/simulator/clientcontroller/SimulatorRemoteResource", gSimulatorClassRefs.classSimulatorRemoteResource)) { return JNI_ERR; } if (false == getClassRef(env, "org/oic/simulator/serviceprovider/ObserverInfo", gSimulatorClassRefs.classObserverInfo)) { return JNI_ERR; } if (false == getClassRef(env, "org/oic/simulator/DeviceInfo", gSimulatorClassRefs.classDeviceInfo)) { return JNI_ERR; } if (false == getClassRef(env, "org/oic/simulator/PlatformInfo", gSimulatorClassRefs.classPlatformInfo)) { return JNI_ERR; } if (false == getClassRef(env, "org/oic/simulator/SimulatorException", gSimulatorClassRefs.classSimulatorException)) { return JNI_ERR; } if (false == getClassRef(env, "org/oic/simulator/InvalidArgsException", gSimulatorClassRefs.classInvalidArgsException)) { return JNI_ERR; } if (false == getClassRef(env, "org/oic/simulator/NoSupportException", gSimulatorClassRefs.classNoSupportException)) { return JNI_ERR; } if (false == getClassRef(env, "org/oic/simulator/OperationInProgressException", gSimulatorClassRefs.classOperationInProgressException)) { return JNI_ERR; } // Get the reference to methods gSimulatorClassRefs.classIntegerCtor = env->GetMethodID(gSimulatorClassRefs.classInteger, "<init>", "(I)V"); if (!gSimulatorClassRefs.classIntegerCtor) return JNI_ERR; gSimulatorClassRefs.classDoubleCtor = env->GetMethodID(gSimulatorClassRefs.classDouble, "<init>", "(D)V"); if (!gSimulatorClassRefs.classDoubleCtor) return JNI_ERR; gSimulatorClassRefs.classBooleanCtor= env->GetMethodID(gSimulatorClassRefs.classBoolean, "<init>", "(Z)V"); if (!gSimulatorClassRefs.classBooleanCtor) return JNI_ERR; gSimulatorClassRefs.classHashMapCtor = env->GetMethodID(gSimulatorClassRefs.classHashMap, "<init>", "()V"); if (!gSimulatorClassRefs.classHashMapCtor) return JNI_ERR; gSimulatorClassRefs.classHashMapPut = env->GetMethodID(gSimulatorClassRefs.classHashMap, "put", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"); if (!gSimulatorClassRefs.classHashMapPut) return JNI_ERR; gSimulatorClassRefs.classVectorCtor = env->GetMethodID(gSimulatorClassRefs.classVector, "<init>", "()V"); if (!gSimulatorClassRefs.classVectorCtor) return JNI_ERR; gSimulatorClassRefs.classVectorAddElement = env->GetMethodID(gSimulatorClassRefs.classVector, "addElement", "(Ljava/lang/Object;)V"); if (!gSimulatorClassRefs.classVectorAddElement) return JNI_ERR; gSimulatorClassRefs.classMapEntrySet = env->GetMethodID( gSimulatorClassRefs.classMap, "entrySet", "()Ljava/util/Set;"); if (!gSimulatorClassRefs.classMapEntrySet) return JNI_ERR; gSimulatorClassRefs.classMapGetKey = env->GetMethodID( gSimulatorClassRefs.classMapEntry, "getKey", "()Ljava/lang/Object;"); if (!gSimulatorClassRefs.classMapGetKey) return JNI_ERR; gSimulatorClassRefs.classMapGetValue = env->GetMethodID( gSimulatorClassRefs.classMapEntry, "getValue", "()Ljava/lang/Object;"); if (!gSimulatorClassRefs.classMapGetValue) return JNI_ERR; gSimulatorClassRefs.classIteratorId = env->GetMethodID( gSimulatorClassRefs.classSet, "iterator", "()Ljava/util/Iterator;"); if (!gSimulatorClassRefs.classIteratorId) return JNI_ERR; gSimulatorClassRefs.classHasNextId = env->GetMethodID( gSimulatorClassRefs.classIterator, "hasNext", "()Z"); if (!gSimulatorClassRefs.classHasNextId) return JNI_ERR; gSimulatorClassRefs.classNextId = env->GetMethodID( gSimulatorClassRefs.classIterator, "next", "()Ljava/lang/Object;"); if (!gSimulatorClassRefs.classNextId) return JNI_ERR; gSimulatorClassRefs.classLinkedListCtor = env->GetMethodID(gSimulatorClassRefs.classLinkedList, "<init>", "()V"); if (!gSimulatorClassRefs.classLinkedListCtor) return JNI_ERR; gSimulatorClassRefs.classLinkedListAddObject = env->GetMethodID(gSimulatorClassRefs.classLinkedList, "add", "(Ljava/lang/Object;)Z"); if (!gSimulatorClassRefs.classLinkedListAddObject) return JNI_ERR; gSimulatorClassRefs.classSimulatorResourceCtor = env->GetMethodID( gSimulatorClassRefs.classSimulatorResource, "<init>", "(J)V"); if (!gSimulatorClassRefs.classSimulatorResourceCtor) return JNI_ERR; gSimulatorClassRefs.classSimulatorResourceModelCtor = env->GetMethodID( gSimulatorClassRefs.classSimulatorResourceModel, "<init>", "(J)V"); if (!gSimulatorClassRefs.classSimulatorResourceModelCtor) return JNI_ERR; gSimulatorClassRefs.classResourceAttributeCtor = env->GetMethodID( gSimulatorClassRefs.classResourceAttribute, "<init>", "()V"); if (!gSimulatorClassRefs.classResourceAttributeCtor) return JNI_ERR; gSimulatorClassRefs.classResourceAttributeSetRange = env->GetMethodID( gSimulatorClassRefs.classResourceAttribute, "setRange", "(II)V"); if (!gSimulatorClassRefs.classResourceAttributeSetRange) return JNI_ERR; gSimulatorClassRefs.classSimulatorResourceModelId = env->GetMethodID( gSimulatorClassRefs.classSimulatorResourceModel, "<init>", "(J)V"); if (!gSimulatorClassRefs.classSimulatorResourceModelId) return JNI_ERR; gSimulatorClassRefs.classObserverInfoCtor = env->GetMethodID( gSimulatorClassRefs.classObserverInfo, "<init>", "(ILjava/lang/String;I)V"); if (!gSimulatorClassRefs.classObserverInfoCtor) return JNI_ERR; gSimulatorClassRefs.classSimulatorExceptionCtor = env->GetMethodID( gSimulatorClassRefs.classSimulatorException, "<init>", "(ILjava/lang/String;)V"); if (!gSimulatorClassRefs.classSimulatorExceptionCtor) return JNI_ERR; gSimulatorClassRefs.classInvalidArgsExceptionCtor = env->GetMethodID( gSimulatorClassRefs.classInvalidArgsException, "<init>", "(ILjava/lang/String;)V"); if (!gSimulatorClassRefs.classInvalidArgsExceptionCtor) return JNI_ERR; gSimulatorClassRefs.classNoSupportExceptionCtor = env->GetMethodID( gSimulatorClassRefs.classNoSupportException, "<init>", "(ILjava/lang/String;)V"); if (!gSimulatorClassRefs.classNoSupportExceptionCtor) return JNI_ERR; gSimulatorClassRefs.classOperationInProgressExceptionCtor = env->GetMethodID( gSimulatorClassRefs.classOperationInProgressException, "<init>", "(ILjava/lang/String;)V"); if (!gSimulatorClassRefs.classOperationInProgressExceptionCtor) return JNI_ERR; gvm = vm; return JNI_VERSION_1_6; }
JSObjectRef QtPixmapRuntime::toJS(JSContextRef context, const QVariant& value, JSValueRef* exception) { return JSObjectMake(context, getClassRef(), new QVariant(value)); }
JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved) { if (!vm) return JNI_ERR; JNIEnv *env = nullptr; if (JNI_OK != vm->GetEnv((void **) &env, JNI_VERSION_1_6)) return JNI_ERR; // Get the class references getClassRef(env, OBJECT_CLS, gSimulatorClassRefs.objectCls); getClassRef(env, INTEGER_CLS, gSimulatorClassRefs.integerCls); getClassRef(env, DOUBLE_CLS, gSimulatorClassRefs.doubleCls); getClassRef(env, BOOLEAN_CLS, gSimulatorClassRefs.booleanCls); getClassRef(env, STRING_CLS, gSimulatorClassRefs.stringCls); getClassRef(env, VECTOR_CLS, gSimulatorClassRefs.vectorCls); getClassRef(env, HASHMAP_CLS, gSimulatorClassRefs.hashMapCls); getClassRef(env, MAP_CLS, gSimulatorClassRefs.mapCls); getClassRef(env, MAP_ENTRY_CLS, gSimulatorClassRefs.mapEntryCls); getClassRef(env, SET_CLS, gSimulatorClassRefs.setCls); getClassRef(env, ITERATOR_CLS, gSimulatorClassRefs.iteratorCls); getClassRef(env, SIMULATOR_RESOURCE_CLS, gSimulatorClassRefs.simulatorResourceCls); getClassRef(env, SIMULATOR_RESOURCE_TYPE_CLS, gSimulatorClassRefs.simulatorResourceTypeCls); getClassRef(env, SIMULATOR_SINGLE_RESOURCE_CLS, gSimulatorClassRefs.simulatorSingleResourceCls); getClassRef(env, SIMULATOR_COLLECTION_RESOURCE_CLS, gSimulatorClassRefs.simulatorCollectionResourceCls); getClassRef(env, SIMULATOR_REMOTE_RESOURCE_CLS, gSimulatorClassRefs.simulatorRemoteResourceCls); getClassRef(env, SIMULATOR_RESOURCE_MODEL_CLS, gSimulatorClassRefs.simulatorResourceModelCls); getClassRef(env, SIMULATOR_RESOURCE_ATTRIBUTE_CLS, gSimulatorClassRefs.simulatorResourceAttributeCls); getClassRef(env, ATTRIBUTE_VALUE_CLS, gSimulatorClassRefs.attributeValueCls); getClassRef(env, ATTRIBUTE_VALUE_TYPE_CLS, gSimulatorClassRefs.attributeValueTypeCls); getClassRef(env, ATTRIBUTE_TYPE_INFO_CLS, gSimulatorClassRefs.attributeTypeInfoCls); getClassRef(env, ATTRIBUTE_PROPERTY_CLS, gSimulatorClassRefs.attributePropertyCls); getClassRef(env, ATTRIBUTE_PROPERTY_TYPE_CLS, gSimulatorClassRefs.attributePropertyTypeCls); getClassRef(env, AUTOMATION_TYPE_CLS, gSimulatorClassRefs.automationTypeCls); getClassRef(env, OBSERVER_CLS, gSimulatorClassRefs.observerCls); getClassRef(env, DEVICE_INFO_CLS, gSimulatorClassRefs.deviceInfoCls); getClassRef(env, PLATFORM_INFO_CLS, gSimulatorClassRefs.platformInfoCls); getClassRef(env, SIMULATOR_EXCEPTION_CLS, gSimulatorClassRefs.simulatorExceptionCls); getClassRef(env, INVALID_ARGS_EXCEPTION_CLS, gSimulatorClassRefs.invalidArgsExceptionCls); getClassRef(env, NO_SUPPORT_EXCEPTION_CLS, gSimulatorClassRefs.noSupportExceptionCls); getClassRef(env, OPERATION_IN_PROGRESS_EXCEPTION_CLS, gSimulatorClassRefs.operationInProgressExceptionCls); getClassRef(env, SIMULATOR_RESULT_CLS, gSimulatorClassRefs.simulatorResultCls); getClassRef(env, INTEGER_1D_ARRAY, gSimulatorClassRefs.integer1DArrayCls); getClassRef(env, INTEGER_2D_ARRAY, gSimulatorClassRefs.integer2DArrayCls); getClassRef(env, INTEGER_3D_ARRAY, gSimulatorClassRefs.integer3DArrayCls); getClassRef(env, DOUBLE_1D_ARRAY, gSimulatorClassRefs.double1DArrayCls); getClassRef(env, DOUBLE_2D_ARRAY, gSimulatorClassRefs.double2DArrayCls); getClassRef(env, DOUBLE_3D_ARRAY, gSimulatorClassRefs.double3DArrayCls); getClassRef(env, BOOLEAN_1D_ARRAY, gSimulatorClassRefs.boolean1DArrayCls); getClassRef(env, BOOLEAN_2D_ARRAY, gSimulatorClassRefs.boolean2DArrayCls); getClassRef(env, BOOLEAN_3D_ARRAY, gSimulatorClassRefs.boolean3DArrayCls); getClassRef(env, STRING_1D_ARRAY, gSimulatorClassRefs.string1DArrayCls); getClassRef(env, STRING_2D_ARRAY, gSimulatorClassRefs.string2DArrayCls); getClassRef(env, STRING_3D_ARRAY, gSimulatorClassRefs.string3DArrayCls); getClassRef(env, SIMULATOR_RESOURCE_MODEL_1D_ARRAY, gSimulatorClassRefs.simulatorResModel1DArrayCls); getClassRef(env, SIMULATOR_RESOURCE_MODEL_2D_ARRAY, gSimulatorClassRefs.simulatorResModel2DArrayCls); getClassRef(env, SIMULATOR_RESOURCE_MODEL_3D_ARRAY, gSimulatorClassRefs.simulatorResModel3DArrayCls); gJavaVM = vm; return JNI_VERSION_1_6; }