(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.16 and 1.17

version 1.16, 2005/03/27 23:18:09 version 1.17, 2005/04/04 21:13:19
Line 70 
Line 70 
  
 #define DDD(x) if (JMPIjvm::trace) x; #define DDD(x) if (JMPIjvm::trace) x;
  
   JMPIjvm::ClassTable  JMPIjvm::_classTable;
   JMPIjvm::ObjectTable JMPIjvm::_objectTable;
   
 typedef struct { typedef struct {
   int clsIndex;   int clsIndex;
   const char * methodName;   const char * methodName;
Line 387 
Line 390 
 jobject JMPIjvm::getProvider(JNIEnv *env, String jar, String cln, jobject JMPIjvm::getProvider(JNIEnv *env, String jar, String cln,
      const char *cn, jclass *cls)      const char *cn, jclass *cls)
 { {
    static jobject gProv=NULL;     jobject gProv=NULL;
    static jclass scls=NULL;     jclass scls=NULL;
  
    DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::"<<__FUNCTION__<<": jar = "<<jar<<", cln = "<<cln<<", cn = "<<cn<<", cls = "<<cls<<PEGASUS_STD(endl));    DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::"<<__FUNCTION__<<": jar = "<<jar<<", cln = "<<cln<<", cn = "<<cn<<", cls = "<<cls<<PEGASUS_STD(endl));
   
      _objectTable.lookup(cln,gProv);
      _classTable.lookup(cln,scls);
    DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::"<<__FUNCTION__<<": gProv = "<<PEGASUS_STD(hex)<<(int)gProv<<", scls = "<<(int)scls<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));    DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::"<<__FUNCTION__<<": gProv = "<<PEGASUS_STD(hex)<<(int)gProv<<", scls = "<<(int)scls<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
  
    if (gProv) {    if (gProv) {
Line 423 
Line 429 
    }    }
         *cls=scls;         *cls=scls;
  
      if (scls)
      {
         DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::"<<__FUNCTION__<<": scls = "<<PEGASUS_STD(hex)<<(int)scls<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
         _classTable.insert(cln,scls);
      }
   
    jmethodID id=env->GetMethodID(*cls,"<init>","()V");    jmethodID id=env->GetMethodID(*cls,"<init>","()V");
    jobject lProv=env->NewObject(*cls,id);    jobject lProv=env->NewObject(*cls,id);
    gProv=(jobject)env->NewGlobalRef(lProv);    gProv=(jobject)env->NewGlobalRef(lProv);
Line 430 
Line 442 
       DDD(PEGASUS_STD(cerr)<<"--- Unable to instantiate provider "<<cn<<PEGASUS_STD(endl));       DDD(PEGASUS_STD(cerr)<<"--- Unable to instantiate provider "<<cn<<PEGASUS_STD(endl));
       return NULL;       return NULL;
    }    }
   
      if (gProv)
      {
         DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::"<<__FUNCTION__<<": gProv = "<<PEGASUS_STD(hex)<<(int)gProv<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
         _objectTable.insert(cln,gProv);
      }
   
    return gProv;    return gProv;
 } }
  
 jobject JMPIjvm::getProvider(JNIEnv *env, const char *cn, jclass *cls) jobject JMPIjvm::getProvider(JNIEnv *env, const char *cn, jclass *cls)
 { {
    static jobject gProv=NULL;     String cln = cn;
    static jclass scls=NULL;     jobject gProv=NULL;
      jclass scls=NULL;
  
    DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::"<<__FUNCTION__<<": cn = "<<cn<<", cls = "<<cls<<PEGASUS_STD(endl));    DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::"<<__FUNCTION__<<": cn = "<<cn<<", cls = "<<cls<<PEGASUS_STD(endl));
   
      _objectTable.lookup(cln,gProv);
      _classTable.lookup(cln,scls);
    DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::"<<__FUNCTION__<<": gProv = "<<PEGASUS_STD(hex)<<(int)gProv<<", scls = "<<(int)scls<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));    DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::"<<__FUNCTION__<<": gProv = "<<PEGASUS_STD(hex)<<(int)gProv<<", scls = "<<(int)scls<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
  
    if (gProv) {    if (gProv) {
Line 455 
Line 478 
    }    }
         *cls=scls;         *cls=scls;
  
      if (scls)
      {
         DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::"<<__FUNCTION__<<": scls = "<<PEGASUS_STD(hex)<<(int)scls<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
         _classTable.insert(cln,scls);
      }
   
    jmethodID id=env->GetMethodID(*cls,"<init>","()V");    jmethodID id=env->GetMethodID(*cls,"<init>","()V");
    jobject lProv=env->NewObject(*cls,id);    jobject lProv=env->NewObject(*cls,id);
    gProv=(jobject)env->NewGlobalRef(lProv);    gProv=(jobject)env->NewGlobalRef(lProv);
Line 462 
Line 491 
       DDD(PEGASUS_STD(cerr)<<"--- Unable to instantiate provider "<<cn<<PEGASUS_STD(endl));       DDD(PEGASUS_STD(cerr)<<"--- Unable to instantiate provider "<<cn<<PEGASUS_STD(endl));
       return NULL;       return NULL;
    }    }
   
      if (gProv)
      {
         DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::"<<__FUNCTION__<<": gProv = "<<PEGASUS_STD(hex)<<(int)gProv<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
         _objectTable.insert(cln,gProv);
      }
   
    return gProv;    return gProv;
 } }
  


Legend:
Removed from v.1.16  
changed lines
  Added in v.1.17

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2