?? clipsjni_environment.c
字號(hào):
switch(type)
{
case RVOID:
result = (*env)->NewObject(env,
CLIPSJNIData((void *) clipsEnv)->voidValueClass,
CLIPSJNIData((void *) clipsEnv)->voidValueInitMethod,
sresult);
break;
case SYMBOL:
sresult = (*env)->NewStringUTF(env,ValueToString(value));
result = (*env)->NewObject(env,
CLIPSJNIData((void *) clipsEnv)->symbolValueClass,
CLIPSJNIData((void *) clipsEnv)->symbolValueInitMethod,
sresult);
(*env)->DeleteLocalRef(env,sresult);
break;
case STRING:
sresult = (*env)->NewStringUTF(env,ValueToString(value));
result = (*env)->NewObject(env,
CLIPSJNIData((void *) clipsEnv)->stringValueClass,
CLIPSJNIData((void *) clipsEnv)->stringValueInitMethod,
sresult);
(*env)->DeleteLocalRef(env,sresult);
break;
case INSTANCE_NAME:
sresult = (*env)->NewStringUTF(env,ValueToString(value));
result = (*env)->NewObject(env,
CLIPSJNIData((void *) clipsEnv)->instanceNameValueClass,
CLIPSJNIData((void *) clipsEnv)->instanceNameValueInitMethod,
sresult);
(*env)->DeleteLocalRef(env,sresult);
break;
case INTEGER:
tresult = (*env)->NewObject(env,
CLIPSJNIData((void *) clipsEnv)->longClass,
CLIPSJNIData((void *) clipsEnv)->longInitMethod,
(jlong) ValueToLong(value));
result = (*env)->NewObject(env,
CLIPSJNIData((void *) clipsEnv)->integerValueClass,
CLIPSJNIData((void *) clipsEnv)->integerValueInitMethod,
tresult);
(*env)->DeleteLocalRef(env,tresult);
break;
case FLOAT:
tresult = (*env)->NewObject(env,
CLIPSJNIData((void *) clipsEnv)->doubleClass,
CLIPSJNIData((void *) clipsEnv)->doubleInitMethod,
(jdouble) ValueToDouble(value));
result = (*env)->NewObject(env,
CLIPSJNIData((void *) clipsEnv)->floatValueClass,
CLIPSJNIData((void *) clipsEnv)->floatValueInitMethod,
tresult);
(*env)->DeleteLocalRef(env,tresult);
break;
case FACT_ADDRESS:
result = (*env)->NewObject(env,
CLIPSJNIData((void *) clipsEnv)->factAddressValueClass,
CLIPSJNIData((void *) clipsEnv)->factAddressValueInitMethod,
(jlong) value,javaEnv);
break;
case INSTANCE_ADDRESS:
result = (*env)->NewObject(env,
CLIPSJNIData((void *) clipsEnv)->instanceAddressValueClass,
CLIPSJNIData((void *) clipsEnv)->instanceAddressValueInitMethod,
(jlong) value,javaEnv);
break;
default:
break;
}
return result;
}
/****************************************************/
/* Java_CLIPSJNI_Environment_build: Native function */
/* for the CLIPSJNI build method. */
/* */
/* Class: CLIPSJNI_Environment */
/* Method: build */
/* Signature: (JLjava/lang/String;)Z */
/****************************************************/
JNIEXPORT jboolean JNICALL Java_CLIPSJNI_Environment_build(
JNIEnv *env,
jobject obj,
jlong clipsEnv,
jstring buildStr)
{
jboolean rv;
void *theCLIPSEnv = (void *) clipsEnv;
const char *cBuildStr = (*env)->GetStringUTFChars(env,buildStr,NULL);
rv = (jboolean) EnvBuild(theCLIPSEnv,(char *) cBuildStr);
(*env)->ReleaseStringUTFChars(env,buildStr,cBuildStr);
return rv;
}
/***************************************************************/
/* Java_CLIPSJNI_Environment_assertString: Native function for */
/* the CLIPSJNI assertString method. */
/* */
/* Class: CLIPSJNI_Environment */
/* Method: assertString */
/* Signature: (JLjava/lang/String;)LCLIPSJNI/FactAddressValue; */
/***************************************************************/
JNIEXPORT jobject JNICALL Java_CLIPSJNI_Environment_assertString(
JNIEnv *env,
jobject obj,
jlong clipsEnv,
jstring factStr)
{
void *theFact;
void *theCLIPSEnv = (void *) clipsEnv;
const char *cFactStr = (*env)->GetStringUTFChars(env,factStr,NULL);
theFact = EnvAssertString(theCLIPSEnv,(char *) cFactStr);
(*env)->ReleaseStringUTFChars(env,factStr,cFactStr);
if (theFact == NULL)
{ return(NULL); }
return ConvertSingleFieldValue(env,obj,theCLIPSEnv,FACT_ADDRESS,theFact);
}
/*************************************************/
/* Java_CLIPSJNI_Environment_factIndex: Native */
/* function for the CLIPSJNI factIndex method. */
/* */
/* Class: CLIPSJNI_Environment */
/* Method: factIndex */
/* Signature: (LCLIPSJNI/Environment;JJ)J */
/*************************************************/
JNIEXPORT jlong JNICALL Java_CLIPSJNI_Environment_factIndex(
JNIEnv *env,
jclass javaClass,
jobject javaEnv,
jlong clipsEnv,
jlong clipsFact)
{
return (jlong) EnvFactIndex((void *) clipsEnv,(void *) clipsFact);
}
/**************************************************************/
/* Java_CLIPSJNI_Environment_getFactSlot: Native function */
/* for the CLIPSJNI getFactSlot method. */
/* */
/* Class: CLIPSJNI_Environment */
/* Method: getFactSlot */
/* Signature: (LCLIPSJNI/Environment;JJLjava/lang/String;) */
/* LCLIPSJNI/PrimitiveValue; */
/**************************************************************/
JNIEXPORT jobject JNICALL Java_CLIPSJNI_Environment_getFactSlot(
JNIEnv *env,
jclass javaClass,
jobject javaEnv,
jlong clipsEnv,
jlong clipsFact,
jstring slotName)
{
DATA_OBJECT theDO;
void *theCLIPSEnv = (void *) clipsEnv;
const char *cSlotName = (*env)->GetStringUTFChars(env,slotName,NULL);
EnvGetFactSlot((void *) clipsEnv,(void *) clipsFact,(char *) cSlotName,&theDO);
(*env)->ReleaseStringUTFChars(env,slotName,cSlotName);
return ConvertDataObject(env,javaEnv,theCLIPSEnv,&theDO);
}
/*******************************************************************/
/* Java_CLIPSJNI_Environment_makeInstance: Native function for the */
/* CLIPSJNI makeInstance method. */
/* */
/* Class: CLIPSJNI_Environment */
/* Method: makeInstance */
/* Signature: (JLjava/lang/String;)LCLIPSJNI/InstanceAddressValue; */
/*******************************************************************/
JNIEXPORT jobject JNICALL Java_CLIPSJNI_Environment_makeInstance(
JNIEnv *env,
jobject obj,
jlong clipsEnv,
jstring instanceStr)
{
void *theInstance;
void *theCLIPSEnv = (void *) clipsEnv;
const char *cInstanceStr = (*env)->GetStringUTFChars(env,instanceStr,NULL);
theInstance = EnvMakeInstance(theCLIPSEnv,(char *) cInstanceStr);
(*env)->ReleaseStringUTFChars(env,instanceStr,cInstanceStr);
if (theInstance == NULL)
{ return(NULL); }
return ConvertSingleFieldValue(env,obj,theCLIPSEnv,INSTANCE_ADDRESS,theInstance);
}
/***********************************************************/
/* Java_CLIPSJNI_Environment_getInstanceName: Native */
/* function for the CLIPSJNI getInstanceName method. */
/* */
/* Class: CLIPSJNI_Environment */
/* Method: getInstanceName */
/* Signature: (LCLIPSJNI/Environment;JJ)Ljava/lang/String; */
/***********************************************************/
JNIEXPORT jstring JNICALL Java_CLIPSJNI_Environment_getInstanceName(
JNIEnv *env,
jclass javaClass,
jobject javaEnv,
jlong clipsEnv,
jlong clipsInstance)
{
return (*env)->NewStringUTF(env,EnvGetInstanceName((void *) clipsEnv,(void *) clipsInstance));
}
/**************************************************************/
/* Java_CLIPSJNI_Environment_directGetSlot: Native function */
/* for the CLIPSJNI directGetSlot method. */
/* */
/* Class: CLIPSJNI_Environment */
/* Method: directGetSlot */
/* Signature: (LCLIPSJNI/Environment;JJLjava/lang/String;) */
/* LCLIPSJNI/PrimitiveValue; */
/**************************************************************/
JNIEnv *env,
jclass javaClass,
jobject javaEnv,
jlong clipsEnv,
jlong clipsInstance,
jstring slotName)
{
DATA_OBJECT theDO;
void *theCLIPSEnv = (void *) clipsEnv;
const char *cSlotName = (*env)->GetStringUTFChars(env,slotName,NULL);
EnvDirectGetSlot((void *) clipsEnv,(void *) clipsInstance,(char *) cSlotName,&theDO);
(*env)->ReleaseStringUTFChars(env,slotName,cSlotName);
return ConvertDataObject(env,javaEnv,theCLIPSEnv,&theDO);
}
/**********************************************************/
/* Java_CLIPSJNI_Environment_destroyEnvironment: Native */
/* function for the CLIPSJNI destroyEnvironment method. */
/* */
/* Class: CLIPSJNI_Environment */
/* Method: destroyEnvironment */
/* Signature: (J)V */
/**********************************************************/
JNIEXPORT void JNICALL Java_CLIPSJNI_Environment_destroyEnvironment(
JNIEnv *env,
jobject obj,
jlong clipsEnv)
{
DestroyEnvironment((void *) clipsEnv);
}
/*******************************************************/
/* Java_CLIPSJNI_Environment_addRouter: Native */
/* function for the CLIPSJNI addRouter method. */
/* */
/* Class: CLIPSJNI_Environment */
/* Method: addRouter */
/* Signature: (JLjava/lang/String;ILCLIPSJNI/Router;)Z */
/*******************************************************/
JNIEXPORT jboolean JNICALL Java_CLIPSJNI_Environment_addRouter(
JNIEnv *env,
jobject obj,
jlong clipsEnv,
jstring routerName,
jint priority,
jobject context)
{
int rv;
jclass cls;
jobject nobj;
const char *cRouterName = (*env)->GetStringUTFChars(env,routerName,NULL);
nobj = (*env)->NewGlobalRef(env,context); /* TBD Need to deallocate when environment or router destroyed */
cls = (*env)->GetObjectClass(env,context);
rv = EnvAddRouterWithContext((void *) clipsEnv,(char *) cRouterName,(int) priority,
QueryJNIRouter,PrintJNIRouter,GetcJNIRouter,
UngetcJNIRouter,ExitJNIRouter,(void *) nobj);
(*env)->ReleaseStringUTFChars(env,routerName,cRouterName);
return rv;
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -