(file) Return to JMPIImpl.cpp CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / ProviderManager2 / JMPI

Diff for /pegasus/src/Pegasus/ProviderManager2/JMPI/JMPIImpl.cpp between version 1.40 and 1.43

version 1.40, 2006/05/09 16:34:59 version 1.43, 2006/06/09 15:37:55
Line 61 
Line 61 
 #include <Pegasus/Provider/CIMOMHandle.h> #include <Pegasus/Provider/CIMOMHandle.h>
 #include <Pegasus/Client/CIMClient.h> #include <Pegasus/Client/CIMClient.h>
 #include <Pegasus/ProviderManager2/JMPI/JMPIProviderManager.h> #include <Pegasus/ProviderManager2/JMPI/JMPIProviderManager.h>
 #include <Pegasus/ProviderManager2/CMPI/CMPI_SelectExp.h>  #include <Pegasus/WQL/WQLSelectStatement.h>
   #include <Pegasus/WQL/WQLParser.h>
   #define CALL_SIGN_WQL "WQL"
  
 PEGASUS_USING_STD; PEGASUS_USING_STD;
 PEGASUS_NAMESPACE_BEGIN PEGASUS_NAMESPACE_BEGIN
Line 222 
Line 224 
  
 int JMPIjvm::cacheIDs(JNIEnv *env) int JMPIjvm::cacheIDs(JNIEnv *env)
 { {
    DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): enter"<<PEGASUS_STD(endl));  
   
    if (methodInitDone==1)    if (methodInitDone==1)
       return JNI_TRUE;       return JNI_TRUE;
    if (methodInitDone==-1)    if (methodInitDone==-1)
       return JNI_FALSE;       return JNI_FALSE;
  
      DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): enter"<<PEGASUS_STD(endl));
   
    methodInitDone=-1;    methodInitDone=-1;
  
    for (unsigned i=0; i<(sizeof(classNames)/sizeof(classNames[0])); i++) {    for (unsigned i=0; i<(sizeof(classNames)/sizeof(classNames[0])); i++) {
Line 1178 
Line 1180 
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1invokeMethod24 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1invokeMethod24
   (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop, jstring jMn,   (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop, jstring jMn,
         jobjectArray jIn, jobjectArray jOut)         jobjectArray jIn, jobjectArray jOut)
   
 { {
    JMPIjvm::cacheIDs(jEnv);    JMPIjvm::cacheIDs(jEnv);
  
Line 1192 
Line 1195 
    Array<CIMParamValue> in;    Array<CIMParamValue> in;
    Array<CIMParamValue> out;    Array<CIMParamValue> out;
  
      if (jIn)
      {
    for (int i=0,m=jEnv->GetArrayLength(jIn); i<m; i++) {    for (int i=0,m=jEnv->GetArrayLength(jIn); i<m; i++) {
        JMPIjvm::checkException(jEnv);        JMPIjvm::checkException(jEnv);
  
Line 1205 
Line 1210 
  
        in.append(*p);        in.append(*p);
    }    }
      }
    try {    try {
       CIMValue *val=new CIMValue(ch->invokeMethod(ctx,cop->getNameSpace(),*cop,method,in,out));       CIMValue *val=new CIMValue(ch->invokeMethod(ctx,cop->getNameSpace(),*cop,method,in,out));
  
         if (jOut)
         {
       for (int i=0,m=out.size(),o=jEnv->GetArrayLength(jOut); i<m && i<o; i++) {       for (int i=0,m=out.size(),o=jEnv->GetArrayLength(jOut); i<m && i<o; i++) {
          CIMParamValue *parm  = new CIMParamValue (out[i]);          CIMParamValue *parm  = new CIMParamValue (out[i]);
          jint           jParm = DEBUG_ConvertCToJava (CIMParamValue*, jint, parm);          jint           jParm = DEBUG_ConvertCToJava (CIMParamValue*, jint, parm);
Line 1215 
Line 1223 
          jEnv->SetObjectArrayElement(jOut,i,          jEnv->SetObjectArrayElement(jOut,i,
                                      jEnv->NewObject(JMPIjvm::jv.CIMArgumentClassRef,JMPIjvm::jv.CIMArgumentNewI,jParm));                                      jEnv->NewObject(JMPIjvm::jv.CIMArgumentClassRef,JMPIjvm::jv.CIMArgumentNewI,jParm));
       }       }
         }
       return DEBUG_ConvertCToJava (CIMValue*, jint, val);       return DEBUG_ConvertCToJava (CIMValue*, jint, val);
    }    }
    Catch(jEnv);    Catch(jEnv);
Line 3008 
Line 3017 
  
       delete cp;       delete cp;
  
         DEBUG_ConvertCleanup (jint, jP);
   
       return DEBUG_ConvertCToJava (CIMProperty*, jint, np);       return DEBUG_ConvertCToJava (CIMProperty*, jint, np);
    }    }
    else    else
Line 3267 
Line 3278 
 { {
    CIMMethod *cm = DEBUG_ConvertJavaToC (jint, CIMMethod*, jM);    CIMMethod *cm = DEBUG_ConvertJavaToC (jint, CIMMethod*, jM);
  
    return DEBUG_ConvertCToJava (CIMType, jint, new CIMType (cm->getType()));     return DEBUG_ConvertCToJava (CIMType *, jint, new CIMType (cm->getType()));
 } }
  
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMMethod__1finalize JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMMethod__1finalize
Line 4819 
Line 4830 
    Array<CIMParamValue> in;    Array<CIMParamValue> in;
    Array<CIMParamValue> out;    Array<CIMParamValue> out;
  
      if (jIn)
      {
    for (int i=0,m=jEnv->GetArrayLength(jIn); i<m; i++) {    for (int i=0,m=jEnv->GetArrayLength(jIn); i<m; i++) {
        JMPIjvm::checkException(jEnv);        JMPIjvm::checkException(jEnv);
  
Line 4832 
Line 4845 
  
        in.append(*p);        in.append(*p);
    }    }
      }
    try {    try {
       checkNs(cop,jNs);       checkNs(cop,jNs);
       CIMValue *val=new CIMValue(cCc->invokeMethod(cop->getNameSpace(),*cop,method,in,out));       CIMValue *val=new CIMValue(cCc->invokeMethod(cop->getNameSpace(),*cop,method,in,out));
  
         if (jOut)
         {
       for (int i=0,m=out.size(),o=jEnv->GetArrayLength(jOut); i<m && i<o; i++) {       for (int i=0,m=out.size(),o=jEnv->GetArrayLength(jOut); i<m && i<o; i++) {
          CIMParamValue *parm  = new CIMParamValue (out[i]);          CIMParamValue *parm  = new CIMParamValue (out[i]);
          jint           jParm = DEBUG_ConvertCToJava (CIMParamValue*, jint, parm);          jint           jParm = DEBUG_ConvertCToJava (CIMParamValue*, jint, parm);
Line 4844 
Line 4860 
                                      i,                                      i,
                                      jEnv->NewObject(JMPIjvm::jv.CIMArgumentClassRef,JMPIjvm::jv.CIMArgumentNewI,jParm));                                      jEnv->NewObject(JMPIjvm::jv.CIMArgumentClassRef,JMPIjvm::jv.CIMArgumentNewI,jParm));
       }       }
         }
       jCv = DEBUG_ConvertCToJava (CIMValue*, jint, val);       jCv = DEBUG_ConvertCToJava (CIMValue*, jint, val);
    }    }
    Catch(jEnv);    Catch(jEnv);
Line 5159 
Line 5176 
 // ------------------------------------- // -------------------------------------
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMObject__1newClass JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMObject__1newClass
   (JNIEnv *jEnv, jobject jThs, jobject jCc)    (JNIEnv *jEnv, jobject jThs, jint jCc)
 { {
    CIMClass *cCc = DEBUG_ConvertJavaToC (jint, CIMClass*, jCc);    CIMClass *cCc = DEBUG_ConvertJavaToC (jint, CIMClass*, jCc);
  
Line 5174 
Line 5191 
 } }
  
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMObject__1newInstance JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMObject__1newInstance
   (JNIEnv *jEnv, jobject jThs, jobject jCi)    (JNIEnv *jEnv, jobject jThs, jint jCi)
 { {
    CIMInstance *cCi = DEBUG_ConvertJavaToC (jint, CIMInstance*, jCi);    CIMInstance *cCi = DEBUG_ConvertJavaToC (jint, CIMInstance*, jCi);
  
Line 5363 
Line 5380 
  * Signature: (I)V  * Signature: (I)V
  */  */
 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_SelectExp__1finalize JNIEXPORT void JNICALL Java_org_pegasus_jmpi_SelectExp__1finalize
   (JNIEnv *jEnv, jobject jThs, jint jEselx)    (JNIEnv *jEnv, jobject jThs, jint jWQLStmt)
 { {
    CMPI_SelectExp *eSelx = DEBUG_ConvertJavaToC (jint, CMPI_SelectExp*, jEselx);     WQLSelectStatement *wql_stmt = DEBUG_ConvertJavaToC (jint, WQLSelectStatement*, jWQLStmt);
  
    delete eSelx;     delete wql_stmt;
  
    DEBUG_ConvertCleanup (jint, eSelx);     DEBUG_ConvertCleanup (jint, jWQLStmt);
 } }
  
 /* /*
Line 5381 
Line 5398 
   (JNIEnv *jEnv, jobject jThs, jstring jQuery)   (JNIEnv *jEnv, jobject jThs, jstring jQuery)
 { {
    const char         *pszQuery = jEnv->GetStringUTFChars (jQuery, NULL);    const char         *pszQuery = jEnv->GetStringUTFChars (jQuery, NULL);
    CMPI_SelectExp     *eSelx    = NULL;     WQLSelectStatement *wql_stmt = NULL;
    WQLSelectStatement *stmt     = NULL;  
    String              queryLanguage (CALL_SIGN_WQL);    String              queryLanguage (CALL_SIGN_WQL);
    String              query (pszQuery);    String              query (pszQuery);
  
    stmt  = new WQLSelectStatement (queryLanguage, query);     wql_stmt = new WQLSelectStatement (queryLanguage, query);
    eSelx = new CMPI_SelectExp (stmt);     DDD(PEGASUS_STD(cout)<<"--- Java_org_pegasus_jmpi_SelectExp__1newSelectExp: wql_stmt = "<<PEGASUS_STD(hex)<<(int)wql_stmt<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
   
      try
      {
         WQLParser::parse (query, *wql_stmt);
      }
      catch (const Exception &e)
      {
         cerr << "Java_org_pegasus_jmpi_SelectExp__1newSelectExp: Caught: " << e.getMessage () << endl;
      }
  
    jEnv->ReleaseStringUTFChars (jQuery, pszQuery);    jEnv->ReleaseStringUTFChars (jQuery, pszQuery);
  
    return DEBUG_ConvertCToJava (CMPI_SelectExp *, jint, eSelx);     return DEBUG_ConvertCToJava (WQLSelectStatement *, jint, wql_stmt);
 } }
  
 /* /*
Line 5400 
Line 5425 
  * Signature: (I)Ljava/lang/String;  * Signature: (I)Ljava/lang/String;
  */  */
 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_SelectExp__1getSelectString JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_SelectExp__1getSelectString
   (JNIEnv *jEnv, jobject jThs, jint jEselx)    (JNIEnv *jEnv, jobject jThs, jint jWQLStmt)
   {
      WQLSelectStatement *wql_stmt = DEBUG_ConvertJavaToC (jint, WQLSelectStatement*, jWQLStmt);
      String              cond;
   
      if (wql_stmt)
      {
         try
 { {
    CMPI_SelectExp *eSelx = DEBUG_ConvertJavaToC (jint, CMPI_SelectExp*, jEselx);           cond = wql_stmt->getQuery ();
         }
         catch (const Exception &e)
         {
            cerr << "Java_org_pegasus_jmpi_SelectExp__1getSelectString: Caught: " << e.getMessage () << endl;
  
    return (jstring)jEnv->NewStringUTF (eSelx->cond.getCString ());           cond = "";
         }
      }
      else
      {
         cond = "";
      }
   
      return (jstring)jEnv->NewStringUTF (cond.getCString ());
 } }
  
 // ------------------------------------- // -------------------------------------
Line 5419 
Line 5463 
  * Signature: (II)I  * Signature: (II)I
  */  */
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_JMPISelectList__1applyInstance JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_JMPISelectList__1applyInstance
   (JNIEnv *jEnv, jobject jThs, jint jEselx, jint jciInstance)    (JNIEnv *jEnv, jobject jThs, jint jWQLStmt, jint jciInstance)
 { {
    CMPI_SelectExp *eSelx = DEBUG_ConvertJavaToC (jint, CMPI_SelectExp*, jEselx);     WQLSelectStatement *wql_stmt = DEBUG_ConvertJavaToC (jint, WQLSelectStatement*, jWQLStmt);
    CIMInstance    *ci    = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciInstance);    CIMInstance    *ci    = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciInstance);
    CIMInstance    *ciRet = 0;    CIMInstance    *ciRet = 0;
  
    if (  !eSelx     if (  !wql_stmt
       || !eSelx->wql_stmt        || !ci
       )       )
    {    {
       return 0;       return 0;
Line 5436 
Line 5480 
  
    if (ciRet)    if (ciRet)
    {    {
       eSelx->wql_stmt->applyProjection (*ciRet, false);        try
         {
            wql_stmt->applyProjection (*ciRet, false);
         }
         catch (const Exception &e)
         {
            cerr << "Java_org_pegasus_jmpi_JMPISelectList__1applyInstance: Caught: " << e.getMessage () << endl;
   
            return 0;
         }
    }    }
  
    return DEBUG_ConvertCToJava (CIMInstance *, jint, ciRet);    return DEBUG_ConvertCToJava (CIMInstance *, jint, ciRet);
Line 5448 
Line 5501 
  * Signature: (II)I  * Signature: (II)I
  */  */
 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_JMPISelectList__1applyClass JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_JMPISelectList__1applyClass
   (JNIEnv *jEnv, jobject jThs, jint jEselx, jint jciClass)    (JNIEnv *jEnv, jobject jThs, jint jWQLStmt, jint jciClass)
 { {
    CMPI_SelectExp *eSelx = DEBUG_ConvertJavaToC (jint, CMPI_SelectExp*, jEselx);     WQLSelectStatement *wql_stmt = DEBUG_ConvertJavaToC (jint, WQLSelectStatement*, jWQLStmt);
    CIMClass       *cc    = DEBUG_ConvertJavaToC (jint, CIMClass*, jciClass);    CIMClass       *cc    = DEBUG_ConvertJavaToC (jint, CIMClass*, jciClass);
    CIMClass       *ccRet = NULL;    CIMClass       *ccRet = NULL;
  
    if (  !eSelx     if (!wql_stmt)
       || !eSelx->wql_stmt  
       )  
    {    {
       return 0;       return 0;
    }    }
Line 5465 
Line 5516 
    {    {
       CIMObject co (cc->clone ());       CIMObject co (cc->clone ());
  
       eSelx->wql_stmt->applyProjection (co, false);        try
         {
            wql_stmt->applyProjection (co, false);
         }
         catch (const Exception &e)
         {
            cerr << "Java_org_pegasus_jmpi_JMPISelectList__1applyClass: Caught: " << e.getMessage () << endl;
   
            return 0;
         }
  
       ccRet = new CIMClass (co);       ccRet = new CIMClass (co);
  
Line 5487 
Line 5547 
  * Signature: (II)Z  * Signature: (II)Z
  */  */
 JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_JMPIQueryExp__1applyInstance JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_JMPIQueryExp__1applyInstance
   (JNIEnv *jEnv, jobject jThs, jint jEselx, jint jciInstance)    (JNIEnv *jEnv, jobject jThs, jint jWQLStmt, jint jciInstance)
 { {
    CMPI_SelectExp *eSelx = DEBUG_ConvertJavaToC (jint, CMPI_SelectExp*, jEselx);     WQLSelectStatement *wql_stmt = DEBUG_ConvertJavaToC (jint, WQLSelectStatement*, jWQLStmt);
    CIMInstance    *ci    = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciInstance);    CIMInstance    *ci    = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciInstance);
  
    if (  !eSelx     if (  !wql_stmt
       || !eSelx->wql_stmt        || !ci
       )       )
    {    {
       return 0;       return 0;
    }    }
  
    if (eSelx->wql_stmt)     try
    {    {
       return eSelx->wql_stmt->evaluate (*ci);        return wql_stmt->evaluate (*ci);
    }    }
      catch (const Exception &e)
      {
         cerr << "Java_org_pegasus_jmpi_JMPIQueryExp__1applyInstance: Caught: " << e.getMessage () << endl;
  
    return false;    return false;
 } }
   }
  
 } // extern "C" } // extern "C"
  


Legend:
Removed from v.1.40  
changed lines
  Added in v.1.43

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2