⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jmpiimpl.cpp

📁 Pegasus is an open-source implementationof the DMTF CIM and WBEM standards. It is designed to be por
💻 CPP
📖 第 1 页 / 共 5 页
字号:
}JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1deleteInstance  (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop){   CIMClient     *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);   CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);   try {      checkNs (cop, jNs);      cCc->deleteInstance (cop->getNameSpace (), *cop);   }   Catch (jEnv);}JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1createInstance  (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jlong jCi){   CIMClient     *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);   CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);   CIMInstance   *ci  = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jCi);   try {      checkNs (cop, jNs);      ci->setPath (*cop);      CIMObjectPath obj = cCc->createInstance (cop->getNameSpace (), *ci);      return DEBUG_ConvertCToJava (CIMObjectPath*, jlong, new CIMObjectPath (obj));   }   Catch (jEnv);   return 0;}JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1modifyInstance  (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jlong jCi,         jboolean iq, jobjectArray jPl){   CIMClient       *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);   CIMObjectPath   *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);   CIMInstance     *ci  = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jCi);   CIMPropertyList  pl  = getList (jEnv, jPl);   try {      checkNs (cop, jNs);      ci->setPath (*cop);      cCc->modifyInstance (cop->getNameSpace (), *ci, (Boolean)iq, pl);   }   Catch (jEnv);}JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1enumerateClasses  (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jboolean deep, jboolean lo, jboolean iq, jboolean ic){   CIMClient     *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);   CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);   try {      checkNs (cop, jNs);      Array<CIMClass> enm = cCc->enumerateClasses (cop->getNameSpace (),                                                   cop->getClassName (),                                                   (Boolean)deep,                                                   (Boolean)lo,                                                   (Boolean)iq,                                                   (Boolean)ic);      return DEBUG_ConvertCToJava (Array<CIMClass>*, jlong, new Array<CIMClass> (enm));   }   Catch (jEnv);   return 0;}JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1enumerateClassNames  (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jboolean deep){   CIMClient        *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);   CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);   CIMNamespaceName  ns  = cop->getNameSpace ();   try {      checkNs (cop, jNs);      Array<CIMName>        enm   = cCc->enumerateClassNames (ns,                                                              cop->getClassName (),                                                              (Boolean)deep);      Array<CIMObjectPath> *enmop = new Array<CIMObjectPath> ();      for (int i = 0, m = enm.size (); i < m; i++)      {         enmop->append (CIMObjectPath (String::EMPTY, ns, enm[i]));      }      return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jlong, enmop);   }   Catch (jEnv);   return 0;}JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1enumerateInstanceNames  (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jboolean deep){   CIMClient     *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);   CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);   try {      checkNs (cop,jNs);      Array<CIMObjectPath> enm = cCc->enumerateInstanceNames (cop->getNameSpace (),                                                              cop->getClassName ()); //, (Boolean)deep);      return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jlong, new Array<CIMObjectPath> (enm));   }   Catch (jEnv);   return 0;}JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1enumerateInstances  (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jboolean deep, jboolean lo,         jboolean iq, jboolean ic, jobjectArray jPl){   CIMClient       *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);   CIMObjectPath   *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);   CIMPropertyList  pl  = getList (jEnv,jPl);   try {      checkNs (cop, jNs);      CIMPropertyList    props;      Array<CIMInstance> enm = cCc->enumerateInstances (cop->getNameSpace (),                                                        cop->getClassName (),                                                        (Boolean)deep,                                                        (Boolean)lo,                                                        (Boolean)iq,                                                        (Boolean)ic,pl);      return DEBUG_ConvertCToJava (Array<CIMInstance>*, jlong, new Array<CIMInstance> (enm));   }   Catch (jEnv);   return 0;}JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1enumerateQualifiers  (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop){   CIMClient     *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);   CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);   try {      checkNs (cop, jNs);      Array<CIMQualifierDecl> enm = cCc->enumerateQualifiers (cop->getNameSpace ());      return DEBUG_ConvertCToJava (Array<CIMQualifierDecl>*, jlong, new Array<CIMQualifierDecl> (enm));   }   Catch (jEnv);   return 0;}JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1getQualifier  (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop){   CIMClient     *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);   CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);   try {      checkNs (cop,jNs);      CIMQualifierDecl *val = new CIMQualifierDecl (cCc->getQualifier (cop->getNameSpace (),                                                                       cop->getClassName ()));      return DEBUG_ConvertCToJava (CIMQualifierDecl*, jlong, val);   }   Catch (jEnv);   return 0;}JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1setQualifier  (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jlong jQ){   CIMClient        *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);   CIMObjectPath    *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);   CIMQualifierDecl *qt  = DEBUG_ConvertJavaToC (jlong, CIMQualifierDecl*, jQ);   try {      checkNs (cop, jNs);      cCc->setQualifier (cop->getNameSpace (), *qt);   }   Catch (jEnv);}JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1deleteQualifier  (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop){   CIMClient     *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);   CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);   try {      checkNs (cop, jNs);      cCc->deleteQualifier (cop->getNameSpace (), cop->getClassName ());   }   Catch (jEnv);}JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1getProperty  (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jstring jPn){   CIMClient     *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);   CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);   const char    *str = jEnv->GetStringUTFChars (jPn, NULL);   CIMName        pName (str);   jlong          jCv = 0;   try {      checkNs (cop, jNs);      CIMValue *val = new CIMValue (cCc->getProperty (cop->getNameSpace (), *cop, pName));      jCv = DEBUG_ConvertCToJava (CIMValue*, jlong, val);   }   Catch (jEnv);   jEnv->ReleaseStringUTFChars (jPn, str);   return jCv;}JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1setProperty  (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jstring jPn, jlong jV){   CIMClient     *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);   CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);   CIMValue      *val = DEBUG_ConvertJavaToC (jlong, CIMValue*, jV);   const char    *str = jEnv->GetStringUTFChars (jPn, NULL);   CIMName        pName (str);   try {      checkNs (cop,jNs);      cCc->setProperty (cop->getNameSpace (), *cop, pName, *val);   }   Catch (jEnv);   jEnv->ReleaseStringUTFChars (jPn, str);}JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1execQuery  (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jstring jQuery, jstring jQl){   CIMClient     *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);   CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);   const char    *str = jEnv->GetStringUTFChars (jQuery, NULL);   String         query (str);/* @NOTE** This does not work for some reason on the client java code:**   DDD (PEGASUS_STD (cout)<<"--- JMPIjvm::Java_org_pegasus_jmpi_CIMClient__1execQuery: jEnv = "<<PEGASUS_STD (hex)<< (long)jEnv<<", jThs = "<< (long)jThs<<PEGASUS_STD (dec)<<", jCc = "<<jCc<<", jNs = "<<jNs<<", jCop = "<<jCop<<", jQuery = "<<PEGASUS_STD (hex)<< (long)jQuery<<", jQl = "<< (long)jQl<<PEGASUS_STD (dec)<<PEGASUS_STD (endl));** What does work is:**   printf ("This is a test\n");**** To debug these JNI functions insert the following:**    if (getenv ("PEGASUS_JMPI_GDB"))**    {**       bool fLoop = true;**       int  i     = 0;****       while (fLoop)**       {**          i = 1;**       }**    }** Export the variable PEGASUS_JMPI_GDB = 1.** Start gdb in another process.**    shell ps -efl**    att <ps number>**    set fLoop = 0*/   jEnv->ReleaseStringUTFChars (jQuery, str);   str = jEnv->GetStringUTFChars (jQl, NULL);   String ql (str);   jEnv->ReleaseStringUTFChars (jQl, str);   try {      checkNs (cop, jNs);      Array<CIMObject>    enm     = cCc->execQuery (cop->getNameSpace (),                                                    ql,                                                    query);      Array<CIMInstance> *enmInst = new Array<CIMInstance> ();      for (int i = 0,m = enm.size (); i<m; i++)      {         enmInst->append (CIMInstance (enm[i]));      }      return DEBUG_ConvertCToJava (Array<CIMInstance>*, jlong, enmInst);   }   Catch (jEnv);   return 0;}JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1invokeMethod  (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jstring jMn, jobject jIn, jobject jOut){   JMPIjvm::cacheIDs (jEnv);   CIMClient            *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);   CIMObjectPath        *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);   const char           *str = jEnv->GetStringUTFChars (jMn, NULL);   CIMName               method (str);   jlong                 jCv = 0;   Array<CIMParamValue>  in;   Array<CIMParamValue>  out;   for (int i = 0,m = jEnv->CallIntMethod (jIn,JMPIjvm::jv.VectorSize); i<m; i++)   {       JMPIjvm::checkException (jEnv);       jobject jProp = jEnv->CallObjectMethod (jIn,JMPIjvm::jv.VectorElementAt,i);       JMPIjvm::checkException (jEnv);       jlong        jp = jEnv->CallLongMethod (jProp,JMPIjvm::jv.CIMPropertyCInst);       CIMProperty *p  = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jp);       JMPIjvm::checkException (jEnv);       in.append (CIMParamValue (p->getName ().getString (),p->getValue ()));   }   try {      checkNs (cop, jNs);      CIMValue *val = new CIMValue (cCc->invokeMethod (cop->getNameSpace (),*cop,method,in,out));      for (int i = 0,m = out.size (); i<m; i++)      {         const CIMParamValue &parm = out[i];         const CIMValue       v    = parm.getValue ();         CIMProperty         *p    = new CIMProperty (parm.getParameterName (),v,v.getArraySize ());         jlong                jp   = DEBUG_ConvertCToJava (CIMProperty*, jlong, p);         jobject              prop = jEnv->NewObject (JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewJ,jp);         jEnv->CallVoidMethod (jOut,JMPIjvm::jv.VectorAddElement,prop);      }      jCv = DEBUG_ConvertCToJava (CIMValue*, jlong, val);   }   Catch (jEnv);   jEnv->ReleaseStringUTFChars (jMn,str);   return jCv;}JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1invokeMethod24  (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jstring jMn,        jobjectArray jIn, jobjectArray jOut){   JMPIjvm::cacheIDs (jEnv);   CIMClient            *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);   CIMObjectPath        *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);   const char           *str = jEnv->GetStringUTFChars (jMn, NULL);   CIMName               method (str);   jlong                 jCv = 0;   Array<CIMParamValue> in;   Array<CIMParamValue> out;   if (jIn)   {      for (int i = 0, m = jEnv->GetArrayLength (jIn); i < m; i++)      {          JMPIjvm::checkException (jEnv);          jobject jArg = jEnv->GetObjectArrayElement (jIn, i);          JMPIjvm::checkException (jEnv);          jlong          jp = jEnv->CallLongMethod (jArg,JMPIjvm::jv.CIMArgumentCInst);    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -