Beispiel #1
0
/*
 * Class:     amzi_ls_ARulesLogicServer
 * Method:    Exec
 * Signature: (J)J
 */
extern "C" JNIEXPORT jlong JNICALL Java_amzi_ls_ARulesLogicServer_Exec
  (JNIEnv * jenv, jobject jobj, jlong jterm)
{
   TF   tf;
   TERM t;

   jenv_current = jenv;
   GET_EID(e);
   t = (TERM)(ajptr)jterm;
   tf = lsExec(e, &t);
   switch(tf)
   {
   case TRUE: return (jlong)(ajptr)t;
   case FALSE: return 0;
   default: amzi_error(jenv, e, "Exec"); return 0;
   }
}
void	prolog_printf ( ENGid		Engine,
		        char *		format, 
		        ... ) 
   {
	char		buffer [4096] ;
	va_list		list ;
	TERM		Write ;


	va_start ( list, format ) ;
	vsprintf( buffer, format, list ) ;
	va_end ( list ) ;

	// Don't call ExecStr directly because we would have problems with quoted
	// strings ; call lsMakeFA and lsUnifyArg instead before calling lsExec
	lsMakeFA ( Engine, & Write, "write", 1 ) ;
	lsUnifyArg ( Engine, & Write, 1, cATOM, buffer ) ;
	lsExec ( Engine, & Write ) ;

	//lsExecStr ( Engine, & Cmd, "nl" ) ;
     }