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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? clipsjni_environment.c

?? clips源代碼
?? C
?? 第 1 頁 / 共 3 頁
字號(hào):
   /*=========================================*/
   /* If the Java classes could not be found, */
   /* abort creation of the environment.      */
   /*=========================================*/
   
   if ((theLongClass == NULL) || (theDoubleClass == NULL) ||
       (theArrayListClass == NULL) ||
       (theVoidValueClass == NULL) ||
       (theIntegerValueClass == NULL) || (theFloatValueClass == NULL) ||
       (theSymbolValueClass == NULL) || (theStringValueClass == NULL) || 
       (theInstanceNameValueClass == NULL) ||
       (theMultifieldValueClass == NULL) ||
       (theFactAddressValueClass == NULL) ||
       (theInstanceAddressValueClass == NULL))
     { return((jlong) NULL); }
     
   /*================================*/
   /* Look up the Java init methods. */
   /*================================*/
   
   theLongInitMethod = (*env)->GetMethodID(env,theLongClass,"<init>","(J)V");
   theDoubleInitMethod = (*env)->GetMethodID(env,theDoubleClass,"<init>","(D)V");
   theArrayListInitMethod = (*env)->GetMethodID(env,theArrayListClass,"<init>","(I)V");
   theArrayListAddMethod = (*env)->GetMethodID(env,theArrayListClass,"add","(Ljava/lang/Object;)Z");
   theVoidValueInitMethod = (*env)->GetMethodID(env,theVoidValueClass,"<init>","()V");
   theIntegerValueInitMethod = (*env)->GetMethodID(env,theIntegerValueClass,"<init>","(Ljava/lang/Long;)V");
   theFloatValueInitMethod = (*env)->GetMethodID(env,theFloatValueClass,"<init>","(Ljava/lang/Double;)V");
   theSymbolValueInitMethod = (*env)->GetMethodID(env,theSymbolValueClass,"<init>","(Ljava/lang/String;)V");
   theStringValueInitMethod = (*env)->GetMethodID(env,theStringValueClass,"<init>","(Ljava/lang/String;)V");
   theInstanceNameValueInitMethod = (*env)->GetMethodID(env,theInstanceNameValueClass,"<init>","(Ljava/lang/String;)V");
   theMultifieldValueInitMethod = (*env)->GetMethodID(env,theMultifieldValueClass,"<init>","(Ljava/util/List;)V");
   theFactAddressValueInitMethod = (*env)->GetMethodID(env,theFactAddressValueClass,"<init>","(JLCLIPSJNI/Environment;)V");
   theInstanceAddressValueInitMethod = (*env)->GetMethodID(env,theInstanceAddressValueClass,"<init>","(JLCLIPSJNI/Environment;)V");
     
   /*==============================================*/
   /* If the Java init methods could not be found, */
   /* abort creation of the enviroment.            */
   /*==============================================*/
   
   if ((theLongInitMethod == NULL) || (theDoubleInitMethod == NULL) || 
       (theArrayListInitMethod == NULL) || (theArrayListAddMethod == NULL) ||
       (theVoidValueInitMethod == NULL) ||
       (theIntegerValueInitMethod == NULL) || (theFloatValueInitMethod == NULL) ||
       (theSymbolValueInitMethod == NULL) || (theStringValueInitMethod == NULL) ||
       (theInstanceNameValueInitMethod == NULL) ||
       (theMultifieldValueInitMethod == NULL) ||
       (theFactAddressValueInitMethod == NULL) ||
       (theInstanceAddressValueInitMethod == NULL))
     { return((jlong) NULL); }
     
   /*=========================*/
   /* Create the environment. */
   /*=========================*/
   
   theEnv = CreateEnvironment();
   if (theEnv == NULL) return((jlong) NULL);
   
   /*====================================*/
   /* Allocate the JNI environment data. */
   /*====================================*/
   
   AllocateEnvironmentData(theEnv,CLIPSJNI_DATA,sizeof(struct clipsJNIData),DeallocateJNIData);
   
   /*===================================================*/
   /* Cache the class and method references (converting */
   /* the local class references to global references   */
   /* so they won't be garbage collected.               */
   /*===================================================*/

   CLIPSJNIData(theEnv)->longClass = (*env)->NewGlobalRef(env,theLongClass);
   CLIPSJNIData(theEnv)->longInitMethod = theLongInitMethod;
   CLIPSJNIData(theEnv)->doubleClass = (*env)->NewGlobalRef(env,theDoubleClass);
   CLIPSJNIData(theEnv)->doubleInitMethod = theDoubleInitMethod;
   CLIPSJNIData(theEnv)->arrayListClass = (*env)->NewGlobalRef(env,theArrayListClass);
   CLIPSJNIData(theEnv)->arrayListInitMethod = theArrayListInitMethod;
   CLIPSJNIData(theEnv)->arrayListAddMethod = theArrayListAddMethod;

   CLIPSJNIData(theEnv)->voidValueClass = (*env)->NewGlobalRef(env,theVoidValueClass);
   CLIPSJNIData(theEnv)->voidValueInitMethod = theVoidValueInitMethod;
   
   CLIPSJNIData(theEnv)->integerValueClass = (*env)->NewGlobalRef(env,theIntegerValueClass);
   CLIPSJNIData(theEnv)->integerValueInitMethod = theIntegerValueInitMethod;
   CLIPSJNIData(theEnv)->floatValueClass = (*env)->NewGlobalRef(env,theFloatValueClass);
   CLIPSJNIData(theEnv)->floatValueInitMethod = theFloatValueInitMethod;
      
   CLIPSJNIData(theEnv)->symbolValueClass = (*env)->NewGlobalRef(env,theSymbolValueClass);
   CLIPSJNIData(theEnv)->symbolValueInitMethod = theSymbolValueInitMethod;
   CLIPSJNIData(theEnv)->stringValueClass = (*env)->NewGlobalRef(env,theStringValueClass);
   CLIPSJNIData(theEnv)->stringValueInitMethod = theStringValueInitMethod;
   CLIPSJNIData(theEnv)->instanceNameValueClass = (*env)->NewGlobalRef(env,theInstanceNameValueClass);
   CLIPSJNIData(theEnv)->instanceNameValueInitMethod = theInstanceNameValueInitMethod;

   CLIPSJNIData(theEnv)->multifieldValueClass = (*env)->NewGlobalRef(env,theMultifieldValueClass);
   CLIPSJNIData(theEnv)->multifieldValueInitMethod = theMultifieldValueInitMethod;

   CLIPSJNIData(theEnv)->factAddressValueClass = (*env)->NewGlobalRef(env,theFactAddressValueClass);
   CLIPSJNIData(theEnv)->factAddressValueInitMethod = theFactAddressValueInitMethod;

   CLIPSJNIData(theEnv)->instanceAddressValueClass = (*env)->NewGlobalRef(env,theInstanceAddressValueClass);
   CLIPSJNIData(theEnv)->instanceAddressValueInitMethod = theInstanceAddressValueInitMethod;
   
   /*======================================*/
   /* Store the java environment for later */
   /* access by the CLIPS environment.     */
   /*======================================*/
   
   SetEnvironmentContext(theEnv,(void *) env);
     
   /*=======================================*/
   /* Deallocate the local Java references. */
   /*=======================================*/
   
   (*env)->DeleteLocalRef(env,theLongClass);
   (*env)->DeleteLocalRef(env,theDoubleClass);
   (*env)->DeleteLocalRef(env,theArrayListClass);
   (*env)->DeleteLocalRef(env,theVoidValueClass);
   (*env)->DeleteLocalRef(env,theIntegerValueClass);
   (*env)->DeleteLocalRef(env,theFloatValueClass);
   (*env)->DeleteLocalRef(env,theSymbolValueClass);
   (*env)->DeleteLocalRef(env,theStringValueClass);
   (*env)->DeleteLocalRef(env,theInstanceNameValueClass);
   (*env)->DeleteLocalRef(env,theMultifieldValueClass);
   (*env)->DeleteLocalRef(env,theFactAddressValueClass);
   (*env)->DeleteLocalRef(env,theInstanceAddressValueClass);
   
   /*=========================*/
   /* Return the environment. */
   /*=========================*/
   
   return ((jlong) theEnv);
  }

