// This is the constructor of a class that has been exported. // see bracmatdll.h for the class definition CBracmatdll::CBracmatdll(void (*WinOut)(int c),int (*WinIn)(void),void (*WinFlush)(void)) { if(WinIn) bracmatStartStruct.WinIn = WinIn; if(WinOut) bracmatStartStruct.WinOut = WinOut; if(WinFlush) bracmatStartStruct.WinFlush = WinFlush; startProc(&bracmatStartStruct); }
CBracmatdll::CBracmatdll(funcstruct * fncs) { if(fncs) { if(fncs->In) bracmatStartStruct.WinIn = fncs->In; if(fncs->Out) bracmatStartStruct.WinOut = fncs->Out; if(fncs->Flush) bracmatStartStruct.WinFlush = fncs->Flush; startProc(&bracmatStartStruct); } }
JNIEXPORT jint JNICALL Java_dk_cst_bracmat_init(JNIEnv * env, jobject obj, jstring expr) { int err; jint ret; #if defined WIN32 void mutexLockInit(); void mutexUnlockInit(); mutexLockInit(); #else pthread_mutex_lock( &mutexinit); #endif ret = startProc(0); if(ret == 1) { const char * str = (*env)->GetStringUTFChars(env, expr, NULL); stringEval((const char *)str,&out,&err); /*initialize, e.g. read program file*/ } #if defined WIN32 mutexUnlockInit(); #else pthread_mutex_unlock(&mutexinit); #endif return ret; }