📄 javanns_kernelinterface.c
字号:
JNIEXPORT void JNICALL
Java_javanns_KernelInterface_setUnitSubnetNo(JNIEnv *jEnv, jobject jObj,
jint unitNo, jint subnetNo) {
krui_setUnitSubnetNo(unitNo, subnetNo);
}
/*
* Class: javanns_KernelInterface
* Method: getUnitLayerNo
* Signature: (I)I
*/
JNIEXPORT jint JNICALL
Java_javanns_KernelInterface_getUnitLayerNo(JNIEnv *jEnv, jobject jObj, jint unitNo) {
return krui_getUnitLayerNo(unitNo);
}
/*
* Class: javanns_KernelInterface
* Method: setUnitLayerNo
* Signature: (II)V
*/
JNIEXPORT void JNICALL
Java_javanns_KernelInterface_setUnitLayerNo(JNIEnv *jEnv, jobject jObj,
jint unitNo,
jint layerNo) {
krui_setUnitLayerNo(unitNo, layerNo);
}
/*
* Class: javanns_KernelInterface
* Method: getUnitPosition
* Signature: (I)V
*/
JNIEXPORT void JNICALL
Java_javanns_KernelInterface_getUnitPosition(JNIEnv *jEnv, jobject jObj, jint unitNo) {
jclass cls = (*jEnv)->GetObjectClass(jEnv, jObj);
jfieldID fid;
struct PosType pos;
krui_getUnitPosition(unitNo, &pos);
fid = (*jEnv)->GetFieldID(jEnv, cls, "posX", "I");
if(fid) (*jEnv)->SetIntField(jEnv, jObj, fid, pos.x);
fid = (*jEnv)->GetFieldID(jEnv, cls, "posY", "I");
if(fid) (*jEnv)->SetIntField(jEnv, jObj, fid, pos.y);
fid = (*jEnv)->GetFieldID(jEnv, cls, "posZ", "I");
if(fid) (*jEnv)->SetIntField(jEnv, jObj, fid, pos.z);
}
/*
* Class: javanns_KernelInterface
* Method: setUnitPosition
* Signature: (I)V
*/
JNIEXPORT void JNICALL
Java_javanns_KernelInterface_setUnitPosition(JNIEnv *jEnv, jobject jObj, jint unitNo) {
jclass cls = (*jEnv)->GetObjectClass(jEnv, jObj);
jfieldID fid;
struct PosType pos;
fid = (*jEnv)->GetFieldID(jEnv, cls, "posX", "I");
if(fid) pos.x = (*jEnv)->GetIntField(jEnv, jObj, fid);
fid = (*jEnv)->GetFieldID(jEnv, cls, "posY", "I");
if(fid) pos.y = (*jEnv)->GetIntField(jEnv, jObj, fid);
fid = (*jEnv)->GetFieldID(jEnv, cls, "posZ", "I");
if(fid) pos.z = (*jEnv)->GetIntField(jEnv, jObj, fid);
krui_setUnitPosition(unitNo, &pos);
}
/*
* Class: javanns_KernelInterface
* Method: getUnitNoAtPosition
* Signature: (I)I
*/
JNIEXPORT jint JNICALL
Java_javanns_KernelInterface_getUnitNoAtPosition(JNIEnv *jEnv, jobject jObj, jint subnetNo) {
jclass cls = (*jEnv)->GetObjectClass(jEnv, jObj);
jfieldID fid;
struct PosType pos;
fid = (*jEnv)->GetFieldID(jEnv, cls, "posX", "I");
if(fid) pos.x = (*jEnv)->GetIntField(jEnv, jObj, fid);
fid = (*jEnv)->GetFieldID(jEnv, cls, "posY", "I");
if(fid) pos.y = (*jEnv)->GetIntField(jEnv, jObj, fid);
fid = (*jEnv)->GetFieldID(jEnv, cls, "posZ", "I");
if(fid) pos.z = (*jEnv)->GetIntField(jEnv, jObj, fid);
return krui_getUnitNoAtPosition(&pos, subnetNo);
}
/*
* Class: javanns_KernelInterface
* Method: getUnitNoNearPosition
* Signature: (III)I
*/
JNIEXPORT jint JNICALL
Java_javanns_KernelInterface_getUnitNoNearPosition(JNIEnv *jEnv, jobject jObj,
jint subnetNo,
jint range,
jint gridWidth) {
jclass cls = (*jEnv)->GetObjectClass(jEnv, jObj);
jfieldID fid;
struct PosType pos;
fid = (*jEnv)->GetFieldID(jEnv, cls, "posX", "I");
if(fid) pos.x = (*jEnv)->GetIntField(jEnv, jObj, fid);
fid = (*jEnv)->GetFieldID(jEnv, cls, "posY", "I");
if(fid) pos.y = (*jEnv)->GetIntField(jEnv, jObj, fid);
fid = (*jEnv)->GetFieldID(jEnv, cls, "posZ", "I");
if(fid) pos.z = (*jEnv)->GetIntField(jEnv, jObj, fid);
return krui_getUnitNoNearPosition(&pos, subnetNo, range, gridWidth);
}
/*
* Class: javanns_KernelInterface
* Method: getUnitTType
* Signature: (I)I
*/
JNIEXPORT jint JNICALL
Java_javanns_KernelInterface_getUnitTType(JNIEnv *jEnv, jobject jObj, jint unitNo) {
return krui_getUnitTType(unitNo);
}
/*
* Class: javanns_KernelInterface
* Method: setUnitTType
* Signature: (II)V
*/
JNIEXPORT void JNICALL
Java_javanns_KernelInterface_setUnitTType(JNIEnv *jEnv, jobject jObj,
jint unitNo,
jint unitTType) {
isOK(jEnv, krui_setUnitTType(unitNo, unitTType) );
}
/*
* Class: javanns_KernelInterface
* Method: freezeUnit
* Signature: (I)V
*/
JNIEXPORT void JNICALL
Java_javanns_KernelInterface_freezeUnit(JNIEnv *jEnv, jobject jObj, jint unitNo) {
isOK(jEnv, krui_freezeUnit(unitNo) );
}
/*
* Class: javanns_KernelInterface
* Method: unfreezeUnit
* Signature: (I)V
*/
JNIEXPORT void JNICALL
Java_javanns_KernelInterface_unfreezeUnit(JNIEnv *jEnv, jobject jObj, jint unitNo) {
isOK(jEnv, krui_unfreezeUnit(unitNo) );
}
/*
* Class: javanns_KernelInterface
* Method: isUnitFrozen
* Signature: (I)Z
*/
JNIEXPORT jboolean JNICALL
Java_javanns_KernelInterface_isUnitFrozen(JNIEnv *jEnv, jobject jObj, jint unitNo) {
return krui_isUnitFrozen(unitNo);
}
/*
* Class: javanns_KernelInterface
* Method: getUnitInputType
* Signature: (I)I
*/
JNIEXPORT jint JNICALL
Java_javanns_KernelInterface_getUnitInputType(JNIEnv *jEnv, jobject jObj, jint unitNo) {
return krui_getUnitInputType(unitNo);
}
/*
* Class: javanns_KernelInterface
* Method: getUnitValueA
* Signature: (I)D
*/
JNIEXPORT jdouble JNICALL
Java_javanns_KernelInterface_getUnitValueA(JNIEnv *jEnv, jobject jObj, jint unitNo) {
return krui_getUnitValueA(unitNo);
}
/*
* Class: javanns_KernelInterface
* Method: setUnitValueA
* Signature: (ID)V
*/
JNIEXPORT void JNICALL
Java_javanns_KernelInterface_setUnitValueA(JNIEnv *jEnv, jobject jObj,
jint unitNo,
jdouble unitValueA) {
krui_setUnitValueA(unitNo, unitValueA);
}
/*
* Class: javanns_KernelInterface
* Method: createDefaultUnit
* Signature: ()I
*/
JNIEXPORT jint JNICALL
Java_javanns_KernelInterface_createDefaultUnit(JNIEnv *jEnv, jobject jObj) {
int i = krui_createDefaultUnit();
isOK(jEnv, i);
return i;
}
/*
* Class: javanns_KernelInterface
* Method: createUnit
* Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;DD)I
*/
JNIEXPORT jint JNICALL
Java_javanns_KernelInterface_createUnit(JNIEnv *jEnv, jobject jObj,
jstring jName,
jstring jOutFn,
jstring jActFn,
jdouble iAct,
jdouble bias) {
const char *name = (*jEnv)->GetStringUTFChars(jEnv, jName, 0);
const char *outFn = (*jEnv)->GetStringUTFChars(jEnv, jOutFn, 0);
const char *actFn = (*jEnv)->GetStringUTFChars(jEnv, jActFn, 0);
int i = krui_createUnit((char *)name, (char *)outFn, (char *)actFn, iAct, bias);
(*jEnv)->ReleaseStringUTFChars(jEnv, jName, name);
(*jEnv)->ReleaseStringUTFChars(jEnv, jOutFn, outFn);
(*jEnv)->ReleaseStringUTFChars(jEnv, jActFn, actFn);
isOK(jEnv, i);
return i;
}
/*
* Class: javanns_KernelInterface
* Method: createFTypeUnit
* Signature: (Ljava/lang/String;)I
*/
JNIEXPORT jint JNICALL
Java_javanns_KernelInterface_createFTypeUnit(JNIEnv *jEnv, jobject jObj, jstring jFtName) {
const char *ftName = (*jEnv)->GetStringUTFChars(jEnv, jFtName, 0);
int i = krui_createFTypeUnit( (char *)ftName );
(*jEnv)->ReleaseStringUTFChars(jEnv, jFtName, ftName);
isOK(jEnv, i);
return i;
}
/*
* Class: javanns_KernelInterface
* Method: setUnitFType
* Signature: (ILjava/lang/String;)V
*/
JNIEXPORT void JNICALL
Java_javanns_KernelInterface_setUnitFType(JNIEnv *jEnv, jobject jObj,
jint unitNo,
jstring jFtName) {
const char *ftName = (*jEnv)->GetStringUTFChars(jEnv, jFtName, 0);
int i = krui_setUnitFType( unitNo, (char *)ftName );
(*jEnv)->ReleaseStringUTFChars(jEnv, jFtName, ftName);
isOK(jEnv, i);
}
/*
* Class: javanns_KernelInterface
* Method: copyUnit
* Signature: (II)I
*/
JNIEXPORT jint JNICALL
Java_javanns_KernelInterface_copyUnit(JNIEnv *jEnv, jobject jObj,
jint unitNo,
jint copyMode) {
int i = krui_copyUnit(unitNo, copyMode);
isOK(jEnv, i);
return i;
}
/*
* Class: javanns_KernelInterface
* Method: deleteUnitList
* Signature: ([I)V
*/
JNIEXPORT void JNICALL
Java_javanns_KernelInterface_deleteUnitList(JNIEnv *jEnv, jobject jObj, jintArray jUnitNos) {
int i;
jsize len = (*jEnv)->GetArrayLength(jEnv, jUnitNos);
jint *units = (*jEnv)->GetIntArrayElements(jEnv, jUnitNos, 0);
int *unit_array = (int *)malloc(len*sizeof(int));
if(unit_array) {
for(i=0; i<len; i++) unit_array[i] = units[i];
i = krui_deleteUnitList(len, unit_array);
free(unit_array);
}
else {
error(jEnv, "Out of memory: malloc failed in deleteUnitList");
i=0;
}
(*jEnv)->ReleaseIntArrayElements(jEnv, jUnitNos, units, 0);
isOK(jEnv, i);
}
/*
* Class: javanns_KernelInterface
* Method: createSiteTableEntry
* Signature: (Ljava/lang/String;Ljava/lang/String;)V
*/
JNIEXPORT void JNICALL
Java_javanns_KernelInterface_createSiteTableEntry(JNIEnv *jEnv, jobject jObj,
jstring jSiteName,
jstring jSiteFn) {
const char *name = (*jEnv)->GetStringUTFChars(jEnv, jSiteName, 0);
const char *fn = (*jEnv)->GetStringUTFChars(jEnv, jSiteFn, 0);
int i = krui_createSiteTableEntry( (char *)name, (char *)fn);
(*jEnv)->ReleaseStringUTFChars(jEnv, jSiteFn, fn);
(*jEnv)->ReleaseStringUTFChars(jEnv, jSiteName, name);
isOK(jEnv, i);
}
/*
* Class: javanns_KernelInterface
* Method: changeSiteTableEntry
* Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
*/
JNIEXPORT void JNICALL
Java_javanns_KernelInterface_changeSiteTableEntry(JNIEnv *jEnv, jobject jObj,
jstring jOldSiteName,
jstring jNewSiteName,
jstring jNewSiteFn) {
const char *oldName = (*jEnv)->GetStringUTFChars(jEnv, jOldSiteName, 0);
const char *newName = (*jEnv)->GetStringUTFChars(jEnv, jNewSiteName, 0);
const char *fn = (*jEnv)->GetStringUTFChars(jEnv, jNewSiteFn, 0);
int i = krui_changeSiteTableEntry( (char *)oldName, (char *)newName, (char *)fn);
(*jEnv)->ReleaseStringUTFChars(jEnv, jNewSiteFn, fn);
(*jEnv)->ReleaseStringUTFChars(jEnv, jNewSiteName, newName);
(*jEnv)->ReleaseStringUTFChars(jEnv, jOldSiteName, oldName);
isOK(jEnv, i);
}
/*
* Class: javanns_KernelInterface
* Method: deleteSiteTableEntry
* Signature: (Ljava/lang/String;)V
*/
JNIEXPORT void JNICALL
Java_javanns_KernelInterface_deleteSiteTableEntry(JNIEnv *jEnv, jobject jObj, jstring jSiteName) {
const char *name = (*jEnv)->GetStringUTFChars(jEnv, jSiteName, 0);
int i = krui_deleteSiteTableEntry( (char *)name );
(*jEnv)->ReleaseStringUTFChars(jEnv, jSiteName, name);
isOK(jEnv, i);
}
/*
* Class: javanns_KernelInterface
* Method: getFirstSiteTableEntry
* Signature: ()Z
*/
JNIEXPORT jboolean JNICALL
Java_javanns_KernelInterface_getFirstSiteTableEntry(JNIEnv *jEnv, jobject jObj) {
char name[128];
char fn[128];
char *p_name = name;
char *p_fn = fn;
jclass cls = (*jEnv)->GetObjectClass(jEnv, jObj);
jfieldID fid;
bool b = krui_getFirstSiteTableEntry( &p_name, &p_fn );
fid = (*jEnv)->GetFieldID(jEnv, cls, "siteName", "Ljava/lang/String;");
if(fid) (*jEnv)->SetObjectField(jEnv, jObj, fid, (*jEnv)->NewStringUTF(jEnv, name ) );
fid = (*jEnv)->GetFieldID(jEnv, cls, "siteFunction", "Ljava/lang/String;");
if(fid) (*jEnv)->SetObjectField(jEnv, jObj, fid, (*jEnv)->NewStringUTF(jEnv, fn ) );
return b;
}
/*
* Class: javanns_KernelInterface
* Method: getNextSiteTableEntry
* Signature: ()Z
*/
JNIEXPORT jboolean JNICALL
Java_javanns_KernelInterface_getNextSiteTableEntry(JNIEnv *jEnv, jobject jObj) {
char name[128];
char fn[128];
char *p_name = name;
char *p_fn = fn;
jclass cls = (*jEnv)->GetObjectClass(jEnv, jObj);
jfieldID fid;
bool b = krui_getNextSiteTableEntry( &p_name, &p_fn );
fid = (*jEnv)->GetFieldID(jEnv, cls, "siteName", "Ljava/lang/String;");
if(fid) (*jEnv)->SetObjectField(jEnv, jObj, fid, (*jEnv)->NewStringUTF(jEnv, name ) );
fid = (*jEnv)->GetFieldID(jEnv, cls, "siteFunction", "Ljava/lang/String;");
if(fid) (*jEnv)->SetObjectField(jEnv, jObj, fid, (*jEnv)->NewStringUTF(jEnv, fn ) );
return b;
}
/*
* Class: javanns_KernelInterface
* Method: getSiteTableFuncName
* Signature: (Ljava/lang/String;)Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL
Java_javanns_KernelInterface_getSiteTableFuncName(JNIEnv *jEnv, jobject jObj, jstring jSiteName) {
const char *name = (*jEnv)->GetStringUTFChars(jEnv, jSiteName, 0);
char *fn = krui_getSiteTableFuncName( (char *)name);
(*jEnv)->ReleaseStringUTFChars(jEnv, jSiteName, name);
if(fn) return (*jEnv)->NewStringUTF(jEnv, fn );
else return (*jEnv)->NewStringUTF(jEnv, "" );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -