/* * Initialize library functions. * // REMIND : move tab , add dlClose before return */ JNIEXPORT jboolean JNICALL Java_sun_print_CUPSPrinter_initIDs(JNIEnv *env, jobject printObj) { void *handle = dlopen(VERSIONED_JNI_LIB_NAME("cups", "2"), RTLD_LAZY | RTLD_GLOBAL); if (handle == NULL) { handle = dlopen(JNI_LIB_NAME("cups"), RTLD_LAZY | RTLD_GLOBAL); if (handle == NULL) { return JNI_FALSE; } } j2d_cupsServer = (fn_cupsServer)dlsym(handle, "cupsServer"); if (j2d_cupsServer == NULL) { dlclose(handle); return JNI_FALSE; } j2d_ippPort = (fn_ippPort)dlsym(handle, "ippPort"); if (j2d_ippPort == NULL) { dlclose(handle); return JNI_FALSE; } j2d_httpConnect = (fn_httpConnect)dlsym(handle, "httpConnect"); if (j2d_httpConnect == NULL) { dlclose(handle); return JNI_FALSE; } j2d_httpClose = (fn_httpClose)dlsym(handle, "httpClose"); if (j2d_httpClose == NULL) { dlclose(handle); return JNI_FALSE; } j2d_cupsGetPPD = (fn_cupsGetPPD)dlsym(handle, "cupsGetPPD"); if (j2d_cupsGetPPD == NULL) { dlclose(handle); return JNI_FALSE; } j2d_cupsGetDest = (fn_cupsGetDest)dlsym(handle, "cupsGetDest"); if (j2d_cupsGetDest == NULL) { dlclose(handle); return JNI_FALSE; } j2d_cupsGetDests = (fn_cupsGetDests)dlsym(handle, "cupsGetDests"); if (j2d_cupsGetDests == NULL) { dlclose(handle); return JNI_FALSE; } j2d_cupsFreeDests = (fn_cupsFreeDests)dlsym(handle, "cupsFreeDests"); if (j2d_cupsFreeDests == NULL) { dlclose(handle); return JNI_FALSE; } j2d_ppdOpenFile = (fn_ppdOpenFile)dlsym(handle, "ppdOpenFile"); if (j2d_ppdOpenFile == NULL) { dlclose(handle); return JNI_FALSE; } j2d_ppdClose = (fn_ppdClose)dlsym(handle, "ppdClose"); if (j2d_ppdClose == NULL) { dlclose(handle); return JNI_FALSE; } j2d_ppdFindOption = (fn_ppdFindOption)dlsym(handle, "ppdFindOption"); if (j2d_ppdFindOption == NULL) { dlclose(handle); return JNI_FALSE; } j2d_ppdPageSize = (fn_ppdPageSize)dlsym(handle, "ppdPageSize"); if (j2d_ppdPageSize == NULL) { dlclose(handle); return JNI_FALSE; } return JNI_TRUE; }
#include <sys/socket.h> #endif static Bool (*compositeQueryExtension) (Display*, int*, int*); static Status (*compositeQueryVersion) (Display*, int*, int*); static Window (*compositeGetOverlayWindow) (Display *, Window); extern struct X11GraphicsConfigIDs x11GraphicsConfigIDs; static jint * masks; static jint num_buttons; static void *xCompositeHandle; static const char* XCOMPOSITE = JNI_LIB_NAME("Xcomposite"); static const char* XCOMPOSITE_VERSIONED = VERSIONED_JNI_LIB_NAME("Xcomposite", "1"); static Bool checkXCompositeFunctions(void) { return (compositeQueryExtension != NULL && compositeQueryVersion != NULL && compositeGetOverlayWindow != NULL); } static void initXCompositeFunctions(void) { if (xCompositeHandle == NULL) { xCompositeHandle = dlopen(XCOMPOSITE, RTLD_LAZY | RTLD_GLOBAL); if (xCompositeHandle == NULL) { xCompositeHandle = dlopen(XCOMPOSITE_VERSIONED, RTLD_LAZY | RTLD_GLOBAL); } }
jboolean cups_init() { void *handle = dlopen(VERSIONED_JNI_LIB_NAME("cups", "2"), RTLD_LAZY | RTLD_GLOBAL); if (handle == NULL) { handle = dlopen(JNI_LIB_NAME("cups"), RTLD_LAZY | RTLD_GLOBAL); if (handle == NULL) { return JNI_FALSE; } } j2d_cupsServer = (fn_cupsServer)dlsym(handle, "cupsServer"); if (j2d_cupsServer == NULL) { dlclose(handle); return JNI_FALSE; } j2d_ippPort = (fn_ippPort)dlsym(handle, "ippPort"); if (j2d_ippPort == NULL) { dlclose(handle); return JNI_FALSE; } j2d_httpConnect = (fn_httpConnect)dlsym(handle, "httpConnect"); if (j2d_httpConnect == NULL) { dlclose(handle); return JNI_FALSE; } j2d_httpClose = (fn_httpClose)dlsym(handle, "httpClose"); if (j2d_httpClose == NULL) { dlclose(handle); return JNI_FALSE; } j2d_cupsGetPPD = (fn_cupsGetPPD)dlsym(handle, "cupsGetPPD"); if (j2d_cupsGetPPD == NULL) { dlclose(handle); return JNI_FALSE; } j2d_ppdOpenFile = (fn_ppdOpenFile)dlsym(handle, "ppdOpenFile"); if (j2d_ppdOpenFile == NULL) { dlclose(handle); return JNI_FALSE; } j2d_ppdClose = (fn_ppdClose)dlsym(handle, "ppdClose"); if (j2d_ppdClose == NULL) { dlclose(handle); return JNI_FALSE; } j2d_ppdFindOption = (fn_ppdFindOption)dlsym(handle, "ppdFindOption"); if (j2d_ppdFindOption == NULL) { dlclose(handle); return JNI_FALSE; } j2d_ppdPageSize = (fn_ppdPageSize)dlsym(handle, "ppdPageSize"); if (j2d_ppdPageSize == NULL) { dlclose(handle); return JNI_FALSE; } return JNI_TRUE; }