亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? clipsjni_environment.c

?? clips源代碼
?? C
?? 第 1 頁 / 共 3 頁
字號:

#include "CLIPSJNI_Environment.h"

#include "clips.h"

#define CLIPSJNI_DATA 67

struct clipsJNIData
  { 
   jclass longClass;
   jmethodID longInitMethod;

   jclass doubleClass;
   jmethodID doubleInitMethod;
   
   jclass arrayListClass;
   jmethodID arrayListInitMethod;
   jmethodID arrayListAddMethod;

   jclass voidValueClass;
   jmethodID voidValueInitMethod;

   jclass integerValueClass;
   jmethodID integerValueInitMethod;
   jclass floatValueClass;
   jmethodID floatValueInitMethod;

   jclass symbolValueClass;
   jmethodID symbolValueInitMethod;
   jclass stringValueClass;
   jmethodID stringValueInitMethod;
   jclass instanceNameValueClass;
   jmethodID instanceNameValueInitMethod;

   jclass multifieldValueClass;
   jmethodID multifieldValueInitMethod;

   jclass factAddressValueClass;
   jmethodID factAddressValueInitMethod;

   jclass instanceAddressValueClass;
   jmethodID instanceAddressValueInitMethod;
  };

#define CLIPSJNIData(theEnv) ((struct clipsJNIData *) GetEnvironmentData(theEnv,CLIPSJNI_DATA))

static int QueryJNIRouter(void *,char *);
static int ExitJNIRouter(void *,int);
static int PrintJNIRouter(void *,char *,char *);
static int GetcJNIRouter(void *,char *);
static int UngetcJNIRouter(void *,int,char *);
static void DeallocateJNIData(void *);
static jobject ConvertSingleFieldValue(JNIEnv *,jobject,void *,int,void *);
static jobject ConvertDataObject(JNIEnv *,jobject,void *,DATA_OBJECT *);

/**********************************************/
/* DeallocateJNIData: Deallocates environment */
/*    data for the JNI functionality.         */
/**********************************************/
static void DeallocateJNIData(
  void *theEnv)
  {
   JNIEnv *env;
   
   env = (JNIEnv *) GetEnvironmentContext(theEnv);
  
   (*env)->DeleteGlobalRef(env,CLIPSJNIData(theEnv)->longClass);
   (*env)->DeleteGlobalRef(env,CLIPSJNIData(theEnv)->doubleClass);
   (*env)->DeleteGlobalRef(env,CLIPSJNIData(theEnv)->arrayListClass);
   (*env)->DeleteGlobalRef(env,CLIPSJNIData(theEnv)->voidValueClass);
   (*env)->DeleteGlobalRef(env,CLIPSJNIData(theEnv)->integerValueClass);
   (*env)->DeleteGlobalRef(env,CLIPSJNIData(theEnv)->floatValueClass);
   (*env)->DeleteGlobalRef(env,CLIPSJNIData(theEnv)->symbolValueClass);
   (*env)->DeleteGlobalRef(env,CLIPSJNIData(theEnv)->stringValueClass);
   (*env)->DeleteGlobalRef(env,CLIPSJNIData(theEnv)->instanceNameValueClass);
   (*env)->DeleteGlobalRef(env,CLIPSJNIData(theEnv)->multifieldValueClass);
   (*env)->DeleteGlobalRef(env,CLIPSJNIData(theEnv)->factAddressValueClass);
   (*env)->DeleteGlobalRef(env,CLIPSJNIData(theEnv)->instanceAddressValueClass);
  }

/*************************************************/
/* FindJNIRouter: Query routine for JNI routers. */
/*************************************************/
static int QueryJNIRouter(
  void *theEnv,
  char *logicalName)
  {
   jobject context;
   jclass cls;
   JNIEnv *env;
   jmethodID mid;
   jboolean rv;
   jstring str;
  
   env = (JNIEnv *) GetEnvironmentContext(theEnv);

   context = GetEnvironmentRouterContext(theEnv);
  
   cls = (*env)->GetObjectClass(env,context);

   mid = (*env)->GetMethodID(env,cls,"query","(Ljava/lang/String;)Z");

   (*env)->DeleteLocalRef(env,cls);

   if (mid == NULL)
     { return FALSE; }

   str = (*env)->NewStringUTF(env,logicalName);

   rv = (*env)->CallBooleanMethod(env,context,mid,str);
      
   (*env)->DeleteLocalRef(env,str);
      
   return(rv);
  }

/*************************************************/
/* ExitJNIRouter:  Exit routine for JNI routers. */
/*************************************************/
#if IBM_TBC
#pragma argsused
#endif
static int ExitJNIRouter(
  void *theEnv,
  int num)
  {
#if MAC_MCW || IBM_MCW || MAC_XCD
#pragma unused(num)
#endif
#if MAC_MCW || IBM_MCW || MAC_XCD
#pragma unused(theEnv)
#endif
   /* TBD deallocate global context reference */
   return(1);
  }

/**************************************************/
/* PrintJNIRouter: Print routine for JNI routers. */
/**************************************************/
static int PrintJNIRouter(
  void *theEnv,
  char *logicalName,
  char *str)
  {
   jobject context;
   JNIEnv *env;
   jmethodID mid;
   jclass cls;
   jstring str1, str2;

   env = (JNIEnv *) GetEnvironmentContext(theEnv);

   context = GetEnvironmentRouterContext(theEnv);

   cls = (*env)->GetObjectClass(env,context);

   mid = (*env)->GetMethodID(env,cls,"print","(Ljava/lang/String;Ljava/lang/String;)V");

   (*env)->DeleteLocalRef(env,cls);

   if (mid == NULL)
     { return FALSE; }

   str1 = (*env)->NewStringUTF(env,logicalName);
   str2 = (*env)->NewStringUTF(env,str);

   (*env)->CallVoidMethod(env,context,mid,str1,str2);

   (*env)->DeleteLocalRef(env,str1);
   (*env)->DeleteLocalRef(env,str2);
   
   return(1);
  }

/************************************************/
/* GetcJNIRouter: Getc routine for JNI routers. */
/************************************************/
static int GetcJNIRouter(
  void *theEnv,
  char *logicalName)
  {
   jint theChar;
   jobject context;
   JNIEnv *env;
   jmethodID mid;
   jclass cls;
   jstring str;

   env = (JNIEnv *) GetEnvironmentContext(theEnv);

   context = GetEnvironmentRouterContext(theEnv);

   cls = (*env)->GetObjectClass(env,context);

   mid = (*env)->GetMethodID(env,cls,"getchar","(Ljava/lang/String;)I");

   (*env)->DeleteLocalRef(env,cls);

   if (mid == NULL)
     { return -1; }

   str = (*env)->NewStringUTF(env,logicalName);

   theChar = (*env)->CallIntMethod(env,context,mid,str);

   (*env)->DeleteLocalRef(env,str);

   return((int) theChar);
  }

/****************************************************/
/* UngetcJNIRouter: Ungetc routine for JNI routers. */
/****************************************************/
static int UngetcJNIRouter(
  void *theEnv,
  int ch,
  char *logicalName)
  {
   jint theChar;
   jobject context;
   JNIEnv *env;
   jmethodID mid;
   jclass cls;
   jstring str;

   env = (JNIEnv *) GetEnvironmentContext(theEnv);

   context = GetEnvironmentRouterContext(theEnv);

   cls = (*env)->GetObjectClass(env,context);

   mid = (*env)->GetMethodID(env,cls,"ungetchar","(Ljava/lang/String;I)I");

   (*env)->DeleteLocalRef(env,cls);

   if (mid == NULL)
     { return -1; }

   str = (*env)->NewStringUTF(env,logicalName);

   theChar = (*env)->CallIntMethod(env,context,mid,(jint) ch,str);

   (*env)->DeleteLocalRef(env,str);

   return((int) theChar);
  }

/*******************************************************/
/* Java_CLIPSJNI_Environment_getCLIPSVersion: Native   */
/*   function for the CLIPSJNI getCLIPSVersion method. */
/* Class:     CLIPSJNI_Environment                     */
/* Method:    getCLIPSVersion                          */
/* Signature: ()Ljava/lang/String;                     */
/*******************************************************/
JNIEXPORT jstring JNICALL Java_CLIPSJNI_Environment_getCLIPSVersion(
  JNIEnv *env, 
  jclass cls) 
  {
   return (*env)->NewStringUTF(env,VERSION_STRING);
  }

