1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
|
/*
* File: ExceptionTest_FibException_jniStub.c
* Symbol: ExceptionTest.FibException-v1.0
* Symbol Type: class
* Babel Version: 0.10.2
* Description: Client-side JNI glue code for ExceptionTest.FibException
*
* WARNING: Automatically generated; changes will be lost
*
* babel-version = 0.10.2
*/
#include "sidl_Java.h"
#include "sidl_Loader.h"
#include "sidl_String.h"
#include "ExceptionTest_FibException_IOR.h"
#include "babel_config.h"
/*
* Convert between jlong and void* pointers.
*/
#if (SIZEOF_VOID_P == 8)
#define JLONG_TO_POINTER(x) ((void*)(x))
#define POINTER_TO_JLONG(x) ((jlong)(x))
#else
#define JLONG_TO_POINTER(x) ((void*)(int32_t)(x))
#define POINTER_TO_JLONG(x) ((jlong)(int32_t)(x))
#endif
#ifndef NULL
#define NULL 0
#endif
/*
* External reference to IOR methods.
*/
static const struct ExceptionTest_FibException__external* s_external = NULL;
/*
* Create object instance and return reference.
*/
static jlong jni__create_ior(
JNIEnv* env,
jclass cls)
{
(void) env;
(void) cls;
return POINTER_TO_JLONG((*s_external->createObject)());
}
/*
* Register JNI methods with the Java JVM.
*/
void ExceptionTest_FibException__register(JNIEnv* env)
{
JNINativeMethod methods[1];
jclass cls;
#ifdef SIDL_STATIC_LIBRARY
s_external = ExceptionTest_FibException__externals();
#else
sidl_DLL dll = sidl_DLL__create();
const struct ExceptionTest_FibException__external*(*dll_f)(void);
/* check global namespace for symbol first */
if (dll && sidl_DLL_loadLibrary(dll, "main:", TRUE, FALSE)) {
dll_f =
(const struct ExceptionTest_FibException__external*(*)(void))
sidl_DLL_lookupSymbol(
dll, "ExceptionTest_FibException__externals");
s_external = (dll_f ? (*dll_f)() : NULL);
}
if (dll) sidl_DLL_deleteRef(dll);
if (!s_external) {
dll = sidl_Loader_findLibrary("ExceptionTest.FibException",
"ior/impl", sidl_Scope_SCLSCOPE,
sidl_Resolve_SCLRESOLVE);
if (dll) {
dll_f =
(const struct ExceptionTest_FibException__external*(*)(void))
sidl_DLL_lookupSymbol(
dll, "ExceptionTest_FibException__externals");
s_external = (dll_f ? (*dll_f)() : NULL);
sidl_DLL_deleteRef(dll);
}
}
if (!s_external) {
jclass e = (*env)->FindClass(env, "java/lang/UnsatisfiedLinkError");
if (e != NULL) {
(*env)->ThrowNew(env, e, "Could not find implementation for sidl class ExceptionTest.FibException");
(*env)->DeleteLocalRef(env, e);
}
}
#endif
methods[0].name = "_create_ior";
methods[0].signature = "()J";
methods[0].fnPtr = (void *)jni__create_ior;
cls = (*env)->FindClass(env, "ExceptionTest/FibException");
if (cls) {
(*env)->RegisterNatives(env, cls, methods, 1);
(*env)->DeleteLocalRef(env, cls);
}
}
|