/*********************************************/
/* Java_CLIPSJNI_Environment_clear: Native   */ 
/*   function for the CLIPSJNI clear method. */
/*                                           */
/* Class:     CLIPSJNI_Environment           */
/* Method:    clear                          */
/* Signature: (J)V                           */
/*********************************************/
JNIEXPORT void JNICALL Java_CLIPSJNI_Environment_clear(
  JNIEnv *env, 
  jobject obj,
  jlong clipsEnv)
  {
   EnvClear((void *) clipsEnv);
  }

/*********************************************/
/* Java_CLIPSJNI_Environment_reset: Native   */ 
/*   function for the CLIPSJNI reset method. */
/*                                           */
/* Class:     CLIPSJNI_Environment           */
/* Method:    reset                          */
/* Signature: (J)V                           */
/*********************************************/
JNIEXPORT void JNICALL Java_CLIPSJNI_Environment_reset(
  JNIEnv *env, 
  jobject obj,
  jlong clipsEnv)
  {
   EnvReset((void *) clipsEnv);
  }

/********************************************/
/* Java_CLIPSJNI_Environment_load: Native   */ 
/*   function for the CLIPSJNI load method. */
/*                                          */
/* Class:     CLIPSJNI_Environment          */
/* Method:    load                          */
/* Signature: (JLjava/lang/String;)V        */
/********************************************/
JNIEXPORT void JNICALL Java_CLIPSJNI_Environment_load(
  JNIEnv *env, 
  jobject obj,
  jlong clipsEnv,
  jstring fileName)
  {
   const char *cFileName = (*env)->GetStringUTFChars(env,fileName,NULL);

   EnvLoad((void *) clipsEnv,(char *) cFileName);
   
   (*env)->ReleaseStringUTFChars(env,fileName,cFileName);
  }

/**************************************************/
/* Java_CLIPSJNI_Environment_run: Native function */ 
/*   for the CLIPSJNI run method.                 */
/*                                                */
/* Class:     CLIPSJNI_Environment                */
/* Method:    run                                 */
/* Signature: (JJ)J                               */
/**************************************************/
JNIEXPORT jlong JNICALL Java_CLIPSJNI_Environment_run(
  JNIEnv *env, 
  jobject obj, 
  jlong clipsEnv,
  jlong runLimit)
  {
   return EnvRun((void *) clipsEnv,runLimit);
  }

/*************************************************************/
/* Java_CLIPSJNI_Environment_eval: Native function for the   */
/*   CLIPSJNI eval method.                                   */
/*                                                           */
/* Class:     CLIPSJNI_Environment                           */
/* Method:    eval                                           */
/* Signature: (JLjava/lang/String;)LCLIPSJNI/PrimitiveValue; */
/*                                                           */
/*************************************************************/
JNIEXPORT jobject JNICALL Java_CLIPSJNI_Environment_eval(
  JNIEnv *env,
  jobject obj,
  jlong clipsEnv,
  jstring evalStr)
  {
   DATA_OBJECT theDO;
   jobject result = NULL;
   void *theCLIPSEnv = (void *) clipsEnv;
   
   const char *cEvalStr = (*env)->GetStringUTFChars(env,evalStr,NULL);
   
   EnvEval(theCLIPSEnv,(char *) cEvalStr,&theDO);

   (*env)->ReleaseStringUTFChars(env,evalStr,cEvalStr);
   
   result = ConvertDataObject(env,obj,theCLIPSEnv,&theDO);

   return result;  
  }

