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

Diff for /pegasus/src/Pegasus/ProviderManager2/JMPI/JMPIImpl.h between version 1.25 and 1.34

version 1.25, 2006/09/14 16:26:11 version 1.34, 2008/12/16 18:57:00
Line 1 
Line 1 
 //%2006////////////////////////////////////////////////////////////////////////  //%LICENSE////////////////////////////////////////////////////////////////
 // //
 // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development  // Licensed to The Open Group (TOG) under one or more contributor license
 // Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.  // agreements.  Refer to the OpenPegasusNOTICE.txt file distributed with
 // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;  // this work for additional information regarding copyright ownership.
 // IBM Corp.; EMC Corporation, The Open Group.  // Each contributor licenses this file to you under the OpenPegasus Open
 // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;  // Source License; you may not use this file except in compliance with the
 // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.  // License.
 // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;  
 // EMC Corporation; VERITAS Software Corporation; The Open Group.  
 // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;  
 // EMC Corporation; Symantec Corporation; The Open Group.  
 // //
 // Permission is hereby granted, free of charge, to any person obtaining a copy  // Permission is hereby granted, free of charge, to any person obtaining a
 // of this software and associated documentation files (the "Software"), to  // copy of this software and associated documentation files (the "Software"),
 // deal in the Software without restriction, including without limitation the  // to deal in the Software without restriction, including without limitation
 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or  // the rights to use, copy, modify, merge, publish, distribute, sublicense,
 // sell copies of the Software, and to permit persons to whom the Software is  // and/or sell copies of the Software, and to permit persons to whom the
 // furnished to do so, subject to the following conditions:  // Software is furnished to do so, subject to the following conditions:
 // //
 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN  // The above copyright notice and this permission notice shall be included
 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED  // in all copies or substantial portions of the Software.
 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT  
 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR  
 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT  
 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN  
 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION  
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  
 // //
 //==============================================================================  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
   // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
   // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
   // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
   // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
   // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
   // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
   //
   //////////////////////////////////////////////////////////////////////////
 // //
 //%///////////////////////////////////////////////////////////////////////////// //%/////////////////////////////////////////////////////////////////////////////
  
Line 40 
Line 38 
  
 #ifdef PEGASUS_PLATFORM_LINUX_GENERIC_GNU #ifdef PEGASUS_PLATFORM_LINUX_GENERIC_GNU
 #if defined (__GNUC__) && GCC_VERSION >= 40000 #if defined (__GNUC__) && GCC_VERSION >= 40000
 // If gcc is compiled with -fvisibility=hidden then JMPI is broken.  This is because  // If gcc is compiled with -fvisibility=hidden then JMPI is broken.
 // the JNI h file defines JNIEXPORT as empty since the default is visible.  // This is because the JNI h file defines JNIEXPORT as empty since
   // the default is visible.
 #undef  JNIEXPORT #undef  JNIEXPORT
 #define JNIEXPORT __attribute__ ((visibility("default"))) #define JNIEXPORT __attribute__ ((visibility("default")))
 #endif #endif
Line 56 
Line 55 
 #include <Pegasus/Common/HashTable.h> #include <Pegasus/Common/HashTable.h>
 #include <Pegasus/Common/CIMType.h> #include <Pegasus/Common/CIMType.h>
 #include <Pegasus/Common/Mutex.h> #include <Pegasus/Common/Mutex.h>
   #include <Pegasus/ProviderManager2/JMPI/Linkage.h>
  
 PEGASUS_NAMESPACE_BEGIN PEGASUS_NAMESPACE_BEGIN
  
Line 65 
Line 65 
 #define Catch(jEnv) \ #define Catch(jEnv) \
    catch(CIMException & e) { \    catch(CIMException & e) { \
       JMPIjvm::cacheIDs(jEnv); \       JMPIjvm::cacheIDs(jEnv); \
       jobject ev=jEnv->NewObject(JMPIjvm::jv.CIMExceptionClassRef,JMPIjvm::jv.CIMExceptionNewISt,(jint)e.getCode(),jEnv->NewStringUTF(e.getMessage().getCString())); \        jobject ev=jEnv->NewObject( \
                        JMPIjvm::jv.CIMExceptionClassRef, \
                        JMPIjvm::jv.CIMExceptionNewISt, \
                        (jint)e.getCode(), \
                        jEnv->NewStringUTF(e.getMessage().getCString())); \
       jEnv->Throw((jthrowable)ev); \       jEnv->Throw((jthrowable)ev); \
    } \    } \
    catch(Exception & e) { \    catch(Exception & e) { \
       JMPIjvm::cacheIDs(jEnv);\       JMPIjvm::cacheIDs(jEnv);\
       jobject ev=jEnv->NewObject(JMPIjvm::jv.CIMExceptionClassRef,JMPIjvm::jv.CIMExceptionNewISt,(jint)1,jEnv->NewStringUTF(e.getMessage().getCString())); \        jobject ev=jEnv->NewObject( \
                        JMPIjvm::jv.CIMExceptionClassRef, \
                        JMPIjvm::jv.CIMExceptionNewISt, \
                        (jint)1, \
                        jEnv->NewStringUTF(e.getMessage().getCString())); \
       jEnv->Throw((jthrowable)ev); \       jEnv->Throw((jthrowable)ev); \
    } \    } \
    catch(...)  { \    catch(...)  { \
       JMPIjvm::cacheIDs(jEnv); \       JMPIjvm::cacheIDs(jEnv); \
       jobject ev=jEnv->NewObject(JMPIjvm::jv.CIMExceptionClassRef,JMPIjvm::jv.CIMExceptionNewISt,(jint)1,jEnv->NewStringUTF("Exception: Unknown")); \        jobject ev=jEnv->NewObject( \
                        JMPIjvm::jv.CIMExceptionClassRef, \
                        JMPIjvm::jv.CIMExceptionNewISt, \
                        (jint)1, \
                        jEnv->NewStringUTF("Exception: Unknown")); \
       jEnv->Throw((jthrowable)ev); \       jEnv->Throw((jthrowable)ev); \
    }    }
  
