亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
亚洲成人av一区二区| 麻豆精品久久精品色综合| 午夜伊人狠狠久久| 国产精品一区二区x88av| 欧洲国产伦久久久久久久| 精品久久久三级丝袜| 一区二区三区自拍| 成人在线综合网| 日韩欧美中文字幕制服| 亚洲一区二区三区四区不卡| 国产老女人精品毛片久久| 欧美日韩大陆一区二区| 国产精品日日摸夜夜摸av| 婷婷久久综合九色综合绿巨人| 成人爱爱电影网址| 日韩精品中文字幕在线不卡尤物| 亚洲在线视频网站| 91影视在线播放| 国产精品嫩草久久久久| 精品无人码麻豆乱码1区2区| 欧美精品日韩综合在线| 亚洲男人天堂av网| 成人手机在线视频| 久久综合九色综合欧美就去吻| 日韩不卡一区二区三区 | 国产精品自拍毛片| 欧美日韩久久久| 亚洲成av人在线观看| 91成人国产精品| 亚洲美女视频一区| 色偷偷88欧美精品久久久 | 日韩片之四级片| 日本女人一区二区三区| 欧美人狂配大交3d怪物一区| 亚洲国产wwwccc36天堂| 欧美四级电影在线观看| 亚洲国产欧美在线| 欧美日本视频在线| 日韩av电影天堂| 欧美一区二区三区免费大片| 蜜桃视频一区二区三区 | 91久久精品一区二区| 亚洲麻豆国产自偷在线| 91小视频免费观看| 亚洲色大成网站www久久九九| 91免费在线看| 亚洲午夜免费视频| 国产精品午夜在线| 91蝌蚪porny九色| 亚洲一区二区三区在线看| 欧美中文字幕一区二区三区亚洲| 一区二区日韩av| 欧美日韩电影在线播放| 国内一区二区视频| 国产欧美精品一区| 91麻豆福利精品推荐| 日本午夜精品视频在线观看| 精品日韩一区二区三区免费视频| 欧美色综合天天久久综合精品| 肉肉av福利一精品导航| 日韩免费观看高清完整版在线观看| 国产乱码精品一区二区三区忘忧草 | 国产婷婷精品av在线| av一区二区不卡| 亚洲成人你懂的| 精品成人佐山爱一区二区| 成人99免费视频| 亚洲高清免费视频| 久久婷婷久久一区二区三区| 一本到不卡免费一区二区| 日日摸夜夜添夜夜添国产精品 | 日韩一区二区电影| 高清在线观看日韩| 丝袜美腿高跟呻吟高潮一区| 26uuu国产电影一区二区| 97精品久久久久中文字幕 | 亚洲黄网站在线观看| 日韩你懂的在线播放| 91亚洲精品一区二区乱码| 日本亚洲三级在线| 亚洲欧洲国产日本综合| 欧美人与性动xxxx| 国产999精品久久久久久绿帽| 亚洲高清免费在线| 国产精品三级视频| 欧美va亚洲va香蕉在线| 欧美亚洲综合一区| 国产**成人网毛片九色| 日本不卡123| 日韩毛片精品高清免费| 久久久亚洲午夜电影| 精品视频一区二区三区免费| 成人免费的视频| 麻豆免费看一区二区三区| 成人av网站在线观看免费| 蜜臀av国产精品久久久久| 亚洲一区二区三区四区在线免费观看 | 91在线一区二区| 狂野欧美性猛交blacked| 亚洲美女少妇撒尿| 国产精品久久久久永久免费观看| 3d动漫精品啪啪一区二区竹菊 | 国产精品亚洲成人| 蜜桃久久av一区| 亚洲高清一区二区三区| 亚洲色图.com| 亚洲少妇最新在线视频| 国产欧美日韩在线观看| 精品国产乱码久久久久久1区2区 | 国产欧美在线观看一区| 337p粉嫩大胆噜噜噜噜噜91av| 精品视频全国免费看| 色综合久久中文综合久久97| 97精品国产97久久久久久久久久久久| 久久99精品国产.久久久久久| 日韩国产在线观看| 日韩1区2区3区| 丝袜国产日韩另类美女| 亚洲va韩国va欧美va| 天天综合天天做天天综合| av在线一区二区| 福利一区二区在线观看| 国产成人精品免费一区二区| 国产精品1区2区3区| 国产一区二区三区久久久| 奇米四色…亚洲| 麻豆91在线观看| 韩国av一区二区三区四区 | 久久精品欧美一区二区三区麻豆| 久久影院电视剧免费观看| 精品对白一区国产伦| 日本一区二区综合亚洲| 亚洲视频综合在线| 亚洲444eee在线观看| 亚洲高清免费视频| 精品制服美女丁香| 国产99久久精品| 色8久久精品久久久久久蜜| 欧美日韩在线直播| 欧美一区二区三区视频免费播放| 精品久久久久久久久久久院品网 | 91网站最新网址| 在线这里只有精品| 在线播放91灌醉迷j高跟美女| 日韩视频一区二区三区在线播放| 欧美mv和日韩mv国产网站| 日本一区二区在线不卡| 亚洲在线观看免费| 乱一区二区av| www.在线成人| 欧美一区二区三区在线观看| 国产亚洲福利社区一区| 亚洲线精品一区二区三区| 美女视频网站久久| 91在线看国产| 日韩精品专区在线影院观看| 综合精品久久久| 日本欧洲一区二区| 不卡视频在线观看| 欧美一区二区三区啪啪| 中文字幕色av一区二区三区| 麻豆专区一区二区三区四区五区| 91视频.com| 精品国产乱码久久久久久蜜臀 | 久久精品免视看| 亚洲第一主播视频| 成人夜色视频网站在线观看| 日韩欧美中文字幕精品| 一区二区三区四区不卡在线| 国产麻豆午夜三级精品| 欧美精品一二三| 伊人夜夜躁av伊人久久| 国产盗摄视频一区二区三区| 51久久夜色精品国产麻豆| 亚洲日本在线看| 高清视频一区二区| 日韩三级在线免费观看| 亚洲大片免费看| 91蜜桃在线免费视频| 久久蜜桃av一区二区天堂| 麻豆中文一区二区| 欧美手机在线视频| 一区视频在线播放| 国产99久久久精品| 26uuu精品一区二区| 日韩黄色在线观看| 欧美怡红院视频| 亚洲日本免费电影| 成人av电影免费在线播放| 国产无人区一区二区三区| 蜜桃久久久久久| 欧美一级片在线| 免费欧美在线视频| 欧美乱妇一区二区三区不卡视频| 亚洲一区二区三区中文字幕| 色偷偷一区二区三区| 一区二区在线观看视频| 91在线视频免费观看| 综合色天天鬼久久鬼色| av在线综合网|