/**********************/
/* ConvertDataObject: */
/**********************/
static jobject ConvertDataObject(
  JNIEnv *env,
  jobject javaEnv,
  void *clipsEnv,
  DATA_OBJECT *theDO)
  {
   jobject result = NULL, tresult;
   jint mfLength;
   struct multifield *theList;
   long i;
   
   switch(GetpType(theDO))
     {
      case MULTIFIELD:
        mfLength = GetpDOLength(theDO);

        result = (*env)->NewObject(env,
                                   CLIPSJNIData(clipsEnv)->arrayListClass,
                                   CLIPSJNIData(clipsEnv)->arrayListInitMethod,
                                   (jint) mfLength);
                                   
        if (result == NULL)
          { return result; }
          
        theList = (struct multifield *) DOPToPointer(theDO);
        
        for (i = GetpDOBegin(theDO); i <= GetpDOEnd(theDO); i++)
         {
          tresult = ConvertSingleFieldValue(env,javaEnv,clipsEnv,GetMFType(theList,i),GetMFValue(theList,i));
          
          if (tresult != NULL)
             { (*env)->CallBooleanMethod(env,result,CLIPSJNIData(clipsEnv)->arrayListAddMethod,tresult); }

          (*env)->DeleteLocalRef(env,tresult);
         }
       
        tresult = result;
         
        result = (*env)->NewObject(env,
                                   CLIPSJNIData(clipsEnv)->multifieldValueClass,
                                   CLIPSJNIData(clipsEnv)->multifieldValueInitMethod,
                                   tresult);
        break;
        
      case RVOID:
      case SYMBOL:
      case STRING:
      case INSTANCE_NAME:
      case INTEGER:
      case FLOAT:
      case FACT_ADDRESS:
      case INSTANCE_ADDRESS:
        result = ConvertSingleFieldValue(env,javaEnv,clipsEnv,GetpType(theDO),GetpValue(theDO));
        break;

      default: 
        break;
     }

   return result;  
  }
  
