/*
* Class:     org_trafodion_jdbc_t2_T2Driver
* Method:    checkLibraryVersion
* Signature: (Ljava/lang/String;)V
*/
JNIEXPORT void JNICALL Java_org_trafodion_jdbc_t2_T2Driver_checkLibraryVersion(JNIEnv *jenv, jclass jcls,
																			 jstring javaVproc)
{


#ifdef NSK_PLATFORM	// Linux port - ToDo txn related
		int cliret = client_initialization();//by venu for TSLX
		if (cliret != 1)//client init return 1 on success
		{

				DEBUG_OUT(DEBUG_LEVEL_TXN,("TSLX initialization failed %d", cliret));

		}
		DEBUG_OUT(DEBUG_LEVEL_TXN,("TSLX Initialization done"));
#endif

	//Added for R3.0 Transaction issue sol. 10-100430-9906


	FUNCTION_ENTRY("Java_org_trafodion_jdbc_t2_T2Driver_checkLibraryVersion",("javaVproc=%s",
		DebugJString(jenv,javaVproc)));

	// Set the TMLIB cleanup 
	setTM_enable_cleanup();

#ifdef NSK_PLATFORM		// Linux port
  	short status = tmfInit();

  	DEBUG_OUT(DEBUG_LEVEL_TXN,("tmfInit() returned %d", status));

  	if (status != 0)
  	{
  		throwTransactionException(jenv, status);
  		FUNCTION_RETURN_VOID(("status(%d) is non-zero",status));
	}
#endif

//End





	if (javaVproc && !driverVersionChecked)
	{
		const char *java_vproc_str = JNI_GetStringUTFChars(jenv,javaVproc, NULL);
		if (java_vproc_str)
		{
			if (strcmp(java_vproc_str,driverVproc)!=0)
			{
				printf("JDBC Library Version Error - Jar: %s Jni: %s\n",
					java_vproc_str,driverVproc);
				abort();
			}
			JNI_ReleaseStringUTFChars(jenv,javaVproc, java_vproc_str);
			driverVersionChecked = true;
		}
	}
	FUNCTION_RETURN_VOID((NULL));
}
Esempio n. 2
0
int client_handler(FILE * client) {
    int width, height;
    if (client_initialization(client, &width, &height) != 0) {
        perror("client_initialization");
        return 3;
    }
    
    if (DEBUG_ENABLED) printf("client_handler: creating context\n");
    EncodeContext context = encode_context_create(width, height);
    
    int frameSize = width * height * 3;
    char * frameBuffer = (char *)malloc(frameSize);
    int result = 0;
    
    while (1) {
        size_t got = fread(frameBuffer, 1, frameSize, client);
        if (got != frameSize) break;
        char * encoded;
        int length;
        if (encode_context_frame(context, frameBuffer, &encoded, &length) != 0) {
            result = 3;
            break;
        }
        if (DEBUG_ENABLED) printf("client_handler: sending encoded frame (len %d)\n", length);
        uint32_t sizeInfo = htonl(length);
        if (fwrite(&sizeInfo, 1, 4, client) != 4) {
            free(encoded);
            break;
        }
        if (fwrite(encoded, 1, length, client) != length) {
            free(encoded);
            break;
        }
        free(encoded);
    }
    
    free(frameBuffer);
    encode_context_destroy(context);
    return result;
}