Line 95 
Line 107 
    const METHOD_STRUCT *instanceMethodNames;    const METHOD_STRUCT *instanceMethodNames;
 } JvmVector; } JvmVector;
  
 class JMPIjvm {  class PEGASUS_JMPIPM_LINKAGE JMPIjvm {
  public:  public:
    static int trace;    static int trace;
    static JavaVM *jvm;    static JavaVM *jvm;
Line 107 
Line 119 
    static JNIEnv* attachThread(JvmVector **jvp);    static JNIEnv* attachThread(JvmVector **jvp);
    static void detachThread();    static void detachThread();
    static jobject getProvider(JNIEnv *env, const char *cn, jclass *cls) ;    static jobject getProvider(JNIEnv *env, const char *cn, jclass *cls) ;
    static jobject getProvider(JNIEnv *env, String jar, String cln, const char *cn, jclass *cls) ;     static jobject getProvider(
                         JNIEnv *env,
                         String jar,
                         String cln,
                         const char *cn,
                         jclass *cls) ;
    static void checkException(JNIEnv *env);    static void checkException(JNIEnv *env);
    static jstring NewPlatformString(JNIEnv *env,char *s);    static jstring NewPlatformString(JNIEnv *env,char *s);
    static jobjectArray NewPlatformStringArray(JNIEnv *env,char **strv, int strc);     static jobjectArray NewPlatformStringArray(
                              JNIEnv *env,
                              char **strv,
                              int strc);
    static int cacheIDs(JNIEnv *env);    static int cacheIDs(JNIEnv *env);
    static int destroyJVM();    static int destroyJVM();
  
Line 118 
Line 138 
    static jclass getGlobalClassRef(JNIEnv *env, const char* name);    static jclass getGlobalClassRef(JNIEnv *env, const char* name);
    static int initJVM();    static int initJVM();
  
    typedef HashTable<String,jclass,EqualFunc<String>,HashFunc<String> >  ClassTable;     typedef HashTable<
    typedef HashTable<String,jobject,EqualFunc<String>,HashFunc<String> > ObjectTable;                 String,
                  jclass,
                  EqualFunc<String>,
                  HashFunc<String> >  ClassTable;
      typedef HashTable<
                  String,
                  jobject,
                  EqualFunc<String>,
                  HashFunc<String> > ObjectTable;
  
    static ClassTable  _classTable;    static ClassTable  _classTable;
    static ObjectTable _objectTable;    static ObjectTable _objectTable;
Line 136 
Line 164 
    int port();    int port();
    String hostName();    String hostName();
    String nameSpace();    String nameSpace();
      Boolean isHttps ();
    int port_;    int port_;
    String protocol_;    String protocol_;
    String hostName_;    String hostName_;
    String nameSpace_;    String nameSpace_;
      Boolean fHttps;
 }; };
  
 class _dataType { class _dataType {
Line 372 
Line 402 
 #define CharacterClassRef            classRefs[32] #define CharacterClassRef            classRefs[32]
 #define OperationContextClassRef     classRefs[33] #define OperationContextClassRef     classRefs[33]
 #define ClassClassRef                classRefs[34] #define ClassClassRef                classRefs[34]
   #define ByteArrayOutputStreamClassRef  classRefs[35]
   #define PrintStreamClassRef            classRefs[36]
  
 #define BigIntegerValueOf            staticMethodIDs[0] #define BigIntegerValueOf            staticMethodIDs[0]
 #define JarClassLoaderLoad           staticMethodIDs[1] #define JarClassLoaderLoad           staticMethodIDs[1]
Line 392 
Line 424 
 #define UnsignedInt16NewI            instMethodIDs[9] #define UnsignedInt16NewI            instMethodIDs[9]
 #define UnsignedInt32NewJ            instMethodIDs[10] #define UnsignedInt32NewJ            instMethodIDs[10]
 #define UnsignedInt64NewBi           instMethodIDs[11] #define UnsignedInt64NewBi           instMethodIDs[11]
 #define CIMObjectPathNewI            instMethodIDs[12]  #define CIMObjectPathNewJ              instMethodIDs[12]
 #define CIMObjectPathCInst           instMethodIDs[21] #define CIMObjectPathCInst           instMethodIDs[21]
 #define CIMExceptionNewSt            instMethodIDs[13] #define CIMExceptionNewSt            instMethodIDs[13]
 #define CIMExceptionNewISt           instMethodIDs[32] #define CIMExceptionNewISt           instMethodIDs[32]
Line 403 
Line 435 
 #define CIMExceptionNewStObObOb      instMethodIDs[44] #define CIMExceptionNewStObObOb      instMethodIDs[44]
 #define CIMExceptionGetCode          instMethodIDs[33] #define CIMExceptionGetCode          instMethodIDs[33]
 #define CIMExceptionGetID            instMethodIDs[26] #define CIMExceptionGetID            instMethodIDs[26]
 #define CIMPropertyNewI              instMethodIDs[14]  #define CIMPropertyNewJ                instMethodIDs[14]
 #define CIMPropertyCInst             instMethodIDs[28] #define CIMPropertyCInst             instMethodIDs[28]
 #define CIMOMHandleNewISt            instMethodIDs[17]  #define CIMOMHandleNewJSt              instMethodIDs[17]
 #define CIMOMHandleGetClass          instMethodIDs[29] #define CIMOMHandleGetClass          instMethodIDs[29]
 #define CIMClassNewI                 instMethodIDs[19]  #define CIMClassNewJ                   instMethodIDs[19]
 #define CIMClassCInst                instMethodIDs[23] #define CIMClassCInst                instMethodIDs[23]
 #define CIMInstanceNewI              instMethodIDs[20]  #define CIMInstanceNewJ                instMethodIDs[20]
 #define CIMInstanceCInst             instMethodIDs[22] #define CIMInstanceCInst             instMethodIDs[22]
 #define CIMValueNewI                 instMethodIDs[45]  #define CIMValueNewJ                   instMethodIDs[45]
 #define CIMValueCInst                instMethodIDs[31] #define CIMValueCInst                instMethodIDs[31]
 #define CIMDateTimeNewI              instMethodIDs[34]  #define CIMDateTimeNewJ                instMethodIDs[34]
 #define SelectExpNewI                instMethodIDs[35]  #define SelectExpNewJ                  instMethodIDs[35]
 #define CIMQualifierNewI             instMethodIDs[36]  #define CIMQualifierNewJ               instMethodIDs[36]
 #define CIMFlavorNewI                instMethodIDs[37] #define CIMFlavorNewI                instMethodIDs[37]
 #define CIMFlavorGetFlavor           instMethodIDs[38] #define CIMFlavorGetFlavor           instMethodIDs[38]
 #define CIMArgumentNewI              instMethodIDs[40]  #define CIMArgumentNewJ                instMethodIDs[40]
 #define CIMArgumentCInst             instMethodIDs[39] #define CIMArgumentCInst             instMethodIDs[39]
 #define ObjectToString               instMethodIDs[24] #define ObjectToString               instMethodIDs[24]
 #define ThrowableGetMessage          instMethodIDs[25] #define ThrowableGetMessage          instMethodIDs[25]
 #define CIMObjectNewIZ               instMethodIDs[46]  #define CIMObjectNewJZ                 instMethodIDs[46]
 #define CharacterNewC                instMethodIDs[47] #define CharacterNewC                instMethodIDs[47]
 #define OperationContextNewI         instMethodIDs[48]  #define OperationContextNewJ           instMethodIDs[48]
 #define OperationContextUnassociate  instMethodIDs[49] #define OperationContextUnassociate  instMethodIDs[49]
 #define ClassGetInterfaces           instMethodIDs[50] #define ClassGetInterfaces           instMethodIDs[50]
 #define ClassGetName                 instMethodIDs[51] #define ClassGetName                 instMethodIDs[51]
 #define UnsignedInt64NewStr          instMethodIDs[52] #define UnsignedInt64NewStr          instMethodIDs[52]
   #define ByteArrayOutputStreamNew       instMethodIDs[53]
   #define PrintStreamNewOb               instMethodIDs[54]
   #define ThrowablePrintStackTrace       instMethodIDs[55]
   #define ByteArrayOutputStreamToString  instMethodIDs[56]
  
 //extern "C" JNIEnv* attachThread(JvmVector**); //extern "C" JNIEnv* attachThread(JvmVector**);
 //extern "C" void detachThread(); //extern "C" void detachThread();


Legend:
Removed from v.1.25  
changed lines
  Added in v.1.34

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2