/****************************/
/* ConvertSingleFieldValue: */
/****************************/
static jobject ConvertSingleFieldValue(
  JNIEnv *env,
  jobject javaEnv,
  void *clipsEnv,
  int type,
  void  *value)
  {
   jobject result = NULL, tresult;
   jstring sresult = NULL;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91蝌蚪porny| 亚洲乱码国产乱码精品精98午夜 | 亚洲电影在线免费观看| 91麻豆.com| 国产日韩欧美不卡在线| 视频一区二区国产| 欧美性受极品xxxx喷水| 136国产福利精品导航| 毛片av一区二区| 欧美色倩网站大全免费| 亚洲精品福利视频网站| 国产99久久久国产精品潘金网站| 欧美日韩国产高清一区二区 | 国产成人精品一区二区三区四区 | 精品在线亚洲视频| 欧美日韩亚洲高清一区二区| 中文字幕一区二区不卡| 成熟亚洲日本毛茸茸凸凹| 中文字幕亚洲区| 91免费在线视频观看| 丝袜美腿高跟呻吟高潮一区| 成人免费福利片| 日韩精品中文字幕一区| 国产亚洲一区二区在线观看| 欧美电影一区二区| 欧美美女直播网站| 国产精品久久久久婷婷| 精品国产一区a| 日韩一区二区三区免费看 | 国产91在线|亚洲| 久热成人在线视频| 日韩和欧美的一区| 亚洲va韩国va欧美va精品| 亚洲乱码国产乱码精品精的特点| 国产精品欧美一区喷水| 中文字幕欧美区| 欧美激情一二三区| 国产精品三级电影| 国产精品国模大尺度视频| 国产精品―色哟哟| 国产精品高清亚洲| 亚洲三级理论片| 亚洲一区二区中文在线| 亚洲国产婷婷综合在线精品| 午夜精品爽啪视频| 琪琪一区二区三区| 国产在线观看一区二区| 国产精品一区二区果冻传媒| 国产成人综合自拍| 成人av片在线观看| 91国产福利在线| 欧美老年两性高潮| 欧美大尺度电影在线| 久久久久久久久99精品| 欧美经典一区二区| 国产精品久久久久久久第一福利| 亚洲激情网站免费观看| 性欧美大战久久久久久久久| 免费成人小视频| 国产乱理伦片在线观看夜一区| 成人午夜私人影院| 欧美色老头old∨ideo| 欧美一区二区大片| 久久久久久久久久久久电影| 亚洲色图丝袜美腿| 丝袜亚洲精品中文字幕一区| 国产一区二区三区香蕉| 色综合中文字幕国产 | 亚洲一二三区不卡| 日韩高清一级片| 国产乱码一区二区三区| 91丨九色丨蝌蚪富婆spa| 欧美日本国产视频| 国产婷婷一区二区| 亚洲一区二区三区四区在线观看| 免费成人美女在线观看| 91精品国产色综合久久不卡电影| 欧美日韩在线观看一区二区 | 国产成人av一区二区三区在线| 美女脱光内衣内裤视频久久网站| 美女网站色91| 成人免费观看av| 欧美性欧美巨大黑白大战| 欧美麻豆精品久久久久久| 国产农村妇女毛片精品久久麻豆| 欧美日韩在线不卡| 欧美日韩亚洲丝袜制服| 国产亚洲欧美在线| 亚洲午夜精品网| 国产成人亚洲综合a∨婷婷| 日本久久一区二区三区| 日韩免费观看高清完整版在线观看| 国产精品成人免费在线| 日本中文一区二区三区| 成人高清在线视频| 日韩欧美在线观看一区二区三区| 亚洲欧美在线视频| 国产曰批免费观看久久久| 色婷婷久久久综合中文字幕| 久久久www成人免费毛片麻豆 | 色屁屁一区二区| 久久一二三国产| 亚洲国产一区二区三区 | 国产成人精品www牛牛影视| 欧美日韩三级一区| 综合av第一页| 国产成人日日夜夜| 欧美r级在线观看| 亚洲成av人片在线观看| 99久久99久久久精品齐齐| 精品国产伦理网| 日韩精品1区2区3区| 欧美色区777第一页| 亚洲日本成人在线观看| 成人高清在线视频| 国产欧美一区二区在线观看| 青青青伊人色综合久久| 在线视频国产一区| 日韩美女视频一区二区| 成年人午夜久久久| 久久夜色精品一区| 国产在线播精品第三| 日韩区在线观看| 麻豆久久久久久久| 日韩视频免费观看高清完整版| 91蝌蚪porny成人天涯| 国产精品国产三级国产| 欧美成人高清电影在线| 捆绑变态av一区二区三区| 欧美videos大乳护士334| 高清成人在线观看| 亚洲美女偷拍久久| 制服丝袜亚洲播放| 国产超碰在线一区| 一区二区三区波多野结衣在线观看 | 蜜臀av在线播放一区二区三区| 99re视频精品| 中文字幕制服丝袜一区二区三区| 国产91精品欧美| 中文一区在线播放| 成人h动漫精品| 亚洲猫色日本管| 欧美视频在线不卡| 天天综合网天天综合色| 制服视频三区第一页精品| 麻豆91在线观看| 久久久一区二区三区| 国产成人午夜精品5599| 国产精品网站一区| 色悠久久久久综合欧美99| 亚洲制服丝袜一区| 欧美一区午夜精品| 极品瑜伽女神91| 欧美激情中文字幕| 色狠狠一区二区| 午夜精品久久一牛影视| 精品国一区二区三区| 福利电影一区二区| 亚洲免费视频中文字幕| 欧美日韩精品一区二区三区 | 精品黑人一区二区三区久久| 国产乱码精品1区2区3区| 国产精品久久久久久久第一福利 | 国产一区二区三区视频在线播放| 国产精品三级av在线播放| 99久久综合国产精品| 欧美日本国产一区| 日韩精品专区在线影院观看 | 99精品黄色片免费大全| 欧美日韩久久一区二区| 日本不卡视频在线| 亚洲国产成人在线| 在线视频你懂得一区二区三区| 秋霞电影网一区二区| 国产精品久久久久久久久果冻传媒| 91丝袜高跟美女视频| 欧美精品tushy高清| 91福利在线免费观看| 777亚洲妇女| 日韩欧美亚洲国产另类| 日韩久久精品一区| 国产欧美日韩在线视频| 1000部国产精品成人观看| 亚洲青青青在线视频| 亚洲三级免费电影| 青青草国产成人av片免费| 精彩视频一区二区三区| 懂色中文一区二区在线播放| 91视频观看免费| 欧洲一区在线观看| 亚洲国产精品黑人久久久| 欧美综合欧美视频| 国产在线精品不卡| 亚洲一区在线视频| 国产欧美在线观看一区| 欧美高清www午色夜在线视频| 成人综合婷婷国产精品久久免费| 日韩va亚洲va欧美va久久| 亚洲欧美综合网| 久久精品亚洲精品国产欧美kt∨ |