amzijni.cpp
来自「prolog开发工具」· C++ 代码 · 共 1,850 行 · 第 1/3 页
CPP
1,850 行
TF tf;
GET_EID(e);
tf = lsMain(e);
if (tf != TRUE && tf != FALSE)
amzi_error(jenv, e, "Main");
return (jboolean)tf;
}
/*
* Class: amzi_ls_LogicServer
* Method: Reset
* Signature: ()V
*/
extern "C" JNIEXPORT void JNICALL Java_amzi_ls_LogicServer_Reset
(JNIEnv * jenv, jobject jobj)
{
RC rc;
GET_EID(e);
rc = lsReset(e);
if (rc != OK)
amzi_error(jenv, e, "Reset");
return;
}
/*
* Class: amzi_ls_LogicServer
* Method: JClose
* Signature: (Ljava/lang/Object;)V
*/
JNIEXPORT void JNICALL Java_amzi_ls_LogicServer_JClose
(JNIEnv * jenv, jobject jobj, jlong lseng)
{
RC rc;
GET_EID(e);
JExtPred *e1 = EpList;
JExtPred *e2;
JExtPred *e0 = NULL;
while(e1)
{
e2 = e1->pnext;
if (e1->lseng == lseng)
{
if (e0)
e0->pnext = e2;
if (EpList == e1)
EpList = e2;
delete e1;
}
else
{
e0 = e1;
}
e1 = e2;
}
rc = lsClose(e);
if (rc != OK)
amzi_error(jenv, e, "Close");
return;
}
/*
* Class: amzi_ls_LogicServer
* Method: Close
* Signature: ()V
*/
/*
extern "C" JNIEXPORT void JNICALL Java_amzi_ls_LogicServer_Close
(JNIEnv * jenv, jobject jobj)
{
RC rc;
GET_EID(e);
rc = lsClose(e);
if (rc != OK)
amzi_error(jenv, e, "Close");
return;
}
*/
/*
* Class: amzi_ls_LogicServer
* Method: Exec
* Signature: (J)J
*/
extern "C" JNIEXPORT jlong JNICALL Java_amzi_ls_LogicServer_Exec
(JNIEnv * jenv, jobject jobj, jlong jterm)
{
TF tf;
TERM t;
jenv_current = jenv;
GET_EID(e);
t = (TERM)jterm;
tf = lsExec(e, &t);
switch(tf)
{
case TRUE: return (jlong)t;
case FALSE: return 0;
default: amzi_error(jenv, e, "Exec"); return 0;
}
}
/*
* Class: amzi_ls_LogicServer
* Method: ExecStr
* Signature: (Ljava/lang/String;)J
*/
extern "C" JNIEXPORT jlong JNICALL Java_amzi_ls_LogicServer_ExecStr
(JNIEnv * jenv, jobject jobj, jstring jstr)
{
TF tf;
TERM t;
aCHAR* query;
jenv_current = jenv;
GET_EID(e);
query = JtoC(jenv, jstr);
tf = lsExecStr(e, &t, query);
delete[] query;
switch(tf)
{
case TRUE: return (jlong)t;
case FALSE: return 0;
default: amzi_error(jenv, e, "ExecStr"); return 0;
}
}
/*
* Class: amzi_ls_LogicServer
* Method: Call
* Signature: (J)J
*/
extern "C" JNIEXPORT jlong JNICALL Java_amzi_ls_LogicServer_Call
(JNIEnv * jenv, jobject jobj, jlong jterm)
{
TF tf;
TERM t;
jenv_current = jenv;
GET_EID(e);
t = (TERM)jterm;
tf = lsCall(e, &t);
switch(tf)
{
case TRUE: return (jlong)t;
case FALSE: return 0;
default: amzi_error(jenv, e, "Call"); return 0;
}
}
/*
* Class: amzi_ls_LogicServer
* Method: CallStr
* Signature: (Ljava/lang/String;)J
*/
extern "C" JNIEXPORT jlong JNICALL Java_amzi_ls_LogicServer_CallStr
(JNIEnv * jenv, jobject jobj, jstring jstr)
{
TF tf;
TERM t;
aCHAR* query;
jenv_current = jenv;
GET_EID(e);
query = JtoC(jenv, jstr);
tf = lsCallStr(e, &t, query);
delete[] query;
switch(tf)
{
case TRUE: return (jlong)t;
case FALSE: return 0;
default: amzi_error(jenv, e, "CallStr"); return 0;
}
}
/*
* Class: amzi_ls_LogicServer
* Method: Redo
* Signature: ()Z
*/
extern "C" JNIEXPORT jboolean JNICALL Java_amzi_ls_LogicServer_Redo
(JNIEnv * jenv, jobject jobj)
{
TF tf;
jenv_current = jenv;
GET_EID(e);
tf = lsRedo(e);
if (tf != TRUE && tf != FALSE)
amzi_error(jenv, e, "Redo");
return (jboolean)tf;
}
/*
* Class: amzi_ls_LogicServer
* Method: ClearCall
* Signature: ()V
*/
extern "C" JNIEXPORT void JNICALL Java_amzi_ls_LogicServer_ClearCall
(JNIEnv * jenv, jobject jobj)
{
RC rc;
GET_EID(e);
rc = lsClearCall(e);
if (rc != OK)
amzi_error(jenv, e, "ClearCall");
return;
}
/*
* Class: amzi_ls_LogicServer
* Method: Asserta
* Signature: (J)V
*/
extern "C" JNIEXPORT void JNICALL Java_amzi_ls_LogicServer_Asserta
(JNIEnv * jenv, jobject jobj, jlong jterm)
{
RC rc;
GET_EID(e);
rc = lsAsserta(e, (TERM)jterm);
if (rc != OK)
amzi_error(jenv, e, "Asserta");
return;
}
/*
* Class: amzi_ls_LogicServer
* Method: Assertz
* Signature: (J)V
*/
extern "C" JNIEXPORT void JNICALL Java_amzi_ls_LogicServer_Assertz
(JNIEnv * jenv, jobject jobj, jlong jterm)
{
RC rc;
GET_EID(e);
rc = lsAssertz(e, (TERM)jterm);
if (rc != OK)
amzi_error(jenv, e, "Assertz");
return;
}
/*
* Class: amzi_ls_LogicServer
* Method: Retract
* Signature: (J)V
*/
extern "C" JNIEXPORT jlong JNICALL Java_amzi_ls_LogicServer_Retract
(JNIEnv * jenv, jobject jobj, jlong jterm)
{
TF tf;
TERM t;
GET_EID(e);
t = (TERM)jterm;
tf = lsRetract(e, t);
switch(tf)
{
case TRUE: return (jlong)t;
case FALSE: return 0;
default: amzi_error(jenv, e, "Retract"); return 0;
}
}
/*
* Class: amzi_ls_LogicServer
* Method: AssertaStr
* Signature: (Ljava/lang/String;)V
*/
extern "C" JNIEXPORT void JNICALL Java_amzi_ls_LogicServer_AssertaStr
(JNIEnv * jenv, jobject jobj, jstring jstr)
{
RC rc;
aCHAR* astr;
GET_EID(e);
astr = JtoC(jenv, jstr);
rc = lsAssertaStr(e, astr);
delete[] astr;
if (rc != OK)
amzi_error(jenv, e, "AssertaStr");
return;
}
/*
* Class: amzi_ls_LogicServer
* Method: AssertzStr
* Signature: (Ljava/lang/String;)V
*/
extern "C" JNIEXPORT void JNICALL Java_amzi_ls_LogicServer_AssertzStr
(JNIEnv * jenv, jobject jobj, jstring jstr)
{
RC rc;
aCHAR* astr;
GET_EID(e);
astr = JtoC(jenv, jstr);
rc = lsAssertzStr(e, astr);
delete[] astr;
if (rc != OK)
amzi_error(jenv, e, "AssertzStr");
return;
}
/*
* Class: amzi_ls_LogicServer
* Method: RetractStr
* Signature: (Ljava/lang/String;)V
*/
extern "C" JNIEXPORT jboolean JNICALL Java_amzi_ls_LogicServer_RetractStr
(JNIEnv * jenv, jobject jobj, jstring jstr)
{
TF tf;
aCHAR* rstr;
GET_EID(e);
rstr = JtoC(jenv, jstr);
tf = lsRetractStr(e, rstr);
delete[] rstr;
switch(tf)
{
case TRUE:
case FALSE:
return (jboolean)tf;
default: amzi_error(jenv, e, "RetractStr"); return 0;
}
}
/*
* Class: amzi_ls_LogicServer
* Method: TermToStr
* Signature: (JI)Ljava/lang/String;
*/
extern "C" JNIEXPORT jstring JNICALL Java_amzi_ls_LogicServer_TermToStr
(JNIEnv * jenv, jobject jobj, jlong t, jint jlen)
{
RC rc;
aCHAR* str = new aCHAR[jlen+1];
GET_EID(e);
rc = lsTermToStr(e, (TERM)t, str, jlen);
int len = wcslen(str);
jCHAR *jcstr = new jCHAR[len+1];
ac_to_jc(jcstr, str, len);
jstring jstr = jenv->NewString(jcstr, len);
delete[] str;
delete[] jcstr;
if (rc != OK)
amzi_error(jenv, e, "TermToStr");
return jstr;
}
/*
* Class: amzi_ls_LogicServer
* Method: TermToStrQ
* Signature: (JI)Ljava/lang/String;
*/
extern "C" JNIEXPORT jstring JNICALL Java_amzi_ls_LogicServer_TermToStrQ
(JNIEnv * jenv, jobject jobj, jlong t, jint jlen)
{
RC rc;
aCHAR* str = new aCHAR[jlen+1];
GET_EID(e);
rc = lsTermToStrQ(e, (TERM)t, str, jlen);
int len = wcslen(str);
jCHAR* jcstr = new jCHAR[len+1];
ac_to_jc(jcstr, str, len);
jstring jstr = jenv->NewString(jcstr, len);
delete[] str;
if (rc != OK)
amzi_error(jenv, e, "TermToStrQ");
return jstr;
}
/*
* Class: amzi_ls_LogicServer
* Method: StrToTerm
* Signature: (Ljava/lang/String;)J
*/
extern "C" JNIEXPORT jlong JNICALL Java_amzi_ls_LogicServer_StrToTerm
(JNIEnv * jenv, jobject jobj, jstring jstr)
{
RC rc;
TERM t;
aCHAR* istr;
GET_EID(e);
istr = JtoC(jenv, jstr);
rc = lsStrToTerm(e, &t, istr);
delete[] istr;
if (rc != OK)
amzi_error(jenv, e, "StrToTerm");
return (jlong)t;
}
/*
* Class: amzi_ls_LogicServer
* Method: StrTermLen
* Signature: (J)J
*/
extern "C" JNIEXPORT jint JNICALL Java_amzi_ls_LogicServer_StrTermLen
(JNIEnv * jenv, jobject jobj, jlong jterm)
{
int len;
GET_EID(e);
len = lsStrTermLen(e, (TERM)jterm);
return (jint)len;
}
/*
* Class: amzi_ls_LogicServer
* Method: MakeAtom
* Signature: (Ljava/lang/String;)J
*/
extern "C" JNIEXPORT jlong JNICALL Java_amzi_ls_LogicServer_MakeAtom
(JNIEnv * jenv, jobject jobj, jstring jstr)
{
RC rc;
aCHAR* atom;
TERM t;
GET_EID(e);
atom = JtoC(jenv, jstr);
rc = lsMakeAtom(e, &t, atom);
delete[] atom;
if (rc != OK)
amzi_error(jenv, e, "MakeAtom");
return (jlong)t;
}
/*
* Class: amzi_ls_LogicServer
* Method: MakeStr
* Signature: (Ljava/lang/String;)J
*/
extern "C" JNIEXPORT jlong JNICALL Java_amzi_ls_LogicServer_MakeStr
(JNIEnv * jenv, jobject jobj, jstring jstr)
{
RC rc;
aCHAR* str;
TERM t;
GET_EID(e);
str = JtoC(jenv, jstr);
rc = lsMakeStr(e, &t, str);
delete[] str;
if (rc != OK)
amzi_error(jenv, e, "MakeStr");
return (jlong)t;
}
/*
* Class: amzi_ls_LogicServer
* Method: MakeInt
* Signature: (I)J
*/
extern "C" JNIEXPORT jlong JNICALL Java_amzi_ls_LogicServer_MakeInt
(JNIEnv * jenv, jobject jobj, jint ji)
{
RC rc;
TERM t;
GET_EID(e);
rc = lsMakeInt(e, &t, (int)ji);
if (rc != OK)
amzi_error(jenv, e, "MakeInt");
return (jlong)t;
}
/*
* Class: amzi_ls_LogicServer
* Method: MakeFloat
* Signature: (D)J
*/
extern "C" JNIEXPORT jlong JNICALL Java_amzi_ls_LogicServer_MakeFloat
(JNIEnv * jenv, jobject jobj, jdouble jd)
{
RC rc;
TERM t;
GET_EID(e);
rc = lsMakeFloat(e, &t, (double)jd);
if (rc != OK)
amzi_error(jenv, e, "MakeFloat");
return (jlong)t;
}
/*
* Class: amzi_ls_LogicServer
* Method: GetTermType
* Signature: (J)I
*/
extern "C" JNIEXPORT jint JNICALL Java_amzi_ls_LogicServer_GetTermType
(JNIEnv * jenv, jobject jobj, jlong jterm)
{
pTYPE type;
GET_EID(e);
type = lsGetTermType(e, (TERM)jterm);
if (type < 0)
amzi_error(jenv, e, "GetTermType");
return (jint)type;
}
/*
* Class: amzi_ls_LogicServer
* Method: GetStrTerm
* Signature: (J)Ljava/lang/String;
*/
extern "C" JNIEXPORT jstring JNICALL Java_amzi_ls_LogicServer_GetStrTerm
(JNIEnv * jenv, jobject jobj, jlong jt)
{
RC rc;
aCHAR* str;
GET_EID(e);
int len = lsStrTermLen(e, (TERM)jt);
str = new aCHAR[len+1];
rc = lsGetTerm(e, (TERM)jt, cWSTR, str);
jCHAR *jcstr = new jCHAR[len+1];
ac_to_jc(jcstr, str, len);
jstring jstr = jenv->NewString(jcstr, len);
delete[] str;
delete[] jcstr;
if (rc != OK)
amzi_error(jenv, e, "GetStrTerm");
return jstr;
}
/*
* Class: amzi_ls_LogicServer
* Method: GetIntTerm
* Signature: (J)I
*/
extern "C" JNIEXPORT jint JNICALL Java_amzi_ls_LogicServer_GetIntTerm
(JNIEnv * jenv, jobject jobj, jlong jt)
{
RC rc;
int i;
GET_EID(e);
rc = lsGetTerm(e, (TERM)jt, cINT, &i);
if (rc != OK)
amzi_error(jenv, e, "GetIntTerm");
return (jint)i;
}
/*
* Class: amzi_ls_LogicServer
* Method: GetFloatTerm
* Signature: (J)D
*/
extern "C" JNIEXPORT jdouble JNICALL Java_amzi_ls_LogicServer_GetFloatTerm
(JNIEnv * jenv, jobject jobj, jlong jt)
{
RC rc;
double d;
GET_EID(e);
rc = lsGetTerm(e, (TERM)jt, cDOUBLE, &d);
if (rc != OK)
amzi_error(jenv, e, "GetFloatTerm");
return (jdouble)d;
}
/*
* Class: amzi_ls_LogicServer
* Method: GetParmType
* Signature: (I)I
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?