/************************************************/
/* Java_CLIPSJNI_Environment_createEnvironment: */
/*                                              */
/*    Class:     CLIPSJNI_Environment           */
/*    Method:    createEnvironment              */
/*    Signature: ()J                            */
/************************************************/
JNIEXPORT jlong JNICALL Java_CLIPSJNI_Environment_createEnvironment(
  JNIEnv *env, 
  jobject obj)
  {
   void *theEnv;
   jclass theLongClass; 
   jmethodID theLongInitMethod;
   jclass theDoubleClass; 
   jmethodID theDoubleInitMethod;
   jclass theArrayListClass; 
   jmethodID theArrayListInitMethod, theArrayListAddMethod;
   jclass theVoidValueClass;
   jmethodID theVoidValueInitMethod;
   jclass theIntegerValueClass, theFloatValueClass;
   jmethodID theIntegerValueInitMethod, theFloatValueInitMethod;
   jclass theSymbolValueClass, theStringValueClass, theInstanceNameValueClass;
   jmethodID theSymbolValueInitMethod, theStringValueInitMethod, theInstanceNameValueInitMethod;
   jclass theMultifieldValueClass;
   jmethodID theMultifieldValueInitMethod;
   jclass theFactAddressValueClass;
   jmethodID theFactAddressValueInitMethod;
   jclass theInstanceAddressValueClass;
   jmethodID theInstanceAddressValueInitMethod;
   
   /*===========================*/
   /* Look up the Java classes. */
   /*===========================*/
   
   theLongClass = (*env)->FindClass(env,"java/lang/Long"); 
   theDoubleClass = (*env)->FindClass(env,"java/lang/Double"); 
   theArrayListClass = (*env)->FindClass(env,"java/util/ArrayList"); 
   theVoidValueClass = (*env)->FindClass(env,"CLIPSJNI/VoidValue");
   theIntegerValueClass = (*env)->FindClass(env,"CLIPSJNI/IntegerValue");
   theFloatValueClass = (*env)->FindClass(env,"CLIPSJNI/FloatValue");
   theSymbolValueClass = (*env)->FindClass(env,"CLIPSJNI/SymbolValue");
   theStringValueClass = (*env)->FindClass(env,"CLIPSJNI/StringValue");
   theInstanceNameValueClass = (*env)->FindClass(env,"CLIPSJNI/InstanceNameValue");
   theMultifieldValueClass = (*env)->FindClass(env,"CLIPSJNI/MultifieldValue");
   theFactAddressValueClass = (*env)->FindClass(env,"CLIPSJNI/FactAddressValue");
   theInstanceAddressValueClass = (*env)->FindClass(env,"CLIPSJNI/InstanceAddressValue");
        

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩限制级电影在线观看| 日韩片之四级片| 69精品人人人人| 国产午夜精品久久久久久久| 中文在线资源观看网站视频免费不卡| 国产精品三级av| 天天综合色天天综合| 久久99精品久久久| 日本韩国一区二区三区| 欧美zozo另类异族| 亚洲一区二区三区四区五区中文 | 亚洲伦理在线精品| 看国产成人h片视频| 91福利资源站| 国产网站一区二区三区| 午夜av一区二区| 成人av免费在线观看| 91福利视频网站| 日韩区在线观看| 亚洲愉拍自拍另类高清精品| 丁香婷婷综合五月| 日韩欧美不卡一区| 亚洲成av人影院在线观看网| 成人黄色免费短视频| 欧美成人一区二区| 亚洲福中文字幕伊人影院| 成人av影院在线| 2014亚洲片线观看视频免费| 舔着乳尖日韩一区| 在线观看亚洲专区| 亚洲视频一二三区| 久久精品国产精品亚洲精品| 欧美日韩一区高清| 一区二区三区精品| 色综合网色综合| 26uuu国产日韩综合| 麻豆精品在线观看| 欧美一级午夜免费电影| 日韩一区精品视频| 欧美日韩三级一区| 亚洲mv在线观看| 欧美丝袜第三区| 中文字幕不卡的av| 成人黄色小视频| 亚洲国产成人自拍| 国产99久久久久| 国产精品久久久久久久久搜平片| 国产乱色国产精品免费视频| www久久精品| 亚洲乱码国产乱码精品精98午夜| 99精品热视频| 亚洲综合色成人| 欧美色偷偷大香| 日韩电影在线观看一区| 日韩欧美亚洲另类制服综合在线| 蜜臀91精品一区二区三区 | 日韩视频中午一区| 免费观看在线色综合| 欧美一级精品在线| 国产精一品亚洲二区在线视频| 国产欧美一区二区精品忘忧草| 国产精品一区二区你懂的| 6080日韩午夜伦伦午夜伦| 美脚の诱脚舐め脚责91 | 亚洲成在线观看| 99精品视频免费在线观看| 亚洲欧美日韩小说| 色美美综合视频| 日韩一区中文字幕| 毛片av一区二区| 欧美电视剧免费全集观看| 久久精品国产99国产| 国产女主播视频一区二区| 91香蕉视频在线| 日本午夜精品视频在线观看| 欧美一级日韩一级| 豆国产96在线|亚洲| 亚洲一区av在线| 精品成人在线观看| 国产成人啪免费观看软件| 亚洲人成在线观看一区二区| 欧美日韩精品专区| 国产成人精品亚洲日本在线桃色 | 国产精品免费免费| 色综合中文字幕国产| 亚洲午夜久久久久| 久久久天堂av| 欧美日韩亚洲综合一区二区三区| 国产最新精品精品你懂的| 久久精品亚洲乱码伦伦中文| 色综合久久久久| 激情综合色播激情啊| 亚洲色图欧美偷拍| 欧美日韩视频不卡| 久久福利视频一区二区| 亚洲色图欧洲色图婷婷| 精品福利视频一区二区三区| 欧美在线高清视频| 丁香激情综合国产| 蜜臀av性久久久久av蜜臀妖精| 日韩免费观看高清完整版| 色偷偷久久一区二区三区| 国产精品一区在线| 日韩电影在线看| 一区二区在线免费| 国产精品天天看| 正在播放一区二区| 色婷婷久久综合| 岛国精品在线播放| 国产在线观看一区二区 | 久久亚洲一区二区三区明星换脸 | 日韩精品一区二| 欧美日韩电影在线播放| a4yy欧美一区二区三区| 另类的小说在线视频另类成人小视频在线| 亚洲精品免费一二三区| 欧美韩日一区二区三区| 欧美成人福利视频| 在线免费不卡视频| 国产精品99精品久久免费| 麻豆国产精品777777在线| 亚洲一区二区三区自拍| 一区二区三区 在线观看视频| 中文字幕一区二区三区在线观看| 国产无遮挡一区二区三区毛片日本| 日韩免费高清电影| 精品国产91久久久久久久妲己 | 99久久久精品免费观看国产蜜| 国产一区二区三区免费| 一区二区日韩电影| 亚洲美女淫视频| 亚洲最新在线观看| 自拍av一区二区三区| 国产精品妹子av| 日韩视频免费观看高清在线视频| 欧美精品在欧美一区二区少妇 | 国产精品天天看| 国产精品三级在线观看| 中文字幕亚洲一区二区av在线| 亚洲日穴在线视频| 一区二区三区精品| 日本免费新一区视频| 亚洲一卡二卡三卡四卡五卡| 午夜影视日本亚洲欧洲精品| 偷窥国产亚洲免费视频| 天堂成人国产精品一区| 蜜臀av在线播放一区二区三区| 激情综合色播激情啊| 成人免费毛片片v| 欧美性大战久久久久久久蜜臀| 国产成人亚洲精品青草天美 | 亚洲免费av高清| 亚洲 欧美综合在线网络| 久久疯狂做爰流白浆xx| caoporen国产精品视频| 欧美日韩在线三区| 欧美精品一区二区三区蜜桃视频| 国产日韩视频一区二区三区| 最好看的中文字幕久久| 亚洲va韩国va欧美va精品| 久久精工是国产品牌吗| www.欧美日韩| 欧美一区二区三区在线视频| 久久久久久久久久久久久女国产乱| 国产农村妇女毛片精品久久麻豆| 国产午夜一区二区三区| 一区二区免费在线| 午夜精品视频在线观看| 亚洲成人av在线电影| 日本美女一区二区| 懂色av中文字幕一区二区三区 | www.66久久| 欧美一卡二卡三卡四卡| 亚洲欧洲色图综合| 六月丁香婷婷色狠狠久久| 不卡高清视频专区| 日韩精品一区二区三区在线观看| 成人免费一区二区三区视频| 麻豆成人久久精品二区三区红 | 91久久精品一区二区| 欧美日韩在线电影| 一色桃子久久精品亚洲| 韩国精品主播一区二区在线观看| 在线免费观看视频一区| 欧美在线影院一区二区| 综合久久给合久久狠狠狠97色| 国产一区二区三区黄视频 | 777午夜精品视频在线播放| 亚洲欧美日韩国产一区二区三区| 国产成人精品免费| 国产午夜精品久久久久久免费视| 久久99国产精品麻豆| 欧美一区国产二区| 日产精品久久久久久久性色| 欧美日韩一级大片网址| 亚洲美女视频在线| 色吊一区二区三区| 亚洲成av人影院| 这里只有精品视频在线观看| 日本不卡一二三区黄网|