version 1.63, 2006/12/03 14:39:39
|
version 1.86, 2008/12/15 16:01:50
|
|
|
//%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. |
|
// |
|
////////////////////////////////////////////////////////////////////////// |
// | // |
//%///////////////////////////////////////////////////////////////////////////// | //%///////////////////////////////////////////////////////////////////////////// |
| |
#include "JMPIImpl.h" | #include "JMPIImpl.h" |
| |
#if defined(PEGASUS_PLATFORM_WIN32_IX86_MSVC) |
#if defined(PEGASUS_OS_TYPE_WINDOWS) |
#include <Pegasus/Common/DynamicLibrary.h> | #include <Pegasus/Common/DynamicLibrary.h> |
#else | #else |
#include <dlfcn.h> | #include <dlfcn.h> |
|
|
#include <Pegasus/Common/CIMObjectPath.h> | #include <Pegasus/Common/CIMObjectPath.h> |
#include <Pegasus/Common/CIMProperty.h> | #include <Pegasus/Common/CIMProperty.h> |
#include <Pegasus/Common/OperationContext.h> | #include <Pegasus/Common/OperationContext.h> |
|
#include <Pegasus/Common/Tracer.h> |
#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> |
|
|
| |
JavaVM *JMPIjvm::jvm=NULL; | JavaVM *JMPIjvm::jvm=NULL; |
JvmVector JMPIjvm::jv; | JvmVector JMPIjvm::jv; |
int JMPIjvm::trace=0; |
|
|
|
#ifdef PEGASUS_DEBUG |
|
#define DDD(x) if (JMPIjvm::trace) x; |
|
#else |
|
#define DDD(x) |
|
#endif |
|
| |
#include "Convert.h" | #include "Convert.h" |
| |
|
|
/*32*/ "java/lang/Character", | /*32*/ "java/lang/Character", |
/*33*/ "org/pegasus/jmpi/OperationContext", | /*33*/ "org/pegasus/jmpi/OperationContext", |
/*34*/ "java/lang/Class", | /*34*/ "java/lang/Class", |
|
/*35*/ "java/io/ByteArrayOutputStream", |
|
/*36*/ "java/io/PrintStream" |
}; | }; |
| |
const METHOD_STRUCT instanceMethodNames[]={ | const METHOD_STRUCT instanceMethodNames[]={ |
/*00 VectorNew */ { /*Vector */ 0, "<init>", "()V" }, |
/*00 VectorNew */ |
/*01 BooleanNewZ */ { /*Boolean */ 1, "<init>", "(Z)V" }, |
{ /*Vector */ |
/*02 ByteNewB */ { /*Byte */ 2, "<init>", "(B)V" }, |
0, |
/*03 ShortNewS */ { /*Short */ 3, "<init>", "(S)V" }, |
"<init>", |
/*04 IntegerNewI */ { /*Integer */ 4, "<init>", "(I)V" }, |
"()V" }, |
/*05 LongNewJ */ { /*Long */ 5, "<init>", "(J)V" }, |
/*01 BooleanNewZ */ |
/*06 FloatNewF */ { /*Float */ 6, "<init>", "(F)V" }, |
{ /*Boolean */ |
/*07 DoubleNewD */ { /*Double */ 7, "<init>", "(D)V" }, |
1, |
/*08 UnsignedInt8NewS */ { /*UnsignedInt8 */ 8, "<init>", "(S)V" }, |
"<init>", |
/*09 UnsignedInt16NewI */ { /*UnsignedInt16 */ 9, "<init>", "(I)V" }, |
"(Z)V" }, |
/*10 UnsignedInt32NewJ */ { /*UnsignedInt32 */10, "<init>", "(J)V" }, |
/*02 ByteNewB */ |
/*11 UnsignedInt64NewBi */ { /*UnsignedInt64 */11, "<init>", "(Ljava/math/BigInteger;)V" }, |
{ /*Byte */ |
/*12 CIMObjectPathNewJ */ { /*CIMObjectPath */12, "<init>", "(J)V" }, |
2, |
/*13 CIMExceptionNewSt */ { /*CIMException */13, "<init>", "(Ljava/lang/String;)V" }, |
"<init>", |
/*14 CIMPropertyNewJ */ { /*CIMProperty */15, "<init>", "(J)V" }, |
"(B)V" }, |
/*15 VectorAddElement */ { /*Vector */ 0, "addElement", "(Ljava/lang/Object;)V" }, |
/*03 ShortNewS */ |
/*16 VectorElementAt */ { /*Vector */ 0, "elementAt", "(I)Ljava/lang/Object;" }, |
{ /*Short */ |
/*17 CIMOMHandleNewJSt */ { /*CIMOMHandle */16, "<init>", "(JLjava/lang/String;)V" }, |
3, |
/*18 CIMExceptionNewI */ { /*CIMException */13, "<init>", "(I)V" }, |
"<init>", |
/*19 CIMClassNewJ */ { /*CIMClass */17, "<init>", "(J)V" }, |
"(S)V" }, |
/*20 CIMInstanceNewJ */ { /*CIMInstance */18, "<init>", "(J)V" }, |
/*04 IntegerNewI */ |
/*21 CIMObjectPathCInst */ { /*CIMObjectPath */12, "cInst", "()J" }, |
{ /*Integer */ |
/*22 CIMInstanceCInst */ { /*CIMInstance */18, "cInst", "()J" }, |
4, |
/*23 CIMClassCInst */ { /*CIMClass */17, "cInst", "()J" }, |
"<init>", |
/*24 ObjectToString */ { /*Object */20, "toString", "()Ljava/lang/String;" }, |
"(I)V" }, |
/*25 ThrowableGetMessage */ { /*Throwable */21, "getMessage", "()Ljava/lang/String;" }, |
/*05 LongNewJ */ |
/*26 CIMExceptionGetID */ { /*CIMException */13, "getID", "()Ljava/lang/String;" }, |
{ /*Long */ |
/*27 VectorSize */ { /*Vector */ 0, "size", "()I" }, |
5, |
/*28 CIMPropertyCInst */ { /*CIMProperty */15, "cInst", "()J" }, |
"<init>", |
/*29 CIMOMHandleGetClass */ { /*CIMOMHandle */16, "getClass", "(Lorg/pegasus/jmpi/CIMObjectPath;Z)Lorg/pegasus/jmpi/CIMClass;" }, |
"(J)V" }, |
/*30 VectorRemoveElementAt */ { /*Vector */ 0, "removeElementAt", "(I)V" }, |
/*06 FloatNewF */ |
/*31 CIMValueCInst */ { /*CIMValue */19, "cInst", "()J" }, |
{ /*Float */ |
/*32 CIMExceptionNewISt */ { /*CIMException */13, "<init>", "(ILjava/lang/String;)V" }, |
6, |
/*33 CIMExceptionGetCode */ { /*CIMException */13, "getCode", "()I" }, |
"<init>", |
/*34 CIMDateTimeNewJ */ { /*CIMDateTime */24, "<init>", "(J)V" }, |
"(F)V" }, |
/*35 SelectExpNewJ */ { /*SelectExp */25, "<init>", "(J)V" }, |
/*07 DoubleNewD */ |
/*36 CIMQualifierNewJ */ { /*CIMQualifier */26, "<init>", "(J)V" }, |
{ /*Double */ |
/*37 CIMFlavorNewI */ { /*CIMFlavor */28, "<init>", "(I)V" }, |
7, |
/*38 CIMFlavorGetFlavor */ { /*CIMFlavor */28, "getFlavor", "()I" }, |
"<init>", |
/*39 CIMArgumentCInst */ { /*CIMArgument */29, "cInst", "()J" }, |
"(D)V" }, |
/*40 CIMArgumentNewJ */ { /*CIMArgument */29, "<init>", "(J)V" }, |
/*08 UnsignedInt8NewS */ |
/*41 CIMExceptionNew */ { /*CIMException */13, "<init>", "()V" }, |
{ /*UnsignedInt8 */ |
/*42 CIMExceptionNewStOb */ { /*CIMException */13, "<init>", "(Ljava/lang/String;Ljava/lang/Object;)V" }, |
8, |
/*43 CIMExceptionNewStObOb */ { /*CIMException */13, "<init>", "(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V" }, |
"<init>", |
/*44 CIMExceptionNewStObObOb */ { /*CIMException */13, "<init>", "(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V" }, |
"(S)V" }, |
/*45 CIMValueNewJ */ { /*CIMValue */19, "<init>", "(J)V" }, |
/*09 UnsignedInt16NewI */ |
/*46 CIMObjectNewJZ */ { /*CIMObject */31, "<init>", "(JZ)V" }, |
{ /*UnsignedInt16 */ |
/*47 CharacterNewC */ { /*Character */32, "<init>", "(C)V" }, |
9, |
/*48 OperationContextNewJ */ { /*OperationContext */33, "<init>", "(J)V" }, |
"<init>", |
/*49 OperationContextUnassociate */ { /*OperationContext */33, "unassociate", "()V" }, |
"(I)V" }, |
/*50 ClassGetInterfaces */ { /*Class */34, "getInterfaces", "()[Ljava/lang/Class;" }, |
/*10 UnsignedInt32NewJ */ |
/*51 ClassGetName */ { /*Class */34, "getName", "()Ljava/lang/String;" }, |
{ /*UnsignedInt32 */ |
/*52 UnsignedInt64NewStr */ { /*UnsignedInt64 */11, "<init>", "(Ljava/lang/String;)V" } |
10, |
|
"<init>", |
|
"(J)V" }, |
|
/*11 UnsignedInt64NewBi */ |
|
{ /*UnsignedInt64 */ |
|
11, |
|
"<init>", |
|
"(Ljava/math/BigInteger;)V" }, |
|
/*12 CIMObjectPathNewJ */ |
|
{ /*CIMObjectPath */ |
|
12, |
|
"<init>", |
|
"(J)V" }, |
|
/*13 CIMExceptionNewSt */ |
|
{ /*CIMException */ |
|
13, |
|
"<init>", |
|
"(Ljava/lang/String;)V" }, |
|
/*14 CIMPropertyNewJ */ |
|
{ /*CIMProperty */ |
|
15, |
|
"<init>", |
|
"(J)V" }, |
|
/*15 VectorAddElement */ |
|
{ /*Vector */ |
|
0, |
|
"addElement", |
|
"(Ljava/lang/Object;)V" }, |
|
/*16 VectorElementAt */ |
|
{ /*Vector */ |
|
0, |
|
"elementAt", |
|
"(I)Ljava/lang/Object;" }, |
|
/*17 CIMOMHandleNewJSt */ |
|
{ /*CIMOMHandle */ |
|
16, |
|
"<init>", |
|
"(JLjava/lang/String;)V" }, |
|
/*18 CIMExceptionNewI */ |
|
{ /*CIMException */ |
|
13, |
|
"<init>", |
|
"(I)V" }, |
|
/*19 CIMClassNewJ */ |
|
{ /*CIMClass */ |
|
17, |
|
"<init>", |
|
"(J)V" }, |
|
/*20 CIMInstanceNewJ */ |
|
{ /*CIMInstance */ |
|
18, |
|
"<init>", |
|
"(J)V" }, |
|
/*21 CIMObjectPathCInst */ |
|
{ /*CIMObjectPath */ |
|
12, |
|
"cInst", |
|
"()J" }, |
|
/*22 CIMInstanceCInst */ |
|
{ /*CIMInstance */ |
|
18, |
|
"cInst", |
|
"()J" }, |
|
/*23 CIMClassCInst */ |
|
{ /*CIMClass */ |
|
17, |
|
"cInst", |
|
"()J" }, |
|
/*24 ObjectToString */ |
|
{ /*Object */ |
|
20, |
|
"toString", |
|
"()Ljava/lang/String;" }, |
|
/*25 ThrowableGetMessage */ |
|
{ /*Throwable */ |
|
21, |
|
"getMessage", |
|
"()Ljava/lang/String;" }, |
|
/*26 CIMExceptionGetID */ |
|
{ /*CIMException */ |
|
13, |
|
"getID", |
|
"()Ljava/lang/String;" }, |
|
/*27 VectorSize */ |
|
{ /*Vector */ |
|
0, |
|
"size", |
|
"()I" }, |
|
/*28 CIMPropertyCInst */ |
|
{ /*CIMProperty */ |
|
15, |
|
"cInst", |
|
"()J" }, |
|
/*29 CIMOMHandleGetClass */ |
|
{ /*CIMOMHandle */ |
|
16, |
|
"getClass", |
|
"(Lorg/pegasus/jmpi/CIMObjectPath;Z)Lorg/pegasus/jmpi/CIMClass;" }, |
|
/*30 VectorRemoveElementAt */ |
|
{ /*Vector */ |
|
0, |
|
"removeElementAt", |
|
"(I)V" }, |
|
/*31 CIMValueCInst */ |
|
{ /*CIMValue */ |
|
19, |
|
"cInst", |
|
"()J" }, |
|
/*32 CIMExceptionNewISt */ |
|
{ /*CIMException */ |
|
13, |
|
"<init>", |
|
"(ILjava/lang/String;)V" }, |
|
/*33 CIMExceptionGetCode */ |
|
{ /*CIMException */ |
|
13, |
|
"getCode", |
|
"()I" }, |
|
/*34 CIMDateTimeNewJ */ |
|
{ /*CIMDateTime */ |
|
24, |
|
"<init>", |
|
"(J)V" }, |
|
/*35 SelectExpNewJ */ |
|
{ /*SelectExp */ |
|
25, |
|
"<init>", |
|
"(J)V" }, |
|
/*36 CIMQualifierNewJ */ |
|
{ /*CIMQualifier */ |
|
26, |
|
"<init>", |
|
"(J)V" }, |
|
/*37 CIMFlavorNewI */ |
|
{ /*CIMFlavor */ |
|
28, |
|
"<init>", |
|
"(I)V" }, |
|
/*38 CIMFlavorGetFlavor */ |
|
{ /*CIMFlavor */ |
|
28, |
|
"getFlavor", |
|
"()I" }, |
|
/*39 CIMArgumentCInst */ |
|
{ /*CIMArgument */ |
|
29, |
|
"cInst", |
|
"()J" }, |
|
/*40 CIMArgumentNewJ */ |
|
{ /*CIMArgument */ |
|
29, |
|
"<init>", |
|
"(J)V" }, |
|
/*41 CIMExceptionNew */ |
|
{ /*CIMException */ |
|
13, |
|
"<init>", |
|
"()V" }, |
|
/*42 CIMExceptionNewStOb */ |
|
{ /*CIMException */ |
|
13, |
|
"<init>", |
|
"(Ljava/lang/String;Ljava/lang/Object;)V" }, |
|
/*43 CIMExceptionNewStObOb */ |
|
{ /*CIMException */ |
|
13, |
|
"<init>", |
|
"(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V" }, |
|
/*44 CIMExceptionNewStObObOb */ |
|
{ /*CIMException */ |
|
13, |
|
"<init>", |
|
"(Ljava/lang/String;Ljava/lang/Object;" |
|
"Ljava/lang/Object;Ljava/lang/Object;)V" }, |
|
/*45 CIMValueNewJ */ |
|
{ /*CIMValue */ |
|
19, |
|
"<init>", |
|
"(J)V" }, |
|
/*46 CIMObjectNewJZ */ |
|
{ /*CIMObject */ |
|
31, |
|
"<init>", |
|
"(JZ)V" }, |
|
/*47 CharacterNewC */ |
|
{ /*Character */ |
|
32, |
|
"<init>", |
|
"(C)V" }, |
|
/*48 OperationContextNewJ */ |
|
{ /*OperationContext */ |
|
33, |
|
"<init>", |
|
"(J)V" }, |
|
/*49 OperationContextUnassociate */ |
|
{ /*OperationContext */ |
|
33, |
|
"unassociate", |
|
"()V" }, |
|
/*50 ClassGetInterfaces */ |
|
{ /*Class */ |
|
34, |
|
"getInterfaces", |
|
"()[Ljava/lang/Class;" }, |
|
/*51 ClassGetName */ |
|
{ /*Class */ |
|
34, |
|
"getName", |
|
"()Ljava/lang/String;" }, |
|
/*52 UnsignedInt64NewStr */ |
|
{ /*UnsignedInt64 */ |
|
11, |
|
"<init>", |
|
"(Ljava/lang/String;)V" }, |
|
/*53 ByteArrayOutputStreamNew */ |
|
{ /*ByteArrayOutputStream */ |
|
35, |
|
"<init>", |
|
"()V" }, |
|
/*54 PrintStreamNewOb */ |
|
{ /*PrintStreamNew */ |
|
36, |
|
"<init>", |
|
"(Ljava/io/OutputStream;)V" }, |
|
/*55 ThrowablePrintStackTrace */ |
|
{ /*Throwable */ |
|
21, |
|
"printStackTrace", |
|
"(Ljava/io/PrintStream;)V" }, |
|
/*56 ByteArrayOutputStreamToString */ |
|
{ /*ByteArrayOutputStream */ |
|
35, |
|
"toString", |
|
"()Ljava/lang/String;" } |
}; | }; |
| |
const METHOD_STRUCT staticMethodNames[]={ | const METHOD_STRUCT staticMethodNames[]={ |
/*00*/ { 14, "valueOf", "(J)Ljava/math/BigInteger;" }, |
/*00*/ { 14, |
/*01*/ { 23, "load", "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Class;" }, |
"valueOf", |
|
"(J)Ljava/math/BigInteger;" }, |
|
/*01*/ { 23, |
|
"load", |
|
"(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Class;" }, |
}; | }; |
| |
static int methodInitDone=0; | static int methodInitDone=0; |
| |
jclass classRefs[sizeof(classNames)/sizeof(classNames[0])]; | jclass classRefs[sizeof(classNames)/sizeof(classNames[0])]; |
jmethodID instanceMethodIDs[sizeof(instanceMethodNames)/sizeof(instanceMethodNames[0])]; |
jmethodID instanceMethodIDs[sizeof(instanceMethodNames) / |
jmethodID staticMethodIDs[sizeof(staticMethodNames)/sizeof(staticMethodNames[0])]; |
sizeof(instanceMethodNames[0])]; |
|
jmethodID staticMethodIDs[sizeof(staticMethodNames) / |
|
sizeof(staticMethodNames[0])]; |
| |
jclass JMPIjvm::getGlobalClassRef(JNIEnv *env, const char* name) | jclass JMPIjvm::getGlobalClassRef(JNIEnv *env, const char* name) |
{ | { |
|
PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"JMPIjvm::getGlobalClassRef"); |
|
|
jclass localRefCls = env->FindClass(name); | jclass localRefCls = env->FindClass(name); |
| |
if (localRefCls == NULL) | if (localRefCls == NULL) |
|
{ |
|
PEG_TRACE_CSTRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4, |
|
"No local Class reference found. (localRefCls==NULL)"); |
|
PEG_METHOD_EXIT(); |
return JNI_FALSE; | return JNI_FALSE; |
|
} |
|
|
| |
jclass globalRefCls = (jclass) env->NewGlobalRef(localRefCls); | jclass globalRefCls = (jclass) env->NewGlobalRef(localRefCls); |
| |
#if 0 | #if 0 |
jmethodID jmidToString = env->GetMethodID(globalRefCls, "toString", "()Ljava/lang/String;"); |
jmethodID jmidToString = env->GetMethodID(globalRefCls, |
jstring jstringResult = (jstring)env->CallObjectMethod(globalRefCls, jmidToString); |
"toString", |
|
"()Ljava/lang/String;"); |
|
jstring jstringResult = (jstring)env->CallObjectMethod(globalRefCls, |
|
jmidToString); |
const char *pszResult = env->GetStringUTFChars(jstringResult, 0); | const char *pszResult = env->GetStringUTFChars(jstringResult, 0); |
| |
DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getGlobalClassRef: globalRefCls = "<<PEGASUS_STD(hex)<<(long)globalRefCls<<PEGASUS_STD(dec)<<", name = "<<name<<", pszResult = "<<pszResult<<PEGASUS_STD(endl)); |
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4, |
|
"globalRefCls = %p, name = %s, pszResult = %s", |
|
globalRefCls,name,pszResult)); |
| |
env->ReleaseStringUTFChars (jstringResult, pszResult); | env->ReleaseStringUTFChars (jstringResult, pszResult); |
#else | #else |
DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getGlobalClassRef: globalRefCls = "<<PEGASUS_STD(hex)<<(long)globalRefCls<<PEGASUS_STD(dec)<<", name = "<<name<<PEGASUS_STD(endl)); |
|
|
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4, |
|
"globalRefCls = %p, name = %s",globalRefCls,name)); |
|
|
#endif | #endif |
| |
env->DeleteLocalRef(localRefCls); | env->DeleteLocalRef(localRefCls); |
| |
|
PEG_METHOD_EXIT(); |
return globalRefCls; | return globalRefCls; |
} | } |
| |
|
|
| |
int JMPIjvm::cacheIDs(JNIEnv *env) | int JMPIjvm::cacheIDs(JNIEnv *env) |
{ | { |
|
PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"JMPIjvm::cacheIDs"); |
|
|
if (methodInitDone == 1) | if (methodInitDone == 1) |
|
{ |
|
PEG_METHOD_EXIT(); |
return JNI_TRUE; | return JNI_TRUE; |
|
} |
|
|
if (methodInitDone == -1) | if (methodInitDone == -1) |
|
{ |
|
PEG_METHOD_EXIT(); |
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++) |
{ | { |
//////DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): Trying "<<classNames[i]<<PEGASUS_STD(endl)); |
|
if ((classRefs[i] = getGlobalClassRef(env,classNames[i])) == NULL) | if ((classRefs[i] = getGlobalClassRef(env,classNames[i])) == NULL) |
{ | { |
DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): Error: Count not find global class ref for "<<classNames[i]<<PEGASUS_STD(endl)); |
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4, |
|
"Error: Count not find global class ref for %s",classNames[i])); |
| |
|
PEG_METHOD_EXIT(); |
return JNI_FALSE; | return JNI_FALSE; |
} | } |
} | } |
| |
for (unsigned j = 0; j<(sizeof(instanceMethodNames)/sizeof(instanceMethodNames[0])); j++) |
unsigned instanceMethodNamesSize = |
|
sizeof(instanceMethodNames)/sizeof(instanceMethodNames[0]); |
|
|
|
for (unsigned j = 0; j<instanceMethodNamesSize; j++) |
{ | { |
//////DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): Trying "<<j<<": "<<classNames[instanceMethodNames[j].clsIndex]<<": "<<instanceMethodNames[j].methodName<<": "<<instanceMethodNames[j].signature<<PEGASUS_STD(endl)); |
instanceMethodIDs[j] = env->GetMethodID( |
if ((instanceMethodIDs[j] = env->GetMethodID(classRefs[instanceMethodNames[j].clsIndex], |
classRefs[instanceMethodNames[j].clsIndex], |
instanceMethodNames[j].methodName, | instanceMethodNames[j].methodName, |
instanceMethodNames[j].signature)) == NULL) |
instanceMethodNames[j].signature); |
|
if (instanceMethodIDs[j] == NULL) |
{ | { |
DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): Error could not get method id for "<<classNames[instanceMethodNames[j].clsIndex]<<": "<<instanceMethodNames[j].methodName<<PEGASUS_STD(endl)); |
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4, |
|
"Error: Could not get instance method id for %s:%s", |
|
classNames[instanceMethodNames[j].clsIndex], |
|
instanceMethodNames[j].methodName)); |
|
|
|
PEG_METHOD_EXIT(); |
return 0; | return 0; |
} | } |
} | } |
|
unsigned staticMethodNamesSize = |
for (unsigned k = 0; k<(sizeof(staticMethodNames)/sizeof(staticMethodNames[0])); k++) |
sizeof(staticMethodNames) / sizeof(staticMethodNames[0]); |
|
for (unsigned k = 0; k<staticMethodNamesSize; k++) |
{ | { |
//////DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): Trying "<<k<<": "<<classNames[staticMethodNames[k].clsIndex]<<": "<<staticMethodNames[k].methodName<<": "<<staticMethodNames[k].signature<<PEGASUS_STD(endl)); |
staticMethodIDs[k] = env->GetStaticMethodID( |
if ((staticMethodIDs[k] = env->GetStaticMethodID(classRefs[staticMethodNames[k].clsIndex], |
classRefs[staticMethodNames[k].clsIndex], |
staticMethodNames[k].methodName, | staticMethodNames[k].methodName, |
staticMethodNames[k].signature)) == NULL) |
staticMethodNames[k].signature); |
|
|
|
if (staticMethodIDs[k] == NULL) |
{ | { |
DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): Error could not get method id for "<<classNames[staticMethodNames[k].clsIndex]<<": "<<staticMethodNames[k].methodName<<PEGASUS_STD(endl)); |
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4, |
|
"Error: Could not get static method id for %s:%s", |
|
classNames[staticMethodNames[k].clsIndex], |
|
staticMethodNames[k].methodName)); |
|
|
|
PEG_METHOD_EXIT(); |
return 0; | return 0; |
} | } |
} | } |
| |
DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): exit"<<PEGASUS_STD(endl)); |
|
|
|
jv.env = env; | jv.env = env; |
jv.classRefs = classRefs; | jv.classRefs = classRefs; |
jv.instMethodIDs = instanceMethodIDs; | jv.instMethodIDs = instanceMethodIDs; |
|
|
| |
methodInitDone = 1; | methodInitDone = 1; |
| |
|
PEG_METHOD_EXIT(); |
return JNI_TRUE; | return JNI_TRUE; |
} | } |
| |
|
|
| |
int JMPIjvm::destroyJVM () | int JMPIjvm::destroyJVM () |
{ | { |
DDD(PEGASUS_STD(cerr)<<"--- JPIjvm::destroyJVM()"<<PEGASUS_STD(endl)); |
PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"JPIjvm::destroyJVM"); |
| |
#ifdef JAVA_DESTROY_VM_WORKS | #ifdef JAVA_DESTROY_VM_WORKS |
if (jvm!= NULL) | if (jvm!= NULL) |
|
|
| |
jvm = NULL; | jvm = NULL; |
| |
|
PEG_METHOD_EXIT(); |
return 0; | return 0; |
} | } |
#endif | #endif |
| |
|
PEG_METHOD_EXIT(); |
return -1; | return -1; |
} | } |
| |
|
|
| |
int JMPIjvm::initJVM () | int JMPIjvm::initJVM () |
{ | { |
|
PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"JPIjvm::initJVM"); |
|
|
AutoMutex lock (_initMutex); | AutoMutex lock (_initMutex); |
| |
if (jvm != NULL) | if (jvm != NULL) |
|
|
}; | }; |
std::ostringstream oss; | std::ostringstream oss; |
| |
#ifdef PEGASUS_DEBUG |
PEG_TRACE_CSTRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4, |
if (getenv("PEGASUS_JMPI_TRACE")) |
"Start to initialize the JVM."); |
JMPIjvm::trace = 1; |
|
else |
|
JMPIjvm::trace = 0; |
|
#else |
|
JMPIjvm::trace = 0; |
|
#endif |
|
|
|
DDD(PEGASUS_STD(cout) << "--- JMPIjvm::initJVM()" << PEGASUS_STD(endl)); |
|
| |
jv.initRc = 0; | jv.initRc = 0; |
| |
|
|
{ | { |
jv.initRc = 1; | jv.initRc = 1; |
| |
DDD(PEGASUS_STD(cerr) << "--- JMPIjvm::initJVM(): No CLASSPATH environment variable found" << PEGASUS_STD(endl)); |
PEG_TRACE_CSTRING(TRC_PROVIDERMANAGER, Tracer::LEVEL1, |
|
"No CLASSPATH environment variable found."); |
|
|
|
PEG_METHOD_EXIT(); |
| |
#ifdef PEGASUS_PLATFORM_ZOS_ZSERIES_IBM |
|
throw PEGASUS_CIM_EXCEPTION_L( |
|
CIM_ERR_FAILED, |
|
MessageLoaderParms( |
|
"ProviderManager2.JMPI.GET_CLASSPATH_FAILED.PEGASUS_OS_ZOS", |
|
"Could not get CLASSPATH from environment." |
|
" Either CLASSPATH is longer than 255 characters" |
|
" or not set at all.") |
|
); |
|
#else |
|
throw PEGASUS_CIM_EXCEPTION_L( | throw PEGASUS_CIM_EXCEPTION_L( |
CIM_ERR_FAILED, | CIM_ERR_FAILED, |
MessageLoaderParms( | MessageLoaderParms( |
"ProviderManager2.JMPI.GET_CLASSPATH_FAILED.STANDARD", |
"ProviderManager2.JMPI.JMPIImpl.GET_CLASSPATH_FAILED.STANDARD", |
"Could not get CLASSPATH from environment.") | "Could not get CLASSPATH from environment.") |
); | ); |
#endif |
|
return -1; | return -1; |
} | } |
| |
///JNIoptions.append ("-Djava.compiler=NONE"); | ///JNIoptions.append ("-Djava.compiler=NONE"); |
///maxoption++; | ///maxoption++; |
| |
for (Uint32 i = 0; i < (int)(sizeof (aEnvOptions)/sizeof (aEnvOptions[0])); i++) |
unsigned int aEnvOptionsSize=sizeof(aEnvOptions)/sizeof(aEnvOptions[0]); |
|
for (Uint32 i = 0; i < aEnvOptionsSize; i++) |
{ | { |
JVMOPTIONS *pEnvOption = &aEnvOptions[i]; | JVMOPTIONS *pEnvOption = &aEnvOptions[i]; |
| |
|
|
while (fCommaFound) | while (fCommaFound) |
{ | { |
string stringValue; | string stringValue; |
string::size_type posComma = stringValues.find (',', posStart); |
string::size_type posComma = stringValues.find(',', |
|
posStart); |
| |
if (posComma != string::npos) | if (posComma != string::npos) |
{ | { |
|
|
stringValue = stringValues.substr (posStart, posEnd - posStart + 1); | stringValue = stringValues.substr (posStart, posEnd - posStart + 1); |
} | } |
| |
DDD(PEGASUS_STD(cout) << "--- JMPIjvm::initJVM(): fCommaFound = " << fCommaFound << ", posStart = " << posStart << ", posComma = " << posComma << ", posEnd = " << posEnd << "" << PEGASUS_STD(endl)); |
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL3, |
|
"fCommaFound = %d, posStart = %d, " |
|
"posComma = %d, posEnd = %d", |
|
fCommaFound,posStart,posComma,posEnd)); |
| |
maxoption++; | maxoption++; |
| |
|
|
| |
JNIoptions.append (oss.str ()); | JNIoptions.append (oss.str ()); |
| |
DDD(PEGASUS_STD(cout) << "--- JMPIjvm::initJVM(): " << pEnvOption->pszEnvName << " found! Specifying \"" << oss.str () << "\"" << PEGASUS_STD(endl)); |
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL3, |
|
"%s found! Specifying \"%s\"", |
|
pEnvOption->pszEnvName, (const char*)oss.str().c_str())); |
} | } |
} | } |
else | else |
|
|
| |
JNIoptions.append (oss.str ()); | JNIoptions.append (oss.str ()); |
| |
DDD(PEGASUS_STD(cout) << "--- JMPIjvm::initJVM(): " << pEnvOption->pszEnvName << " found! Specifying \"" << oss.str () << "\"" << PEGASUS_STD(endl)); |
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4, |
|
"%s found! Specifying \"%s\"", |
|
pEnvOption->pszEnvName, (const char*)oss.str().c_str())); |
|
|
} | } |
} | } |
} | } |
|
|
{ | { |
jv.initRc = 1; | jv.initRc = 1; |
| |
DDD(PEGASUS_STD(cerr) << "--- JMPIjvm::initJVM(): Could not allocate " << maxoption << " structures of size " << sizeof (JavaVMOption) << PEGASUS_STD(endl)); |
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL2, |
|
"Could not allocate %d structures of size %d.", |
|
maxoption,sizeof (JavaVMOption))); |
| |
|
PEG_METHOD_EXIT(); |
return -1; | return -1; |
} | } |
| |
|
|
{ | { |
poptions[i].optionString = (char *)JNIoptions[i].c_str (); | poptions[i].optionString = (char *)JNIoptions[i].c_str (); |
| |
DDD(PEGASUS_STD(cout) << "--- JMPIjvm::initJVM(): Setting option " << i << " to \"" << poptions[i].optionString << "\"" << PEGASUS_STD(endl)); |
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL3, |
|
"Setting option %d to \"%s\".", |
|
i ,poptions[i].optionString)); |
} | } |
| |
vm_args.version = JNI_VERSION_1_2; | vm_args.version = JNI_VERSION_1_2; |
|
|
{ | { |
jv.initRc = 1; | jv.initRc = 1; |
| |
DDD(PEGASUS_STD(cerr) << "--- JMPIjvm::initJVM(): Can not create Java VM"<<PEGASUS_STD(endl)); |
PEG_TRACE_CSTRING(TRC_PROVIDERMANAGER, Tracer::LEVEL3, |
|
"Can not create Java VM !"); |
| |
|
PEG_METHOD_EXIT(); |
return -1; | return -1; |
} | } |
| |
|
|
jvm = NULL; | jvm = NULL; |
#endif | #endif |
| |
|
PEG_METHOD_EXIT(); |
return -1; | return -1; |
} | } |
| |
jv.initRc = 1; | jv.initRc = 1; |
jv.jvm = jvm; | jv.jvm = jvm; |
| |
|
PEG_METHOD_EXIT(); |
return res; | return res; |
} | } |
| |
|
|
const char *pszProviderName, | const char *pszProviderName, |
jclass *pjClass) | jclass *pjClass) |
{ | { |
|
PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"JMPIjvm::getProvider"); |
|
|
jobject jProviderInstance = 0; | jobject jProviderInstance = 0; |
jclass jClassLoaded = 0; | jclass jClassLoaded = 0; |
jmethodID jId = 0; | jmethodID jId = 0; |
jobject jProviderInstanceLocal = 0; | jobject jProviderInstanceLocal = 0; |
| |
DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jarName = "<<jarName<<", className = "<<className<<", pszProviderName = "<<pszProviderName<<", pjClass = "<<PEGASUS_STD(hex)<<(long)pjClass<<PEGASUS_STD(dec)<<PEGASUS_STD(endl)); |
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4, |
|
"jarName = %s, className = %s, pszProviderName = %s, pjClass = %p", |
|
(const char*)jarName.getCString(), |
|
(const char*)className.getCString(), |
|
pszProviderName,pjClass)); |
| |
// CASE #1 | // CASE #1 |
// className has been loaded previously. | // className has been loaded previously. |
|
|
_objectTable.lookup (className, jProviderInstance); | _objectTable.lookup (className, jProviderInstance); |
_classTable.lookup (className, jClassLoaded); | _classTable.lookup (className, jClassLoaded); |
| |
DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jProviderInstance = "<<PEGASUS_STD(hex)<<(long)jProviderInstance<<", jClassLoaded = "<<(long)jClassLoaded<<PEGASUS_STD(dec)<<PEGASUS_STD(endl)); |
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4, |
|
"jProviderInstance = %p, jClassLoaded = %p", |
|
jProviderInstance,jClassLoaded)); |
| |
if ( jProviderInstance | if ( jProviderInstance |
&& jClassLoaded | && jClassLoaded |
|
|
{ | { |
*pjClass = jClassLoaded; | *pjClass = jClassLoaded; |
} | } |
|
PEG_METHOD_EXIT(); |
return jProviderInstance; | return jProviderInstance; |
} | } |
| |
|
|
// className can be loaded via getGlobalClassRef (). | // className can be loaded via getGlobalClassRef (). |
// Load and return the instance. | // Load and return the instance. |
// NOTE: | // NOTE: |
// According to http://java.sun.com/j2se/1.5.0/docs/guide/jni/spec/functions.html |
// According to |
|
// http://java.sun.com/j2se/1.5.0/docs/guide/jni/spec/functions.html |
// In JDK 1.1, FindClass searched only local classes in CLASSPATH. | // In JDK 1.1, FindClass searched only local classes in CLASSPATH. |
| |
jClassLoaded = getGlobalClassRef (env, | jClassLoaded = getGlobalClassRef (env, |
(const char*)className.getCString ()); | (const char*)className.getCString ()); |
| |
DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jClassLoaded = "<<PEGASUS_STD(hex)<<(long)jClassLoaded<<PEGASUS_STD(dec)<<PEGASUS_STD(endl)); |
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4, |
|
"jClassLoaded = %p",jClassLoaded)); |
| |
if (env->ExceptionCheck ()) | if (env->ExceptionCheck ()) |
{ | { |
|
|
| |
// NOTE: Instances of "packageName/className" will not work with the jar | // NOTE: Instances of "packageName/className" will not work with the jar |
// class loader. Change the '/' to a '.'. | // class loader. Change the '/' to a '.'. |
String fixedClassName; |
String fixedClassName(className); |
Uint32 idx = className.find ('/'); |
static Char16 slash=Char16('/'); |
| |
if (idx != PEG_NOT_FOUND) |
for (Uint32 i=0; i<className.size(); i++) |
{ | { |
fixedClassName = className.subString (0, idx) |
if (fixedClassName[i]==slash) |
+ "." |
|
+ className.subString (idx + 1); |
|
} |
|
else |
|
{ | { |
fixedClassName = className; |
fixedClassName[i]=Char16('.'); |
} | } |
|
}; |
| |
DDD(PEGASUS_STD(cerr)<<"--- JMPIjvm::getProvider: fixedClassName = "<<fixedClassName<<PEGASUS_STD(endl)); |
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4, |
|
"fixedClassName = %s",(const char*)fixedClassName.getCString())); |
| |
jJarName = env->NewStringUTF ((const char*)jarName.getCString ()); | jJarName = env->NewStringUTF ((const char*)jarName.getCString ()); |
jClassName = env->NewStringUTF ((const char*)fixedClassName.getCString ()); | jClassName = env->NewStringUTF ((const char*)fixedClassName.getCString ()); |
| |
DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jJarName = "<<PEGASUS_STD(hex)<<(long)jJarName<<PEGASUS_STD(dec)<<PEGASUS_STD(endl)); |
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4, |
DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jClassName = "<<PEGASUS_STD(hex)<<(long)jClassName<<PEGASUS_STD(dec)<<PEGASUS_STD(endl)); |
"jJarName = %p, jClassName = %p", |
|
jJarName,jClassName)); |
| |
jClassLoadedLocal = (jclass)env->CallStaticObjectMethod (JMPIjvm::jv.JarClassLoaderClassRef, |
jClassLoadedLocal = (jclass)env->CallStaticObjectMethod( |
|
JMPIjvm::jv.JarClassLoaderClassRef, |
JMPIjvm::jv.JarClassLoaderLoad, | JMPIjvm::jv.JarClassLoaderLoad, |
jJarName, | jJarName, |
jClassName); | jClassName); |
| |
DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jClassLoadedLocal = "<<PEGASUS_STD(hex)<<(long)jClassLoadedLocal<<PEGASUS_STD(dec)<<PEGASUS_STD(endl)); |
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4, |
|
"jClassLoadedLocal = %p",jClassLoadedLocal)); |
| |
if (env->ExceptionCheck ()) | if (env->ExceptionCheck ()) |
{ | { |
DDD (env->ExceptionDescribe ()); |
env->ExceptionDescribe(); |
| |
DDD(PEGASUS_STD(cerr)<<"--- Unable to instantiate provider "<<pszProviderName<<PEGASUS_STD(endl)); |
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL1, |
|
"Unable to instantiate provider %s: " |
|
"Can not load Java class %s from jar %s.", |
|
pszProviderName, |
|
(const char*)fixedClassName.getCString(), |
|
(const char*)jarName.getCString())); |
| |
|
PEG_METHOD_EXIT(); |
return 0; | return 0; |
} | } |
| |
jClassLoaded = (jclass)env->NewGlobalRef (jClassLoadedLocal); | jClassLoaded = (jclass)env->NewGlobalRef (jClassLoadedLocal); |
| |
DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jClassLoaded = "<<PEGASUS_STD(hex)<<(long)jClassLoaded<<PEGASUS_STD(dec)<<PEGASUS_STD(endl)); |
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4, |
|
"jClassLoaded = %p",jClassLoaded)); |
| |
env->DeleteLocalRef (jClassLoadedLocal); | env->DeleteLocalRef (jClassLoadedLocal); |
} | } |
|
|
| |
if (!jClassLoaded) | if (!jClassLoaded) |
{ | { |
DDD(PEGASUS_STD(cerr)<<"--- Unable to instantiate provider "<<pszProviderName<<PEGASUS_STD(endl)); |
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL1, |
|
"Unable to instantiate provider %s: " |
|
"Can not load Java class.",pszProviderName)); |
|
PEG_METHOD_EXIT(); |
return 0; | return 0; |
} | } |
| |
jId = env->GetMethodID (jClassLoaded, |
jId = env->GetMethodID (jClassLoaded,"<init>","()V"); |
"<init>", |
|
"()V"); |
|
| |
DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jId = "<<PEGASUS_STD(hex)<<(long)jId<<PEGASUS_STD(dec)<<PEGASUS_STD(endl)); |
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4, |
|
"GetMethodID() jID = %p ",jId)); |
| |
jProviderInstanceLocal = env->NewObject (jClassLoaded, | jProviderInstanceLocal = env->NewObject (jClassLoaded, |
jId); | jId); |
| |
DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jProviderInstanceLocal = "<<PEGASUS_STD(hex)<<(long)jProviderInstanceLocal<<PEGASUS_STD(dec)<<PEGASUS_STD(endl)); |
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4, |
|
"NewObject() jProviderInstanceLocal = %p ", |
|
jProviderInstanceLocal)); |
| |
if (!jProviderInstanceLocal) | if (!jProviderInstanceLocal) |
{ | { |
DDD(PEGASUS_STD(cerr)<<"--- Unable to instantiate provider "<<pszProviderName<<PEGASUS_STD(endl)); |
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL1, |
|
"Unable to instantiate provider %s: " |
|
"No new Java object of provider.",pszProviderName)); |
|
PEG_METHOD_EXIT(); |
return 0; | return 0; |
} | } |
| |
jProviderInstance = (jobject)env->NewGlobalRef (jProviderInstanceLocal); | jProviderInstance = (jobject)env->NewGlobalRef (jProviderInstanceLocal); |
| |
DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jProviderInstance = "<<PEGASUS_STD(hex)<<(long)jProviderInstance<<PEGASUS_STD(dec)<<PEGASUS_STD(endl)); |
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4, |
|
"NewGlobalRef() jProviderInstance = %p ",jProviderInstance)); |
| |
if (!jProviderInstance) | if (!jProviderInstance) |
{ | { |
DDD(PEGASUS_STD(cerr)<<"--- Unable to instantiate provider "<<pszProviderName<<PEGASUS_STD(endl)); |
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL1, |
|
"Unable to instantiate provider %s: " |
|
"No global reference to provider object.",pszProviderName)); |
|
PEG_METHOD_EXIT(); |
return 0; | return 0; |
} | } |
| |
_classTable.insert (className, jClassLoaded); | _classTable.insert (className, jClassLoaded); |
_objectTable.insert (className, jProviderInstance); | _objectTable.insert (className, jProviderInstance); |
| |
|
PEG_METHOD_EXIT(); |
return jProviderInstance; | return jProviderInstance; |
} | } |
| |
|
|
jobject gProv = NULL; | jobject gProv = NULL; |
jclass scls = NULL; | jclass scls = NULL; |
| |
DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: cn = "<<cn<<", cls = "<<cls<<PEGASUS_STD(endl)); |
PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"JMPIjvm::getProvider"); |
|
|
|
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4, |
|
"cn = %s, cls = %p",cn,cls)); |
| |
_objectTable.lookup(cln,gProv); | _objectTable.lookup(cln,gProv); |
_classTable.lookup(cln,scls); | _classTable.lookup(cln,scls); |
DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: gProv = "<<PEGASUS_STD(hex)<<(long)gProv<<", scls = "<<(long)scls<<PEGASUS_STD(dec)<<PEGASUS_STD(endl)); |
|
|
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4, |
|
"gProv = %p, scls = %p",gProv,scls)); |
| |
if (gProv) | if (gProv) |
{ | { |
|
|
scls = getGlobalClassRef(env,cn); | scls = getGlobalClassRef(env,cn); |
if (env->ExceptionCheck()) | if (env->ExceptionCheck()) |
{ | { |
DDD(PEGASUS_STD(cerr)<<"--- JMPIjvm::getProvider: Provider "<<cn<<" not found"<<PEGASUS_STD(endl)); |
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL1, |
DDD(env->ExceptionDescribe()); |
"Provider %s not found: No global reference.",cn)); |
|
PEG_METHOD_EXIT(); |
return NULL; | return NULL; |
} | } |
*cls = scls; | *cls = scls; |
| |
if (scls) | if (scls) |
{ | { |
DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: scls = "<<PEGASUS_STD(hex)<<(long)scls<<PEGASUS_STD(dec)<<PEGASUS_STD(endl)); |
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4, |
|
"Inserting global reference %p into class table.",scls)); |
_classTable.insert(cln,scls); | _classTable.insert(cln,scls); |
} | } |
| |
|
|
gProv = (jobject)env->NewGlobalRef(lProv); | gProv = (jobject)env->NewGlobalRef(lProv); |
if (env->ExceptionCheck()) | if (env->ExceptionCheck()) |
{ | { |
DDD(PEGASUS_STD(cerr)<<"--- Unable to instantiate provider "<<cn<<PEGASUS_STD(endl)); |
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL1, |
|
"Unable to instantiate provider %s.",cn)); |
|
PEG_METHOD_EXIT(); |
return NULL; | return NULL; |
} | } |
| |
if (gProv) | if (gProv) |
{ | { |
DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: gProv = "<<PEGASUS_STD(hex)<<(long)gProv<<PEGASUS_STD(dec)<<PEGASUS_STD(endl)); |
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4, |
|
"Inserting provider reference %p into object table.",gProv)); |
_objectTable.insert(cln,gProv); | _objectTable.insert(cln,gProv); |
} | } |
| |
|
PEG_METHOD_EXIT(); |
return gProv; | return gProv; |
} | } |
| |
|
#if 0 |
|
|
|
// Java 1.4 version of programmatically accessting the backtrace stack |
|
// NOTE: Renumber to follow current content |
|
// add to: |
|
// const char* classNames[]={ |
|
///*37*/ "java/lang/StackTraceElement" |
|
// add to: |
|
// const METHOD_STRUCT instanceMethodNames[]={ |
|
///*57 ThrowableGetStackTrace */ { /*Throwable */ |
|
///21, "getStackTrace", "()Ljava/lang/StackTraceElement;" }, |
|
///*58 StackTraceElementGetClassName */ { /*StackTraceElement*/ |
|
///37, "getClassName", "()Ljava/lang/String;" }, |
|
///*59 StackTraceElementGetFileName */ { /*StackTraceElement*/ |
|
///37, "getFileName", "()Ljava/lang/String;" }, |
|
///*60 StackTraceElementGetLineNumber */ { /*StackTraceElement*/ |
|
///37, "getLineNumber", "()I" }, |
|
///*61 StackTraceElementGetMethodName */ { /*StackTraceElement*/ |
|
///37, "getMethodName", "()Ljava/lang/String;" } |
|
|
|
String getExceptionInfo (JNIEnv *env) |
|
{ |
|
jthrowable err = env->ExceptionOccurred (); |
|
jobjectArray stackTrace = 0; |
|
String rc; |
|
|
|
PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"getExceptionInfo"); |
|
|
|
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4, |
|
"err = %ld ",(long)(jlong)err)); |
|
|
|
if (!err) |
|
{ |
|
PEG_METHOD_EXIT(); |
|
return rc; |
|
} |
|
|
|
|
|
stackTrace = (jobjectArray)env->CallObjectMethod( |
|
err, |
|
JMPIjvm::jv.ThrowableGetStackTrace); |
|
|
|
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4, |
|
"stackTrace = %p ",stackTrace)); |
|
|
|
if (!stackTrace) |
|
{ |
|
PEG_METHOD_EXIT(); |
|
return rc; |
|
} |
|
|
|
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4, |
|
"stackTrace length = %d",(jlong)env->GetArrayLength(stackTrace))); |
|
|
|
jobject jFirstST = 0; |
|
jstring jClass = 0; |
|
jstring jFile = 0; |
|
jstring jMethod = 0; |
|
jint jLine = 0; |
|
|
|
jFirstST = env->GetObjectArrayElement (stackTrace, 0); |
|
|
|
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4, |
|
"jFirstST = %p",jFirstST)); |
|
|
|
if (!jFirstST) |
|
{ |
|
PEG_METHOD_EXIT(); |
|
return rc; |
|
} |
|
|
|
jClass = (jstring)env->CallObjectMethod( |
|
jFirstST, |
|
JMPIjvm::jv.StackTraceElementGetClassName); |
|
jFile = (jstring)env->CallObjectMethod( |
|
jFirstST, |
|
JMPIjvm::jv.StackTraceElementGetFileName); |
|
jMethod = (jstring)env->CallObjectMethod( |
|
jFirstST, |
|
JMPIjvm::jv.StackTraceElementGetMethodName); |
|
jLine = env->CallIntMethod( |
|
jFirstST, |
|
JMPIjvm::jv.StackTraceElementGetLineNumber); |
|
|
|
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4, |
|
"jClass = %p, jFile = %p, jMethod = %p, jLine = %p", |
|
jClass,jFile,jMethod,jLine)); |
|
|
|
const char *pszClass = 0; |
|
const char *pszFile = 0; |
|
const char *pszMethod = 0; |
|
|
|
pszClass = env->GetStringUTFChars (jClass, NULL); |
|
pszFile = env->GetStringUTFChars (jFile, NULL); |
|
pszMethod = env->GetStringUTFChars (jMethod, NULL); |
|
|
|
std::ostringstream oss; |
|
String exceptionInfo; |
|
|
|
if (pszFile) |
|
{ |
|
oss << "File: " << pszFile; |
|
|
|
env->ReleaseStringUTFChars (jFile, pszFile); |
|
} |
|
if (jLine) |
|
{ |
|
oss << ", Line: " << jLine; |
|
} |
|
if (pszClass) |
|
{ |
|
oss << ", Class: " << pszClass; |
|
|
|
env->ReleaseStringUTFChars (jClass, pszClass); |
|
} |
|
if (pszMethod) |
|
{ |
|
oss << ", Method: " << pszMethod; |
|
|
|
env->ReleaseStringUTFChars (jMethod, pszMethod); |
|
} |
|
|
|
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4, |
|
"oss = %s",(const char*)oss.str().c_str())); |
|
|
|
rc = oss.str ().c_str (); |
|
|
|
return rc; |
|
} |
|
|
|
#else |
|
|
|
String getExceptionInfo (JNIEnv *env) |
|
{ |
|
jthrowable err = env->ExceptionOccurred (); |
|
String rc; |
|
|
|
PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"getExceptionInfo"); |
|
|
|
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4, |
|
"err = %ld ",(long)(jlong)err)); |
|
|
|
if (!err) |
|
{ |
|
PEG_METHOD_EXIT(); |
|
return rc; |
|
} |
|
|
|
|
|
// ByteArrayOutputStream baos = new ByteArrayOutputStream (); |
|
// PrintStream ps = new PrintStream (baos); |
|
// e.printStackTrace (ps); |
|
// result = baos.toString (); |
|
|
|
jobject jBAOS = 0; |
|
jobject jPS = 0; |
|
|
|
jBAOS = env->NewObject (JMPIjvm::jv.ByteArrayOutputStreamClassRef, |
|
JMPIjvm::jv.ByteArrayOutputStreamNew); |
|
|
|
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4, "jBAOS = %p ",jBAOS)); |
|
|
|
if (!jBAOS) |
|
{ |
|
env->ExceptionDescribe (); |
|
|
|
PEG_METHOD_EXIT(); |
|
return rc; |
|
} |
|
|
|
jPS = env->NewObject (JMPIjvm::jv.PrintStreamClassRef, |
|
JMPIjvm::jv.PrintStreamNewOb, |
|
jBAOS); |
|
|
|
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4, "jPS = %p ",jPS)); |
|
|
|
if (!jPS) |
|
{ |
|
PEG_METHOD_EXIT(); |
|
return rc; |
|
} |
|
|
|
env->CallVoidMethod (err, |
|
JMPIjvm::jv.ThrowablePrintStackTrace, |
|
jPS); |
|
|
|
jstring jST = 0; |
|
|
|
jST = (jstring)env->CallObjectMethod( |
|
jBAOS, |
|
JMPIjvm::jv.ByteArrayOutputStreamToString); |
|
|
|
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4,"jST = %p ",jST)); |
|
|
|
const char *pszST = 0; |
|
|
|
pszST = env->GetStringUTFChars (jST, NULL); |
|
|
|
if (pszST) |
|
{ |
|
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4, |
|
"pszST = %s ",pszST)); |
|
|
|
rc = pszST; |
|
|
|
env->ReleaseStringUTFChars (jST, pszST); |
|
} |
|
|
|
PEG_METHOD_EXIT(); |
|
return rc; |
|
} |
|
|
|
#endif |
|
|
void JMPIjvm::checkException (JNIEnv *env) | void JMPIjvm::checkException (JNIEnv *env) |
{ | { |
if (env->ExceptionCheck ()) |
PEG_METHOD_ENTER(TRC_PROVIDERMANAGER,"JMPIjvm::checkException"); |
|
|
|
if (!env->ExceptionCheck ()) |
{ | { |
|
PEG_METHOD_EXIT(); |
|
return; |
|
} |
|
|
jstring jMsg = NULL, | jstring jMsg = NULL, |
jId = NULL; | jId = NULL; |
int code; | int code; |
const char *cp; | const char *cp; |
String msg = String::EMPTY, |
String msg; |
id = String::EMPTY; |
String id; |
jthrowable err = env->ExceptionOccurred(); | jthrowable err = env->ExceptionOccurred(); |
| |
DDD(env->ExceptionDescribe()); |
// PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4, |
|
// "err = %ld ",(long)(jlong)err)); |
|
|
|
if (!err) |
|
{ |
|
PEG_METHOD_EXIT(); |
|
return; |
|
} |
|
|
|
PEG_TRACE_CSTRING(TRC_PROVIDERMANAGER, Tracer::LEVEL1, |
|
"Provider caused an exception!"); |
|
|
|
env->ExceptionDescribe (); |
| |
if (env->IsInstanceOf (err, JMPIjvm::jv.CIMExceptionClassRef)) | if (env->IsInstanceOf (err, JMPIjvm::jv.CIMExceptionClassRef)) |
{ | { |
env->ExceptionClear (); | env->ExceptionClear (); |
if (err) |
|
{ |
jMsg = (jstring)env->CallObjectMethod( |
jMsg = (jstring)env->CallObjectMethod (err, JMPIjvm::jv.ThrowableGetMessage); |
err, |
code = (int)env->CallIntMethod (err, JMPIjvm::jv.CIMExceptionGetCode); |
JMPIjvm::jv.ThrowableGetMessage); |
jId = (jstring)env->CallObjectMethod (err, JMPIjvm::jv.CIMExceptionGetID); |
code = (int)env->CallIntMethod( |
|
err, |
|
JMPIjvm::jv.CIMExceptionGetCode); |
|
jId = (jstring)env->CallObjectMethod( |
|
err, |
|
JMPIjvm::jv.CIMExceptionGetID); |
| |
if (jId) | if (jId) |
{ | { |
|
|
env->ReleaseStringUTFChars (jMsg, cp); | env->ReleaseStringUTFChars (jMsg, cp); |
} | } |
| |
DDD(PEGASUS_STD(cerr)<<"--- throwing Pegasus exception: "<<code<<" "<<id<<" ("<<msg<<")"<<PEGASUS_STD(endl)); |
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL1, |
|
"throwing Pegasus exception: %d %s (%s)", |
|
code,(const char*)id.getCString(),(const char*)msg.getCString())); |
| |
|
PEG_METHOD_EXIT(); |
throw CIMException ((CIMStatusCode)code, id+" ("+msg+")"); | throw CIMException ((CIMStatusCode)code, id+" ("+msg+")"); |
} | } |
} |
|
else | else |
{ | { |
DDD(PEGASUS_STD(cerr)<<"--- JMPIjvm::checkException: exiting..."<<PEGASUS_STD(endl)); |
String info = getExceptionInfo (env); |
env->ExceptionDescribe(); |
|
exit(13); |
env->ExceptionClear (); |
} |
|
|
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL1, |
|
"Java caused an exception: %s",(const char*)info.getCString())); |
|
|
|
PEG_METHOD_EXIT(); |
|
|
|
throw PEGASUS_CIM_EXCEPTION_L( |
|
CIM_ERR_FAILED, |
|
MessageLoaderParms( |
|
"ProviderManager2.JMPI.JMPIImpl.JAVA_CAUSED_EXCEPTION.STANDARD", |
|
"Java caused an exception: $0", |
|
info)); |
} | } |
} | } |
| |
|
|
void throwCimException (JNIEnv *jEnv, CIMException &e) | void throwCimException (JNIEnv *jEnv, CIMException &e) |
{ | { |
JMPIjvm::cacheIDs(jEnv); | JMPIjvm::cacheIDs(jEnv); |
jobject ev = jEnv->NewObject(JMPIjvm::jv.CIMExceptionClassRef,JMPIjvm::jv.CIMExceptionNewI,(jint)e.getCode()); |
jobject ev = jEnv->NewObject( |
|
JMPIjvm::jv.CIMExceptionClassRef, |
|
JMPIjvm::jv.CIMExceptionNewI, |
|
(jint)e.getCode()); |
jEnv->Throw((jthrowable)ev); | jEnv->Throw((jthrowable)ev); |
} | } |
| |
void throwFailedException (JNIEnv *jEnv) | void throwFailedException (JNIEnv *jEnv) |
{ | { |
JMPIjvm::cacheIDs(jEnv); | JMPIjvm::cacheIDs(jEnv); |
jobject ev = jEnv->NewObject(JMPIjvm::jv.CIMExceptionClassRef,JMPIjvm::jv.CIMExceptionNewI,1); |
jobject ev = jEnv->NewObject( |
|
JMPIjvm::jv.CIMExceptionClassRef, |
|
JMPIjvm::jv.CIMExceptionNewI, |
|
1); |
jEnv->Throw((jthrowable)ev); | jEnv->Throw((jthrowable)ev); |
} | } |
| |
void throwNotSupportedException (JNIEnv *jEnv) | void throwNotSupportedException (JNIEnv *jEnv) |
{ | { |
JMPIjvm::cacheIDs(jEnv); | JMPIjvm::cacheIDs(jEnv); |
jobject ev = jEnv->NewObject(JMPIjvm::jv.CIMExceptionClassRef,JMPIjvm::jv.CIMExceptionNewI,7); |
jobject ev = jEnv->NewObject( |
|
JMPIjvm::jv.CIMExceptionClassRef, |
|
JMPIjvm::jv.CIMExceptionNewI, |
|
7); |
jEnv->Throw((jthrowable)ev); | jEnv->Throw((jthrowable)ev); |
} | } |
| |
|
|
| |
copNew.setNameSpace (cls->getPath ().getNameSpace ()); | copNew.setNameSpace (cls->getPath ().getNameSpace ()); |
ci->setPath (copNew); | ci->setPath (copNew); |
|
|
for (int i = 0, m = cls->getQualifierCount (); i < m; i++) | for (int i = 0, m = cls->getQualifierCount (); i < m; i++) |
{ | { |
try | try |
|
|
} | } |
} | } |
} | } |
|
|
return DEBUG_ConvertCToJava (CIMInstance*, jlong, ci); | return DEBUG_ConvertCToJava (CIMInstance*, jlong, ci); |
} | } |
Catch (jEnv); | Catch (jEnv); |
|
|
} | } |
| |
JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClass__1filterProperties | JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClass__1filterProperties |
(JNIEnv *jEnv, jobject jThs, jlong jInst, jobjectArray jPl, jboolean iq, jboolean ic, jboolean lo) |
(JNIEnv *jEnv, |
|
jobject jThs, |
|
jlong jInst, |
|
jobjectArray jPl, |
|
jboolean iq, |
|
jboolean ic, |
|
jboolean lo) |
{ | { |
CIMClass *cc = DEBUG_ConvertJavaToC (jlong, CIMClass*, jInst); | CIMClass *cc = DEBUG_ConvertJavaToC (jlong, CIMClass*, jInst); |
CIMClass *cf = 0; | CIMClass *cf = 0; |
|
|
{ | { |
CIMQualifier *cq = new CIMQualifier (cls->getQualifier (i)); | CIMQualifier *cq = new CIMQualifier (cls->getQualifier (i)); |
jlong jCq = DEBUG_ConvertCToJava (CIMQualifier*, jlong, cq); | jlong jCq = DEBUG_ConvertCToJava (CIMQualifier*, jlong, cq); |
jobject qual = jEnv->NewObject (JMPIjvm::jv.CIMQualifierClassRef,JMPIjvm::jv.CIMQualifierNewJ,jCq); |
jobject qual = jEnv->NewObject( |
|
JMPIjvm::jv.CIMQualifierClassRef, |
|
JMPIjvm::jv.CIMQualifierNewJ, |
|
jCq); |
| |
jEnv->CallVoidMethod (jVec,JMPIjvm::jv.VectorAddElement,qual); | jEnv->CallVoidMethod (jVec,JMPIjvm::jv.VectorAddElement,qual); |
} | } |
|
|
{ | { |
cls->removeProperty (i); | cls->removeProperty (i); |
} | } |
for (Uint32 i = 0, s = jEnv->CallIntMethod (jVec, JMPIjvm::jv.VectorSize); i < s; i++) |
for (Uint32 i = 0, s = jEnv->CallIntMethod( |
|
jVec, |
|
JMPIjvm::jv.VectorSize); i < s; i++) |
{ | { |
JMPIjvm::checkException (jEnv); | JMPIjvm::checkException (jEnv); |
| |
|
|
{ | { |
CIMProperty *cp = new CIMProperty (cls->getProperty (i)); | CIMProperty *cp = new CIMProperty (cls->getProperty (i)); |
jlong jCp = DEBUG_ConvertCToJava (CIMProperty*, jlong, cp); | jlong jCp = DEBUG_ConvertCToJava (CIMProperty*, jlong, cp); |
jobject prop = jEnv->NewObject (JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewJ,jCp); |
jobject prop = jEnv->NewObject( |
|
JMPIjvm::jv.CIMPropertyClassRef, |
|
JMPIjvm::jv.CIMPropertyNewJ, |
|
jCp); |
| |
jEnv->CallVoidMethod (jVec,JMPIjvm::jv.VectorAddElement,prop); | jEnv->CallVoidMethod (jVec,JMPIjvm::jv.VectorAddElement,prop); |
} | } |
|
|
CIMProperty *cp = new CIMProperty (cls->getProperty (pos)); | CIMProperty *cp = new CIMProperty (cls->getProperty (pos)); |
jlong jCp = DEBUG_ConvertCToJava (CIMProperty*, jlong, cp); | jlong jCp = DEBUG_ConvertCToJava (CIMProperty*, jlong, cp); |
| |
jobject prop = jEnv->NewObject (JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewJ,jCp); |
jobject prop = jEnv->NewObject( |
|
JMPIjvm::jv.CIMPropertyClassRef, |
|
JMPIjvm::jv.CIMPropertyNewJ, |
|
jCp); |
| |
jEnv->CallVoidMethod (jVec,JMPIjvm::jv.VectorAddElement,prop); | jEnv->CallVoidMethod (jVec,JMPIjvm::jv.VectorAddElement,prop); |
} | } |
|
|
| |
if (pos != PEG_NOT_FOUND) | if (pos != PEG_NOT_FOUND) |
{ | { |
rv = DEBUG_ConvertCToJava (CIMMethod*, jlong, new CIMMethod (cls->getMethod (pos))); |
rv = DEBUG_ConvertCToJava( |
|
CIMMethod*, |
|
jlong, |
|
new CIMMethod(cls->getMethod(pos))); |
} | } |
| |
jEnv->ReleaseStringUTFChars (jN,str); | jEnv->ReleaseStringUTFChars (jN,str); |
|
|
(JNIEnv *jEnv, jobject jThs, jlong jCls, jlong jClsToBeCompared) | (JNIEnv *jEnv, jobject jThs, jlong jCls, jlong jClsToBeCompared) |
{ | { |
CIMClass *cls = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCls); | CIMClass *cls = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCls); |
CIMClass *clsToBeCompared = DEBUG_ConvertJavaToC (jlong, CIMClass*, jClsToBeCompared); |
CIMClass *clsToBeCompared = DEBUG_ConvertJavaToC( |
|
jlong, |
|
CIMClass*, |
|
jClsToBeCompared); |
bool fRc = false; | bool fRc = false; |
| |
if ( cls |
if ( cls && clsToBeCompared ) |
&& clsToBeCompared |
|
) |
|
{ | { |
try | try |
{ | { |
|
|
return fRc; | return fRc; |
} | } |
| |
|
JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMClass__1isAssociation |
|
(JNIEnv *jEnv, jobject jThs, jlong jCls) |
|
{ |
|
CIMClass *cls = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCls); |
|
jboolean rv = false; |
|
|
|
if (cls) |
|
{ |
|
try |
|
{ |
|
rv = cls->isAssociation (); |
|
} |
|
Catch (jEnv); |
|
} |
|
|
|
return rv; |
|
} |
|
|
|
JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClass__1findMethod |
|
(JNIEnv *jEnv, jobject jThs, jlong jCls, jstring jName) |
|
{ |
|
CIMClass *cls = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCls); |
|
jint rv = -1; |
|
|
|
if (cls) |
|
{ |
|
const char *cstrName = jEnv->GetStringUTFChars (jName, NULL); |
|
|
|
try |
|
{ |
|
CIMName name (cstrName); |
|
|
|
rv = cls->findMethod (name); |
|
} |
|
Catch (jEnv); |
|
|
|
jEnv->ReleaseStringUTFChars (jName, cstrName); |
|
} |
|
|
|
return rv; |
|
} |
|
|
|
JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClass__1getMethodI |
|
(JNIEnv *jEnv, jobject jThs, jlong jCls, jint jMethod) |
|
{ |
|
CIMClass *cls = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCls); |
|
jlong rv = 0; |
|
|
|
if (cls && jMethod >=0) |
|
{ |
|
try |
|
{ |
|
CIMMethod cm = cls->getMethod (jMethod); |
|
|
|
rv = DEBUG_ConvertCToJava (CIMMethod *, jlong, new CIMMethod (cm)); |
|
} |
|
Catch (jEnv); |
|
} |
|
|
|
return rv; |
|
} |
|
|
|
JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClass__1getMethodCount |
|
(JNIEnv *jEnv, jobject jThs, jlong jCls) |
|
{ |
|
CIMClass *cls = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCls); |
|
jint rv = 0; |
|
|
|
if (cls) |
|
{ |
|
try |
|
{ |
|
rv = cls->getMethodCount (); |
|
} |
|
Catch (jEnv); |
|
} |
|
|
|
return rv; |
|
} |
|
|
JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClass__1finalize | JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClass__1finalize |
(JNIEnv *jEnv, jobject jThs, jlong jCls) | (JNIEnv *jEnv, jobject jThs, jlong jCls) |
{ | { |
|
|
return 0; | return 0; |
} | } |
| |
|
Boolean verifyServerCertificate (SSLCertificateInfo &certInfo) |
|
{ |
|
// |
|
// If server certificate was found in CA trust store and validated, then |
|
// return 'true' to accept the certificate, otherwise return 'false'. |
|
// |
|
if (certInfo.getResponseCode () == 1) |
|
{ |
|
return true; |
|
} |
|
else |
|
{ |
|
return false; |
|
} |
|
} |
|
|
JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1newNaUnPw | JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1newNaUnPw |
(JNIEnv *jEnv, jobject jThs, jlong jNs, jstring jUn, jstring jPw) | (JNIEnv *jEnv, jobject jThs, jlong jNs, jstring jUn, jstring jPw) |
{ | { |
|
|
const char *pw = jEnv->GetStringUTFChars (jPw, NULL); | const char *pw = jEnv->GetStringUTFChars (jPw, NULL); |
jlong jCc = 0; | jlong jCc = 0; |
| |
|
SSLContext *sslContext = 0; // initialized for unencrypted connection |
|
|
|
#ifdef PEGASUS_HAS_SSL |
|
if (cNs->isHttps ()) |
|
{ |
|
try |
|
{ |
|
sslContext = new SSLContext (PEGASUS_SSLCLIENT_CERTIFICATEFILE, |
|
verifyServerCertificate, |
|
PEGASUS_SSLCLIENT_RANDOMFILE); |
|
} |
|
catch (Exception &e) |
|
{ |
|
cerr << "JMPI: Error: could not create SSLContext: " |
|
<< e.getMessage() << endl; |
|
return jCc; |
|
} |
|
} |
|
#endif |
|
|
try { | try { |
CIMClient *cc = new CIMClient (); | CIMClient *cc = new CIMClient (); |
| |
|
if (sslContext) |
|
{ |
|
cc->connect (cNs->hostName (), cNs->port (), *sslContext, un, pw); |
|
} |
|
else |
|
{ |
cc->connect (cNs->hostName (), cNs->port (), un, pw); | cc->connect (cNs->hostName (), cNs->port (), un, pw); |
|
} |
| |
jCc = DEBUG_ConvertCToJava (CIMClient*, jlong, cc); | jCc = DEBUG_ConvertCToJava (CIMClient*, jlong, cc); |
} | } |
|
|
jEnv->ReleaseStringUTFChars (jUn, un); | jEnv->ReleaseStringUTFChars (jUn, un); |
jEnv->ReleaseStringUTFChars (jPw, pw); | jEnv->ReleaseStringUTFChars (jPw, pw); |
| |
|
delete sslContext; |
|
|
return jCc; | return jCc; |
} | } |
| |
|
|
Catch (jEnv); | Catch (jEnv); |
} | } |
| |
JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1enumerateClasses |
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) |
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); | CIMClient *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc); |
CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop); | CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop); |
|
|
(Boolean)iq, | (Boolean)iq, |
(Boolean)ic); | (Boolean)ic); |
| |
return DEBUG_ConvertCToJava (Array<CIMClass>*, jlong, new Array<CIMClass> (enm)); |
return DEBUG_ConvertCToJava( |
|
Array<CIMClass>*, |
|
jlong, |
|
new Array<CIMClass> (enm)); |
} | } |
Catch (jEnv); | Catch (jEnv); |
| |
|
|
try { | try { |
checkNs (cop,jNs); | checkNs (cop,jNs); |
| |
Array<CIMObjectPath> enm = cCc->enumerateInstanceNames (cop->getNameSpace (), |
Array<CIMObjectPath> enm = cCc->enumerateInstanceNames( |
|
cop->getNameSpace(), |
cop->getClassName ()); //, (Boolean)deep); | cop->getClassName ()); //, (Boolean)deep); |
| |
return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jlong, new Array<CIMObjectPath> (enm)); |
return DEBUG_ConvertCToJava( |
|
Array<CIMObjectPath>*, |
|
jlong, |
|
new Array<CIMObjectPath> (enm)); |
} | } |
Catch (jEnv); | Catch (jEnv); |
| |
return 0; | return 0; |
} | } |
| |
JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1enumerateInstances |
JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1enumerateInstances( |
(JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jboolean deep, jboolean lo, |
JNIEnv *jEnv, |
jboolean iq, jboolean ic, jobjectArray jPl) |
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); | CIMClient *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc); |
CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop); | CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop); |
|
|
(Boolean)iq, | (Boolean)iq, |
(Boolean)ic,pl); | (Boolean)ic,pl); |
| |
return DEBUG_ConvertCToJava (Array<CIMInstance>*, jlong, new Array<CIMInstance> (enm)); |
return DEBUG_ConvertCToJava( |
|
Array<CIMInstance>*, |
|
jlong, |
|
new Array<CIMInstance> (enm)); |
} | } |
Catch (jEnv); | Catch (jEnv); |
| |
|
|
| |
Array<CIMQualifierDecl> enm = cCc->enumerateQualifiers (cop->getNameSpace ()); | Array<CIMQualifierDecl> enm = cCc->enumerateQualifiers (cop->getNameSpace ()); |
| |
return DEBUG_ConvertCToJava (Array<CIMQualifierDecl>*, jlong, new Array<CIMQualifierDecl> (enm)); |
return DEBUG_ConvertCToJava( |
|
Array<CIMQualifierDecl>*, |
|
jlong, |
|
new Array<CIMQualifierDecl> (enm)); |
} | } |
Catch (jEnv); | Catch (jEnv); |
| |
|
|
try { | try { |
checkNs (cop,jNs); | checkNs (cop,jNs); |
| |
CIMQualifierDecl *val = new CIMQualifierDecl (cCc->getQualifier (cop->getNameSpace (), |
CIMQualifierDecl *val = new CIMQualifierDecl( |
|
cCc->getQualifier( |
|
cop->getNameSpace (), |
cop->getClassName ())); | cop->getClassName ())); |
| |
return DEBUG_ConvertCToJava (CIMQualifierDecl*, jlong, val); | return DEBUG_ConvertCToJava (CIMQualifierDecl*, jlong, val); |
|
|
try { | try { |
checkNs (cop, jNs); | checkNs (cop, jNs); |
| |
CIMValue *val = new CIMValue (cCc->getProperty (cop->getNameSpace (), *cop, pName)); |
CIMValue *val = new CIMValue(cCc->getProperty( |
|
cop->getNameSpace(), |
|
*cop, |
|
pName)); |
| |
jCv = DEBUG_ConvertCToJava (CIMValue*, jlong, val); | jCv = DEBUG_ConvertCToJava (CIMValue*, jlong, val); |
} | } |
|
|
return jCv; | return jCv; |
} | } |
| |
JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1setProperty |
JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1setProperty( |
(JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jstring jPn, jlong jV) |
JNIEnv *jEnv, |
|
jobject jThs, |
|
jlong jCc, |
|
jlong jNs, |
|
jlong jCop, |
|
jstring jPn, |
|
jlong jV) |
{ | { |
CIMClient *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc); | CIMClient *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc); |
CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop); | CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop); |
|
|
jEnv->ReleaseStringUTFChars (jPn, str); | jEnv->ReleaseStringUTFChars (jPn, str); |
} | } |
| |
JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1execQuery |
JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1execQuery( |
(JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jstring jQuery, jstring jQl) |
JNIEnv *jEnv, |
|
jobject jThs, |
|
jlong jCc, |
|
jlong jNs, |
|
jlong jCop, |
|
jstring jQuery, |
|
jstring jQl) |
{ | { |
CIMClient *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc); | CIMClient *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc); |
CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop); | CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop); |
const char *str = jEnv->GetStringUTFChars (jQuery, NULL); | const char *str = jEnv->GetStringUTFChars (jQuery, NULL); |
String query (str); | 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); | jEnv->ReleaseStringUTFChars (jQuery, str); |
| |
str = jEnv->GetStringUTFChars (jQl, NULL); | str = jEnv->GetStringUTFChars (jQl, NULL); |
|
|
return 0; | return 0; |
} | } |
| |
JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1invokeMethod |
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) |
JNIEnv *jEnv, |
|
jobject jThs, |
|
jlong jCc, |
|
jlong jNs, |
|
jlong jCop, |
|
jstring jMn, |
|
jobject jIn, |
|
jobject jOut) |
{ | { |
JMPIjvm::cacheIDs (jEnv); | JMPIjvm::cacheIDs (jEnv); |
| |
|
|
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)); |
| |
for (int i = 0,m = out.size (); i<m; i++) | for (int i = 0,m = out.size (); i<m; i++) |
{ | { |
const CIMParamValue &parm = out[i]; | const CIMParamValue &parm = out[i]; |
const CIMValue v = parm.getValue (); | const CIMValue v = parm.getValue (); |
CIMProperty *p = new CIMProperty (parm.getParameterName (),v,v.getArraySize ()); |
CIMProperty *p = new CIMProperty( |
|
parm.getParameterName(), |
|
v, |
|
v.getArraySize()); |
jlong jp = DEBUG_ConvertCToJava (CIMProperty*, jlong, p); | jlong jp = DEBUG_ConvertCToJava (CIMProperty*, jlong, p); |
jobject prop = jEnv->NewObject (JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewJ,jp); |
jobject prop = jEnv->NewObject( |
|
JMPIjvm::jv.CIMPropertyClassRef, |
|
JMPIjvm::jv.CIMPropertyNewJ, |
|
jp); |
| |
jEnv->CallVoidMethod (jOut,JMPIjvm::jv.VectorAddElement,prop); | jEnv->CallVoidMethod (jOut,JMPIjvm::jv.VectorAddElement,prop); |
} | } |
|
|
CIMParamValue *parm = new CIMParamValue (out[i]); | CIMParamValue *parm = new CIMParamValue (out[i]); |
jlong jParm = DEBUG_ConvertCToJava (CIMParamValue*, jlong, parm); | jlong jParm = DEBUG_ConvertCToJava (CIMParamValue*, jlong, parm); |
| |
jEnv->SetObjectArrayElement (jOut, |
jEnv->SetObjectArrayElement( |
|
jOut, |
i, | i, |
jEnv->NewObject (JMPIjvm::jv.CIMArgumentClassRef,JMPIjvm::jv.CIMArgumentNewJ,jParm)); |
jEnv->NewObject( |
|
JMPIjvm::jv.CIMArgumentClassRef, |
|
JMPIjvm::jv.CIMArgumentNewJ, |
|
jParm)); |
} | } |
} | } |
jCv = DEBUG_ConvertCToJava (CIMValue*, jlong, val); | jCv = DEBUG_ConvertCToJava (CIMValue*, jlong, val); |
|
|
return jCv; | return jCv; |
} | } |
| |
JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1associatorNames |
JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1associatorNames( |
(JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, |
JNIEnv *jEnv, |
jstring jAssocClass, jstring jResultClass, jstring jRole, jstring jResultRole) |
jobject jThs, |
|
jlong jCc, |
|
jlong jNs, |
|
jlong jCop, |
|
jstring jAssocClass, |
|
jstring jResultClass, |
|
jstring jRole, |
|
jstring jResultRole) |
{ | { |
CIMClient *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc); | CIMClient *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc); |
CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop); | CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop); |
|
|
} | } |
else | else |
{ | { |
jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef, |
jobject ev = jEnv->NewObject( |
|
JMPIjvm::jv.CIMExceptionClassRef, |
JMPIjvm::jv.CIMExceptionNewISt, | JMPIjvm::jv.CIMExceptionNewISt, |
(jint)4, // CIM_ERR_INVALID_PARAMETER | (jint)4, // CIM_ERR_INVALID_PARAMETER |
jEnv->NewStringUTF ("Invalid association class name")); |
jEnv->NewStringUTF( |
|
"Invalid association class name")); |
| |
jEnv->Throw ((jthrowable)ev); | jEnv->Throw ((jthrowable)ev); |
| |
|
|
jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef, | jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef, |
JMPIjvm::jv.CIMExceptionNewISt, | JMPIjvm::jv.CIMExceptionNewISt, |
(jint)4, // CIM_ERR_INVALID_PARAMETER | (jint)4, // CIM_ERR_INVALID_PARAMETER |
jEnv->NewStringUTF ("Invalid result class name")); |
jEnv->NewStringUTF( |
|
"Invalid result class name")); |
| |
jEnv->Throw ((jthrowable)ev); | jEnv->Throw ((jthrowable)ev); |
| |
|
|
resultClass, | resultClass, |
role, | role, |
resultRole); | resultRole); |
return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jlong, new Array<CIMObjectPath> (enm)); |
return DEBUG_ConvertCToJava( |
|
Array<CIMObjectPath>*, |
|
jlong, |
|
new Array<CIMObjectPath> (enm)); |
} | } |
Catch (jEnv); | Catch (jEnv); |
| |
return 0; | return 0; |
} | } |
| |
JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1associators |
JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1associators( |
(JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, |
JNIEnv *jEnv, |
jstring jAssocClass, jstring jResultClass, jstring jRole, jstring jResultRole, |
jobject jThs, |
jboolean includeQualifiers, jboolean includeClassOrigin, jobjectArray jPl) |
jlong jCc, |
|
jlong jNs, |
|
jlong jCop, |
|
jstring jAssocClass, |
|
jstring jResultClass, |
|
jstring jRole, |
|
jstring jResultRole, |
|
jboolean includeQualifiers, |
|
jboolean includeClassOrigin, |
|
jobjectArray jPl) |
{ | { |
CIMClient *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc); | CIMClient *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc); |
CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop); | CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop); |
|
|
jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef, | jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef, |
JMPIjvm::jv.CIMExceptionNewISt, | JMPIjvm::jv.CIMExceptionNewISt, |
(jint)4, // CIM_ERR_INVALID_PARAMETER | (jint)4, // CIM_ERR_INVALID_PARAMETER |
jEnv->NewStringUTF ("Invalid association class name")); |
jEnv->NewStringUTF( |
|
"Invalid association class name")); |
| |
jEnv->Throw ((jthrowable)ev); | jEnv->Throw ((jthrowable)ev); |
| |
|
|
jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef, | jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef, |
JMPIjvm::jv.CIMExceptionNewISt, | JMPIjvm::jv.CIMExceptionNewISt, |
(jint)4, // CIM_ERR_INVALID_PARAMETER | (jint)4, // CIM_ERR_INVALID_PARAMETER |
jEnv->NewStringUTF ("Invalid result class name")); |
jEnv->NewStringUTF( |
|
"Invalid result class name")); |
| |
jEnv->Throw ((jthrowable)ev); | jEnv->Throw ((jthrowable)ev); |
| |
|
|
jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef, | jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef, |
JMPIjvm::jv.CIMExceptionNewISt, | JMPIjvm::jv.CIMExceptionNewISt, |
(jint)4, // CIM_ERR_INVALID_PARAMETER | (jint)4, // CIM_ERR_INVALID_PARAMETER |
jEnv->NewStringUTF ("Invalid association class name")); |
jEnv->NewStringUTF( |
|
"Invalid association class name")); |
| |
jEnv->Throw ((jthrowable)ev); | jEnv->Throw ((jthrowable)ev); |
| |
|
|
assocClass, | assocClass, |
role); | role); |
| |
return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jlong, new Array<CIMObjectPath> (enm)); |
return DEBUG_ConvertCToJava( |
|
Array<CIMObjectPath>*, |
|
jlong, |
|
new Array<CIMObjectPath> (enm)); |
} | } |
Catch (jEnv); | Catch (jEnv); |
| |
|
|
jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef, | jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef, |
JMPIjvm::jv.CIMExceptionNewISt, | JMPIjvm::jv.CIMExceptionNewISt, |
(jint)4, // CIM_ERR_INVALID_PARAMETER | (jint)4, // CIM_ERR_INVALID_PARAMETER |
jEnv->NewStringUTF ("Invalid association class name")); |
jEnv->NewStringUTF( |
|
"Invalid association class name")); |
| |
jEnv->Throw ((jthrowable)ev); | jEnv->Throw ((jthrowable)ev); |
| |
|
|
normalizeNs (ns, nsBase, lastNsComp); | normalizeNs (ns, nsBase, lastNsComp); |
| |
CIMInstance newInstance (CIMName ("__Namespace")); | CIMInstance newInstance (CIMName ("__Namespace")); |
newInstance.addProperty (CIMProperty (CIMName ("name"), lastNsComp)); |
newInstance.addProperty(CIMProperty(PEGASUS_PROPERTYNAME_NAME, lastNsComp)); |
| |
try { | try { |
cCc->createInstance (CIMNamespaceName (nsBase), newInstance); | cCc->createInstance (CIMNamespaceName (nsBase), newInstance); |
|
|
Catch (jEnv); | Catch (jEnv); |
} | } |
| |
JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_CIMClient__1enumerateNameSpaces |
JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_CIMClient__1enumerateNameSpaces( |
(JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jCop, jboolean deep, jobject jVec) |
JNIEnv *jEnv, |
|
jobject jThs, |
|
jlong jCc, |
|
jlong jCop, |
|
jboolean deep, |
|
jobject jVec) |
{ | { |
JMPIjvm::cacheIDs (jEnv); | JMPIjvm::cacheIDs (jEnv); |
| |
|
|
String ns = cop->getNameSpace ().getString (); | String ns = cop->getNameSpace ().getString (); |
| |
try { | try { |
Array<CIMObjectPath> enm = cCc->enumerateInstanceNames (cop->getNameSpace (), |
Array<CIMObjectPath> enm = cCc->enumerateInstanceNames( |
|
cop->getNameSpace(), |
CIMName ("__Namespace")); | CIMName ("__Namespace")); |
| |
for (int i = 0, s = enm.size (); i < s; i++) | for (int i = 0, s = enm.size (); i < s; i++) |
|
|
CIMName ("__Namespace")); | CIMName ("__Namespace")); |
Array<CIMKeyBinding> kb; | Array<CIMKeyBinding> kb; |
| |
kb.append (CIMKeyBinding (("Name"),CIMValue (lastNsComp))); |
kb.append (CIMKeyBinding (PEGASUS_PROPERTYNAME_NAME,CIMValue (lastNsComp))); |
cop.setKeyBindings (kb); | cop.setKeyBindings (kb); |
| |
try { | try { |
|
|
(JNIEnv *jEnv, jobject jThs, jint type, jstring jRef) | (JNIEnv *jEnv, jobject jThs, jint type, jstring jRef) |
{ | { |
const char *ref = jEnv->GetStringUTFChars (jRef,NULL); | const char *ref = jEnv->GetStringUTFChars (jRef,NULL); |
jlong cInst = DEBUG_ConvertCToJava (_dataType*, jlong, new _dataType (type,String (ref))); |
jlong cInst = DEBUG_ConvertCToJava( |
|
_dataType*, |
|
jlong, |
|
new _dataType(type,String (ref))); |
| |
jEnv->ReleaseStringUTFChars (jRef,ref); | jEnv->ReleaseStringUTFChars (jRef,ref); |
| |
|
|
{ | { |
CIMDateTime *ct = DEBUG_ConvertJavaToC (jlong, CIMDateTime*, jC); | CIMDateTime *ct = DEBUG_ConvertJavaToC (jlong, CIMDateTime*, jC); |
CIMDateTime *dt = DEBUG_ConvertJavaToC (jlong, CIMDateTime*, jD); | CIMDateTime *dt = DEBUG_ConvertJavaToC (jlong, CIMDateTime*, jD); |
jboolean ret = 0; |
jboolean rv = 0; |
| |
if ( ct | if ( ct |
&& dt | && dt |
) | ) |
{ | { |
ret = (jboolean)(ct->getDifference (*ct, *dt) < 0); |
rv = (jboolean)(ct->getDifference (*ct, *dt) < 0); |
} | } |
| |
return ret; |
return rv; |
} | } |
| |
JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMDateTime__1before | JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMDateTime__1before |
|
|
{ | { |
CIMDateTime *ct = DEBUG_ConvertJavaToC (jlong, CIMDateTime*, jC); | CIMDateTime *ct = DEBUG_ConvertJavaToC (jlong, CIMDateTime*, jC); |
CIMDateTime *dt = DEBUG_ConvertJavaToC (jlong, CIMDateTime*, jD); | CIMDateTime *dt = DEBUG_ConvertJavaToC (jlong, CIMDateTime*, jD); |
jboolean ret = 0; |
jboolean rv = 0; |
| |
if ( ct | if ( ct |
&& dt | && dt |
) | ) |
{ | { |
ret = (jboolean)(ct->getDifference (*ct, *dt) > 0); |
rv = (jboolean)(ct->getDifference (*ct, *dt) > 0); |
} | } |
| |
return ret; |
return rv; |
} | } |
| |
JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMDateTime__1finalize | JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMDateTime__1finalize |
|
|
DEBUG_ConvertCleanup (jlong, jDT); | DEBUG_ConvertCleanup (jlong, jDT); |
} | } |
| |
|
JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMDateTime__1getCIMString |
|
(JNIEnv *jEnv, jobject jThs, jlong jDT) |
|
{ |
|
CIMDateTime *cdt = DEBUG_ConvertJavaToC (jlong, CIMDateTime*, jDT); |
|
jstring jRet = 0; |
|
|
|
if (cdt) |
|
{ |
|
String dateString = cdt->toString (); |
|
|
|
if (dateString.size () > 0) |
|
{ |
|
jRet = jEnv->NewStringUTF (dateString.getCString ()); |
|
} |
|
} |
|
|
|
return jRet; |
|
} |
|
|
|
JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMDateTime__1getMicroseconds |
|
(JNIEnv *jEnv, jobject jThs, jlong jDT) |
|
{ |
|
CIMDateTime *cdt = DEBUG_ConvertJavaToC (jlong, CIMDateTime*, jDT); |
|
jlong jRet = 0; |
|
|
|
if (cdt) |
|
{ |
|
// Convert from 1 BCE epoch to POSIX 1970 microseconds |
|
jRet = cdt->toMicroSeconds () - PEGASUS_UINT64_LITERAL(62167219200000000); |
|
} |
|
|
|
return jRet; |
|
} |
|
|
| |
// ------------------------------------- | // ------------------------------------- |
// --- | // --- |
|
|
return DEBUG_ConvertCToJava (CIMInstance*, jlong, ci); | return DEBUG_ConvertCToJava (CIMInstance*, jlong, ci); |
} | } |
| |
JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMInstance__1filterProperties |
JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMInstance__1filterProperties( |
(JNIEnv *jEnv, jobject jThs, jlong jInst, jobjectArray jPl, jboolean iq, jboolean ic, jboolean lo) |
JNIEnv *jEnv, |
|
jobject jThs, |
|
jlong jInst, |
|
jobjectArray jPl, |
|
jboolean iq, |
|
jboolean ic, |
|
jboolean lo) |
{ | { |
CIMInstance *ci = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jInst); | CIMInstance *ci = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jInst); |
CIMInstance *cf = 0; | CIMInstance *cf = 0; |
|
|
} | } |
else | else |
{ | { |
throw CIMException (CIM_ERR_TYPE_MISMATCH, String ("Property type mismatch")); |
throw CIMException( |
|
CIM_ERR_TYPE_MISMATCH, |
|
String ("Property type mismatch")); |
} | } |
| |
ci->removeProperty (pos); | ci->removeProperty (pos); |
|
|
} | } |
else | else |
{ | { |
CIMProperty *cp = new CIMProperty (CIMName (str), *cv); |
CIMProperty *cp; |
|
|
|
if (cv->getType() != CIMTYPE_REFERENCE) |
|
{ |
|
cp = new CIMProperty (CIMName (str), *cv); |
|
} |
|
else |
|
{ |
|
if (!cv->isArray ()) |
|
{ |
|
CIMObjectPath cop; |
|
|
|
cv->get (cop); |
|
cp = new CIMProperty(CIMName(str),*cv,0,cop.getClassName()); |
|
} |
|
else |
|
{ |
|
throwCIMException( |
|
jEnv, |
|
"+++ unsupported type in CIMProperty.property"); |
|
} |
|
} |
| |
ci->addProperty (*cp); | ci->addProperty (*cp); |
} | } |
|
|
| |
JMPIjvm::checkException (jEnv); | JMPIjvm::checkException (jEnv); |
| |
jlong jCpRef = jEnv->CallLongMethod (jProp, JMPIjvm::jv.CIMPropertyCInst); |
jlong jCpRef = jEnv->CallLongMethod( |
CIMProperty *cpNew = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jCpRef); |
jProp, |
|
JMPIjvm::jv.CIMPropertyCInst); |
|
CIMProperty *cpNew = DEBUG_ConvertJavaToC( |
|
jlong, |
|
CIMProperty*, |
|
jCpRef); |
| |
if (cpNew) | if (cpNew) |
{ | { |
|
|
} | } |
else | else |
{ | { |
throw CIMException (CIM_ERR_TYPE_MISMATCH, String ("Property type mismatch")); |
throw CIMException( |
|
CIM_ERR_TYPE_MISMATCH, |
|
String ("Property type mismatch")); |
} | } |
} | } |
} | } |
|
|
| |
for (Uint32 i = 0; i < keyNames.size (); i++) | for (Uint32 i = 0; i < keyNames.size (); i++) |
{ | { |
DDD(PEGASUS_STD (cout) << "finding key " << keyNames[i].getString () << PEGASUS_STD (endl)); |
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4, |
|
"finding key %s ", |
|
(const char*)keyNames[i].getString().getCString())); |
| |
for (Uint32 j = 0; j < ci->getPropertyCount (); j++) | for (Uint32 j = 0; j < ci->getPropertyCount (); j++) |
{ | { |
|
|
| |
if (cp.getName () == keyNames[i]) | if (cp.getName () == keyNames[i]) |
{ | { |
DDD(PEGASUS_STD (cout) << "adding key (" << j << ") " << keyNames[i].getString () << PEGASUS_STD (endl)); |
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL4, |
|
"adding key (%d) %s ",i, |
|
(const char*)keyNames[i].getString().getCString())); |
| |
CIMProperty *cpRef = new CIMProperty (cp); | CIMProperty *cpRef = new CIMProperty (cp); |
jlong jCpRef = DEBUG_ConvertCToJava (CIMProperty*, jlong, cpRef); | jlong jCpRef = DEBUG_ConvertCToJava (CIMProperty*, jlong, cpRef); |
jobject jProp = jEnv->NewObject (JMPIjvm::jv.CIMPropertyClassRef, |
jobject jProp = jEnv->NewObject( |
|
JMPIjvm::jv.CIMPropertyClassRef, |
JMPIjvm::jv.CIMPropertyNewJ, | JMPIjvm::jv.CIMPropertyNewJ, |
jCpRef); | jCpRef); |
| |
|
|
CIMProperty *cp = new CIMProperty (ci->getProperty (i)); | CIMProperty *cp = new CIMProperty (ci->getProperty (i)); |
jlong jCp = DEBUG_ConvertCToJava (CIMProperty*, jlong, cp); | jlong jCp = DEBUG_ConvertCToJava (CIMProperty*, jlong, cp); |
| |
jobject prop = jEnv->NewObject (JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewJ,jCp); |
jobject prop = jEnv->NewObject( |
|
JMPIjvm::jv.CIMPropertyClassRef, |
|
JMPIjvm::jv.CIMPropertyNewJ, |
|
jCp); |
| |
jEnv->CallVoidMethod (jVec,JMPIjvm::jv.VectorAddElement,prop); | jEnv->CallVoidMethod (jVec,JMPIjvm::jv.VectorAddElement,prop); |
} | } |
|
|
return jVec; | return jVec; |
} | } |
| |
JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMInstance__1getClassName |
JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMInstance__1getClassName( |
(JNIEnv *jEnv, jobject jThs, jlong jInst) |
JNIEnv *jEnv, |
|
jobject jThs, |
|
jlong jInst) |
{ | { |
CIMInstance *ci = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jInst); | CIMInstance *ci = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jInst); |
const String &cn = ci->getClassName ().getString (); | const String &cn = ci->getClassName ().getString (); |
|
|
JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMInstance__1getPropertyI | JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMInstance__1getPropertyI |
(JNIEnv *jEnv, jobject jThs, jlong jciCi, jint ji) | (JNIEnv *jEnv, jobject jThs, jlong jciCi, jint ji) |
{ | { |
CIMInstance *ci = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jciCi); |
CIMInstance *ci = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jciCi); |
CIMProperty *cpRet = NULL; |
CIMProperty *cpRet = NULL; |
|
|
|
try |
|
{ |
|
if (ci) |
|
{ |
|
CIMProperty cp; |
|
|
|
cp = ci->getProperty (ji); |
|
|
|
cpRet = new CIMProperty (cp); |
|
} |
|
} |
|
Catch (jEnv); |
|
|
|
return DEBUG_ConvertCToJava (CIMProperty*, jlong, cpRet); |
|
} |
|
|
|
|
|
// ------------------------------------- |
|
// --- |
|
// - CIMMethod |
|
// --- |
|
// ------------------------------------- |
|
|
|
JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMMethod__1getType |
|
(JNIEnv *jEnv, jobject jThs, jlong jM) |
|
{ |
|
CIMMethod *cm = DEBUG_ConvertJavaToC (jlong, CIMMethod*, jM); |
|
bool fSuccess = false; |
|
jint jType = 0; |
|
|
|
if (cm) |
|
{ |
|
CIMType ct = cm->getType (); |
|
|
|
jType = _dataType::convertCTypeToJavaType (ct, &fSuccess); |
|
} |
|
|
|
return jType; |
|
} |
|
|
|
JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMMethod__1getName |
|
(JNIEnv *jEnv, jobject jThs, jlong jM) |
|
{ |
|
CIMMethod *cm = DEBUG_ConvertJavaToC (jlong, CIMMethod*, jM); |
|
jstring str = 0; |
|
|
|
if (cm) |
|
{ |
|
CIMName cn = cm->getName (); |
|
|
|
str = jEnv->NewStringUTF (cn.getString ().getCString ()); |
|
} |
|
|
|
return str; |
|
} |
|
|
|
JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMMethod__1findParameter |
|
(JNIEnv *jEnv, jobject jThs, jlong jM, jstring jName) |
|
{ |
|
CIMMethod *cm = DEBUG_ConvertJavaToC (jlong, CIMMethod*, jM); |
|
jint rv = -1; |
|
|
|
if (cm && jName) |
|
{ |
|
const char *cstrName = jEnv->GetStringUTFChars (jName, NULL); |
|
|
|
try |
|
{ |
|
CIMName name (cstrName); |
|
|
|
rv = cm->findParameter (name); |
|
} |
|
Catch (jEnv); |
|
|
|
jEnv->ReleaseStringUTFChars (jName, cstrName); |
|
} |
|
|
|
return rv; |
|
} |
|
|
|
JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMMethod__1getParameter |
|
(JNIEnv *jEnv, jobject jThs, jlong jM, jint jParameter) |
|
{ |
|
CIMMethod *cm = DEBUG_ConvertJavaToC (jlong, CIMMethod*, jM); |
|
jlong rv = 0; |
| |
try |
if (cm && jParameter >= 0) |
{ | { |
if (ci) |
try |
{ | { |
CIMProperty cp; |
CIMParameter cp = cm->getParameter (jParameter); |
|
|
cp = ci->getProperty (ji); |
|
| |
cpRet = new CIMProperty (cp); |
rv = DEBUG_ConvertCToJava(CIMParameter *, jlong, new CIMParameter(cp)); |
} |
|
} | } |
Catch (jEnv); | Catch (jEnv); |
|
|
return DEBUG_ConvertCToJava (CIMProperty*, jlong, cpRet); |
|
} | } |
| |
|
return rv; |
|
} |
| |
// ------------------------------------- |
JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMMethod__1getParameterCount |
// --- |
|
// - CIMMethod |
|
// --- |
|
// ------------------------------------- |
|
|
|
JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMMethod__1getType |
|
(JNIEnv *jEnv, jobject jThs, jlong jM) | (JNIEnv *jEnv, jobject jThs, jlong jM) |
{ | { |
CIMMethod *cm = DEBUG_ConvertJavaToC (jlong, CIMMethod*, jM); | CIMMethod *cm = DEBUG_ConvertJavaToC (jlong, CIMMethod*, jM); |
bool fSuccess = false; |
jint rv = 0; |
jint jType = 0; |
|
| |
if (cm) | if (cm) |
{ | { |
CIMType ct = cm->getType (); |
try |
|
{ |
jType = _dataType::convertCTypeToJavaType (ct, &fSuccess); |
rv = cm->getParameterCount (); |
|
} |
|
Catch (jEnv); |
} | } |
| |
return jType; |
return rv; |
} | } |
| |
JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMMethod__1finalize | JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMMethod__1finalize |
|
|
port_ = 0; | port_ = 0; |
hostName_ = System::getHostName (); | hostName_ = System::getHostName (); |
nameSpace_ = "root/cimv2"; | nameSpace_ = "root/cimv2"; |
|
fHttps = false; |
} | } |
| |
_nameSpace::_nameSpace (String hn) | _nameSpace::_nameSpace (String hn) |
|
|
port_ = 0; | port_ = 0; |
hostName_ = hn; | hostName_ = hn; |
nameSpace_ = "root/cimv2"; | nameSpace_ = "root/cimv2"; |
|
fHttps = false; |
} | } |
| |
_nameSpace::_nameSpace (String hn, String ns) | _nameSpace::_nameSpace (String hn, String ns) |
|
|
port_ = 0; | port_ = 0; |
hostName_ = hn; | hostName_ = hn; |
nameSpace_ = ns; | nameSpace_ = ns; |
|
fHttps = false; |
} | } |
| |
int _nameSpace::port () | int _nameSpace::port () |
|
|
| |
if (hostName_.subString (0,7) == "http://") | if (hostName_.subString (0,7) == "http://") |
{ | { |
protocol_ = "http://"; |
protocol_ = hostName_.subString (0,7); |
hostName_ = hostName_.subString (7); | hostName_ = hostName_.subString (7); |
} | } |
|
else if (hostName_.subString (0,8) == "https://") |
|
{ |
|
protocol_ = hostName_.subString (0,8); |
|
hostName_ = hostName_.subString (8); |
|
fHttps = true; |
|
} |
| |
Sint32 p = hostName_.reverseFind (':'); | Sint32 p = hostName_.reverseFind (':'); |
| |
|
|
return nameSpace_; | return nameSpace_; |
} | } |
| |
|
Boolean _nameSpace::isHttps () |
|
{ |
|
port (); |
|
return fHttps; |
|
} |
|
|
JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMNameSpace__1new | JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMNameSpace__1new |
(JNIEnv *jEnv, jobject jThs) | (JNIEnv *jEnv, jobject jThs) |
{ | { |
|
|
{ | { |
const char *hn = jEnv->GetStringUTFChars (jHn, NULL); | const char *hn = jEnv->GetStringUTFChars (jHn, NULL); |
const char *ns = jEnv->GetStringUTFChars (jNs, NULL); | const char *ns = jEnv->GetStringUTFChars (jNs, NULL); |
jlong cInst = DEBUG_ConvertCToJava (_nameSpace*, jlong, new _nameSpace (String (hn),String (ns))); |
jlong cInst = DEBUG_ConvertCToJava( |
|
_nameSpace*, |
|
jlong, |
|
new _nameSpace(String (hn),String (ns))); |
| |
jEnv->ReleaseStringUTFChars (jHn, hn); | jEnv->ReleaseStringUTFChars (jHn, hn); |
jEnv->ReleaseStringUTFChars (jNs, ns); | jEnv->ReleaseStringUTFChars (jNs, ns); |
|
|
if (t != CIMKeyBinding::REFERENCE) | if (t != CIMKeyBinding::REFERENCE) |
cp = new CIMProperty (n, *cv); | cp = new CIMProperty (n, *cv); |
else | else |
cp = new CIMProperty (n, *cv, 0, ((CIMObjectPath) akb[i].getValue ()).getClassName ()); |
cp = new CIMProperty( |
|
n, |
|
*cv, |
|
0, |
|
((CIMObjectPath) akb[i].getValue()).getClassName()); |
| |
jlong jCp = DEBUG_ConvertCToJava (CIMProperty*, jlong, cp); | jlong jCp = DEBUG_ConvertCToJava (CIMProperty*, jlong, cp); |
jobject prop = jEnv->NewObject (JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewJ,jCp); |
jobject prop = jEnv->NewObject( |
|
JMPIjvm::jv.CIMPropertyClassRef, |
|
JMPIjvm::jv.CIMPropertyNewJ, |
|
jCp); |
| |
jEnv->CallVoidMethod (jVec,JMPIjvm::jv.VectorAddElement,prop); | jEnv->CallVoidMethod (jVec,JMPIjvm::jv.VectorAddElement,prop); |
} | } |
|
|
(JNIEnv *jEnv, jobject jThs, jlong jCop) | (JNIEnv *jEnv, jobject jThs, jlong jCop) |
{ | { |
CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop); | CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop); |
CIMObjectPath *copl = new CIMObjectPath (cop->getHost (), cop->getNameSpace (), cop->getClassName (), cop->getKeyBindings ()); |
CIMObjectPath *copl = new CIMObjectPath( |
|
cop->getHost(), |
|
cop->getNameSpace(), |
|
cop->getClassName(), |
|
cop->getKeyBindings()); |
| |
return DEBUG_ConvertCToJava (CIMObjectPath*, jlong, copl); | return DEBUG_ConvertCToJava (CIMObjectPath*, jlong, copl); |
} | } |
|
|
(Boolean)iq, | (Boolean)iq, |
(Boolean)ic); | (Boolean)ic); |
| |
return DEBUG_ConvertCToJava (Array<CIMClass>*, jlong, new Array<CIMClass> (en)); |
return DEBUG_ConvertCToJava( |
|
Array<CIMClass>*, |
|
jlong, |
|
new Array<CIMClass> (en)); |
} | } |
Catch (jEnv); | Catch (jEnv); |
| |
return 0; | return 0; |
} | } |
| |
JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1getInstance |
JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1getInstance( |
(JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop, jboolean lo, jboolean iq, jboolean ic, |
JNIEnv *jEnv, |
|
jobject jThs, |
|
jlong jCh, |
|
jlong jCop, |
|
jboolean lo, |
|
jboolean iq, |
|
jboolean ic, |
jobjectArray jPl) | jobjectArray jPl) |
{ | { |
CIMOMHandle *ch = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh); | CIMOMHandle *ch = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh); |
|
|
pl = CIMPropertyList (); | pl = CIMPropertyList (); |
| |
try { | try { |
CIMInstance *inst = new CIMInstance (ch->getInstance (ctx, |
CIMInstance *inst = new CIMInstance(ch->getInstance( |
|
ctx, |
cop->getNameSpace (), | cop->getNameSpace (), |
*cop, | *cop, |
(Boolean)lo, | (Boolean)lo, |
|
|
Catch (jEnv); | Catch (jEnv); |
} | } |
| |
JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1enumerateInstanceNames |
JNIEXPORT jlong JNICALL |
(JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop, jboolean deep) |
Java_org_pegasus_jmpi_CIMOMHandle__1enumerateInstanceNames( |
|
JNIEnv *jEnv, |
|
jobject jThs, |
|
jlong jCh, |
|
jlong jCop, |
|
jboolean deep) |
{ | { |
CIMOMHandle *ch = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh); | CIMOMHandle *ch = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh); |
CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop); | CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop); |
OperationContext ctx; | OperationContext ctx; |
| |
try { | try { |
Array<CIMObjectPath> enm = ch->enumerateInstanceNames (ctx, |
Array<CIMObjectPath> enm = ch->enumerateInstanceNames( |
|
ctx, |
cop->getNameSpace (), | cop->getNameSpace (), |
cop->getClassName ()); //, (Boolean)deep); |
cop->getClassName()); |
return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jlong, new Array<CIMObjectPath> (enm)); |
return DEBUG_ConvertCToJava( |
|
Array<CIMObjectPath>*, |
|
jlong, |
|
new Array<CIMObjectPath> (enm)); |
} | } |
Catch (jEnv); | Catch (jEnv); |
| |
|
|
(Boolean)ic, | (Boolean)ic, |
pl); | pl); |
| |
return DEBUG_ConvertCToJava (Array<CIMInstance>*, jlong, new Array<CIMInstance> (en)); |
return DEBUG_ConvertCToJava( |
|
Array<CIMInstance>*, |
|
jlong, |
|
new Array<CIMInstance> (en)); |
} | } |
Catch (jEnv); | Catch (jEnv); |
| |
return 0; | return 0; |
} | } |
| |
JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1execQuery |
JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1execQuery( |
(JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop, jstring jQuery, jstring jQl) |
JNIEnv *jEnv, |
|
jobject jThs, |
|
jlong jCh, |
|
jlong jCop, |
|
jstring jQuery, |
|
jstring jQl) |
{ | { |
CIMOMHandle *ch = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh); | CIMOMHandle *ch = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh); |
CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop); | CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop); |
|
|
Catch (jEnv); | Catch (jEnv); |
} | } |
| |
JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1associatorNames |
JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1associatorNames( |
(JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop, |
JNIEnv *jEnv, |
jstring jAssocClass, jstring jResultClass, jstring jRole, jstring jResultRole) |
jobject jThs, |
|
jlong jCh, |
|
jlong jCop, |
|
jstring jAssocClass, |
|
jstring jResultClass, |
|
jstring jRole, |
|
jstring jResultRole) |
{ | { |
CIMOMHandle *ch = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh); | CIMOMHandle *ch = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh); |
CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop); | CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop); |
|
|
jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef, | jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef, |
JMPIjvm::jv.CIMExceptionNewISt, | JMPIjvm::jv.CIMExceptionNewISt, |
(jint)4, // CIM_ERR_INVALID_PARAMETER | (jint)4, // CIM_ERR_INVALID_PARAMETER |
jEnv->NewStringUTF ("Invalid association class name")); |
jEnv->NewStringUTF( |
|
"Invalid association class name")); |
| |
jEnv->Throw ((jthrowable)ev); | jEnv->Throw ((jthrowable)ev); |
| |
|
|
jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef, | jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef, |
JMPIjvm::jv.CIMExceptionNewISt, | JMPIjvm::jv.CIMExceptionNewISt, |
(jint)4, // CIM_ERR_INVALID_PARAMETER | (jint)4, // CIM_ERR_INVALID_PARAMETER |
jEnv->NewStringUTF ("Invalid result class name")); |
jEnv->NewStringUTF( |
|
"Invalid result class name")); |
| |
jEnv->Throw ((jthrowable)ev); | jEnv->Throw ((jthrowable)ev); |
| |
|
|
role, | role, |
resultRole); | resultRole); |
| |
return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jlong, new Array<CIMObjectPath> (enm)); |
return DEBUG_ConvertCToJava( |
|
Array<CIMObjectPath>*, |
|
jlong, |
|
new Array<CIMObjectPath> (enm)); |
} | } |
Catch (jEnv); | Catch (jEnv); |
| |
return 0; | return 0; |
} | } |
| |
JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1associators |
JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1associators( |
(JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop, |
JNIEnv *jEnv, |
jstring jAssocClass, jstring jResultClass, jstring jRole, jstring jResultRole, |
jobject jThs, |
jboolean includeQualifiers, jboolean includeClassOrigin, jobjectArray jPl) |
jlong jCh, |
|
jlong jCop, |
|
jstring jAssocClass, |
|
jstring jResultClass, |
|
jstring jRole, |
|
jstring jResultRole, |
|
jboolean includeQualifiers, |
|
jboolean includeClassOrigin, |
|
jobjectArray jPl) |
{ | { |
CIMOMHandle *ch = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh); | CIMOMHandle *ch = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh); |
CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop); | CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop); |
|
|
jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef, | jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef, |
JMPIjvm::jv.CIMExceptionNewISt, | JMPIjvm::jv.CIMExceptionNewISt, |
(jint)4, // CIM_ERR_INVALID_PARAMETER | (jint)4, // CIM_ERR_INVALID_PARAMETER |
jEnv->NewStringUTF ("Invalid association class name")); |
jEnv->NewStringUTF( |
|
"Invalid association class name")); |
| |
jEnv->Throw ((jthrowable)ev); | jEnv->Throw ((jthrowable)ev); |
| |
|
|
jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef, | jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef, |
JMPIjvm::jv.CIMExceptionNewISt, | JMPIjvm::jv.CIMExceptionNewISt, |
(jint)4, // CIM_ERR_INVALID_PARAMETER | (jint)4, // CIM_ERR_INVALID_PARAMETER |
jEnv->NewStringUTF ("Invalid result class name")); |
jEnv->NewStringUTF( |
|
"Invalid result class name")); |
| |
jEnv->Throw ((jthrowable)ev); | jEnv->Throw ((jthrowable)ev); |
| |
|
|
jEnv->ReleaseStringUTFChars (jResultRole, str); | jEnv->ReleaseStringUTFChars (jResultRole, str); |
| |
try { | try { |
Array<CIMObject> enm = ch->associators (ctx, |
Array<CIMObject> enm = ch->associators( |
|
ctx, |
cop->getNameSpace (), | cop->getNameSpace (), |
*cop, | *cop, |
assocClass, | assocClass, |
|
|
jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef, | jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef, |
JMPIjvm::jv.CIMExceptionNewISt, | JMPIjvm::jv.CIMExceptionNewISt, |
(jint)4, // CIM_ERR_INVALID_PARAMETER | (jint)4, // CIM_ERR_INVALID_PARAMETER |
jEnv->NewStringUTF ("Invalid association class name")); |
jEnv->NewStringUTF( |
|
"Invalid association class name")); |
| |
jEnv->Throw ((jthrowable)ev); | jEnv->Throw ((jthrowable)ev); |
| |
|
|
assocClass, | assocClass, |
role); | role); |
| |
return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jlong, new Array<CIMObjectPath> (enm)); |
return DEBUG_ConvertCToJava( |
|
Array<CIMObjectPath>*, |
|
jlong, |
|
new Array<CIMObjectPath> (enm)); |
} | } |
Catch (jEnv); | Catch (jEnv); |
| |
|
|
jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef, | jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef, |
JMPIjvm::jv.CIMExceptionNewISt, | JMPIjvm::jv.CIMExceptionNewISt, |
(jint)4, // CIM_ERR_INVALID_PARAMETER | (jint)4, // CIM_ERR_INVALID_PARAMETER |
jEnv->NewStringUTF ("Invalid association class name")); |
jEnv->NewStringUTF( |
|
"Invalid association class name")); |
| |
jEnv->Throw ((jthrowable)ev); | jEnv->Throw ((jthrowable)ev); |
| |
|
|
return 0; | return 0; |
} | } |
| |
JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1invokeMethod |
JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1invokeMethod( |
(JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop, jstring jMn, jobject jIn, jobject jOut) |
JNIEnv *jEnv, |
|
jobject jThs, |
|
jlong jCh, |
|
jlong jCop, |
|
jstring jMn, |
|
jobject jIn, |
|
jobject jOut) |
{ | { |
JMPIjvm::cacheIDs (jEnv); | JMPIjvm::cacheIDs (jEnv); |
| |
|
|
CIMParamValue *parm = new CIMParamValue (out[i]); | CIMParamValue *parm = new CIMParamValue (out[i]); |
jlong jParm = DEBUG_ConvertCToJava (CIMParamValue*, jlong, parm); | jlong jParm = DEBUG_ConvertCToJava (CIMParamValue*, jlong, parm); |
| |
jEnv->SetObjectArrayElement (jOut,i, |
jEnv->SetObjectArrayElement( |
jEnv->NewObject (JMPIjvm::jv.CIMArgumentClassRef,JMPIjvm::jv.CIMArgumentNewJ,jParm)); |
jOut, |
|
i, |
|
jEnv->NewObject( |
|
JMPIjvm::jv.CIMArgumentClassRef, |
|
JMPIjvm::jv.CIMArgumentNewJ,jParm)); |
} | } |
} | } |
return DEBUG_ConvertCToJava (CIMValue*, jlong, val); | return DEBUG_ConvertCToJava (CIMValue*, jlong, val); |
|
|
return 0; | return 0; |
} | } |
| |
JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent |
JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent( |
(JNIEnv *jEnv, jobject jThs, jlong jCh, jstring jName, jstring jNs, jlong jInd) |
JNIEnv *jEnv, |
|
jobject jThs, |
|
jlong jCh, |
|
jstring jName, |
|
jstring jNs, |
|
jlong jInd) |
{ | { |
CIMOMHandle *ch = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh); | CIMOMHandle *ch = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh); |
CIMInstance *ind = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jInd); | CIMInstance *ind = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jInd); |
|
|
CIMObjectPath ref (ind->getPath ()); | CIMObjectPath ref (ind->getPath ()); |
| |
ref.setNameSpace (ns); | ref.setNameSpace (ns); |
DDD (PEGASUS_STD (cerr)<<"--- Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent () ref = "<<ref.toString ()<<PEGASUS_STD (endl)); |
|
DDD (PEGASUS_STD (cerr)<<"--- Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent () ind = "<<ind->getPath ().toString ()<<PEGASUS_STD (endl)); |
PEG_TRACE((TRC_PROVIDERMANAGER,Tracer::LEVEL4, |
|
"Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent(): ref = %s", |
|
(const char*)ref.toString().getCString())); |
|
PEG_TRACE((TRC_PROVIDERMANAGER,Tracer::LEVEL4, |
|
"Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent(): ind = %s", |
|
(const char*)ind->getPath().toString().getCString())); |
|
|
ind->setPath (ref); | ind->setPath (ref); |
DDD (PEGASUS_STD (cerr)<<"--- Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent () ind = "<<ind->getPath ().toString ()<<PEGASUS_STD (endl)); |
|
|
PEG_TRACE((TRC_PROVIDERMANAGER,Tracer::LEVEL4, |
|
"Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent(): ind = %s", |
|
(const char*)ind->getPath().toString().getCString())); |
| |
JMPIProviderManager::indProvRecord *prec = NULL; | JMPIProviderManager::indProvRecord *prec = NULL; |
String sPathString = ind->getPath ().toString (); | String sPathString = ind->getPath ().toString (); |
|
|
AutoMutex lock (JMPIProviderManager::mutexProvTab); | AutoMutex lock (JMPIProviderManager::mutexProvTab); |
| |
fResult = JMPIProviderManager::provTab.lookup (name, prec); | fResult = JMPIProviderManager::provTab.lookup (name, prec); |
|
PEG_TRACE((TRC_PROVIDERMANAGER,Tracer::LEVEL4, |
DDD (PEGASUS_STD (cerr)<<"--- Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent () fResult = "<<fResult<<", name = "<<name<<PEGASUS_STD (endl)); |
"Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent(): " |
|
"fResult = %d, name = %s", |
|
fResult,(const char*)name.getCString())); |
} | } |
| |
if (fResult) | if (fResult) |
|
|
} | } |
else | else |
{ | { |
DDD (PEGASUS_STD (cerr)<<"--- Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent () provider name \""<<name<<"\" not found"<<PEGASUS_STD (endl)); |
PEG_TRACE((TRC_PROVIDERMANAGER,Tracer::LEVEL1, |
|
"Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent(): " |
|
"provider name \"%s\" not found", |
|
(const char*)name.getCString())); |
} | } |
} | } |
| |
|
|
| |
// ------------------------------------- | // ------------------------------------- |
// --- | // --- |
|
// - CIMParameter |
|
// --- |
|
// ------------------------------------- |
|
|
|
JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMParameter__1getName |
|
(JNIEnv *jEnv, jobject jThs, jlong jCp) |
|
{ |
|
CIMParameter *cp = DEBUG_ConvertJavaToC (jlong, CIMParameter*, jCp); |
|
jstring rv = 0; |
|
|
|
if (cp) |
|
{ |
|
try |
|
{ |
|
CIMName name = cp->getName (); |
|
|
|
rv = jEnv->NewStringUTF (name.getString ().getCString ()); |
|
} |
|
Catch (jEnv); |
|
} |
|
|
|
return rv; |
|
} |
|
|
|
JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMParameter__1setName |
|
(JNIEnv *jEnv, jobject jThs, jlong jCp, jstring jName) |
|
{ |
|
CIMParameter *cp = DEBUG_ConvertJavaToC (jlong, CIMParameter*, jCp); |
|
|
|
if (cp && jName) |
|
{ |
|
try |
|
{ |
|
const char *cstrName = jEnv->GetStringUTFChars (jName, NULL); |
|
|
|
CIMName name (cstrName); |
|
|
|
cp->setName (name); |
|
|
|
jEnv->ReleaseStringUTFChars (jName, cstrName); |
|
} |
|
Catch (jEnv); |
|
} |
|
} |
|
|
|
JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMParameter__1isArray |
|
(JNIEnv *jEnv, jobject jThs, jlong jCp) |
|
{ |
|
CIMParameter *cp = DEBUG_ConvertJavaToC (jlong, CIMParameter*, jCp); |
|
jboolean rv = 0; |
|
|
|
if (cp) |
|
{ |
|
try |
|
{ |
|
rv = cp->isArray (); |
|
} |
|
Catch (jEnv); |
|
} |
|
|
|
return rv; |
|
} |
|
|
|
JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMParameter__1getArraySize |
|
(JNIEnv *jEnv, jobject jThs, jlong jCp) |
|
{ |
|
CIMParameter *cp = DEBUG_ConvertJavaToC (jlong, CIMParameter*, jCp); |
|
jint rv = 0; |
|
|
|
if (cp) |
|
{ |
|
try |
|
{ |
|
rv = cp->getArraySize (); |
|
} |
|
Catch (jEnv); |
|
} |
|
|
|
return rv; |
|
} |
|
|
|
JNIEXPORT jstring JNICALL |
|
Java_org_pegasus_jmpi_CIMParameter__1getReferenceClassName( |
|
JNIEnv *jEnv, |
|
jobject jThs, |
|
jlong jCp) |
|
{ |
|
CIMParameter *cp = DEBUG_ConvertJavaToC (jlong, CIMParameter*, jCp); |
|
jstring rv = 0; |
|
|
|
if (cp) |
|
{ |
|
try |
|
{ |
|
CIMName name = cp->getReferenceClassName (); |
|
|
|
rv = jEnv->NewStringUTF (name.getString ().getCString ()); |
|
} |
|
Catch (jEnv); |
|
} |
|
|
|
return rv; |
|
} |
|
|
|
JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMParameter__1getType |
|
(JNIEnv *jEnv, jobject jThs, jlong jCp) |
|
{ |
|
CIMParameter *cp = DEBUG_ConvertJavaToC (jlong, CIMParameter*, jCp); |
|
jlong rv = 0; |
|
|
|
if (cp) |
|
{ |
|
try |
|
{ |
|
CIMType ct = cp->getType (); |
|
bool fSuccess = false; |
|
String ref = cp->getReferenceClassName ().getString (); |
|
int iJType = 0; |
|
_dataType *type = 0; |
|
|
|
iJType = _dataType::convertCTypeToJavaType (ct, &fSuccess); |
|
|
|
if (fSuccess) |
|
{ |
|
type = new _dataType (iJType, |
|
cp->getArraySize (), |
|
false, |
|
false, |
|
cp->isArray (), |
|
ref, |
|
true); |
|
|
|
rv = DEBUG_ConvertCToJava (_dataType*, jlong, type); |
|
} |
|
} |
|
Catch (jEnv); |
|
} |
|
|
|
return rv; |
|
} |
|
|
|
JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMParameter__1finalize |
|
(JNIEnv *jEnv, jobject jThs, jlong jCp) |
|
{ |
|
CIMParameter *cp = DEBUG_ConvertJavaToC (jlong, CIMParameter*, jCp); |
|
|
|
delete cp; |
|
|
|
DEBUG_ConvertCleanup (jlong, jCp); |
|
} |
|
|
|
|
|
// ------------------------------------- |
|
// --- |
// - CIMProperty | // - CIMProperty |
// --- | // --- |
// ------------------------------------- | // ------------------------------------- |
|
|
} | } |
else | else |
{ | { |
throwCIMException (jEnv,"+++ unsupported type in CIMProperty.property"); |
throwCIMException( |
|
jEnv, |
|
"+++ unsupported type in CIMProperty.property"); |
} | } |
} | } |
| |
|
|
| |
if (qt->isUninitialized ()) | if (qt->isUninitialized ()) |
{ | { |
CIMQualifierDecl *nqt = new CIMQualifierDecl (CIMName (str), CIMValue (), CIMScope ()); |
CIMQualifierDecl *nqt = new CIMQualifierDecl( |
|
CIMName(str), |
|
CIMValue(), |
|
CIMScope()); |
| |
jret = DEBUG_ConvertCToJava (CIMQualifierDecl*, jlong, nqt); | jret = DEBUG_ConvertCToJava (CIMQualifierDecl*, jlong, nqt); |
} | } |
|
|
cv = new CIMValue (s8); | cv = new CIMValue (s8); |
} | } |
| |
jEnv->ReleaseShortArrayElements (jshortA, jsA, len); |
jEnv->ReleaseShortArrayElements (jshortA, jsA, 0); |
| |
return DEBUG_ConvertCToJava (CIMValue*, jlong, cv); | return DEBUG_ConvertCToJava (CIMValue*, jlong, cv); |
} | } |
|
|
cv = new CIMValue (s16); | cv = new CIMValue (s16); |
} | } |
| |
jEnv->ReleaseIntArrayElements (jintA, jiA, len); |
jEnv->ReleaseIntArrayElements (jintA, jiA, 0); |
| |
return DEBUG_ConvertCToJava (CIMValue*, jlong, cv); | return DEBUG_ConvertCToJava (CIMValue*, jlong, cv); |
} | } |
|
|
cv = new CIMValue (s32); | cv = new CIMValue (s32); |
} | } |
| |
jEnv->ReleaseLongArrayElements (jlongA, jlA, len); |
jEnv->ReleaseLongArrayElements (jlongA, jlA, 0); |
| |
return DEBUG_ConvertCToJava (CIMValue*, jlong, cv); | return DEBUG_ConvertCToJava (CIMValue*, jlong, cv); |
} | } |
|
|
cv = new CIMValue (s64); | cv = new CIMValue (s64); |
} | } |
| |
jEnv->ReleaseLongArrayElements (jlongA, jlA, len); |
jEnv->ReleaseLongArrayElements (jlongA, jlA, 0); |
| |
return DEBUG_ConvertCToJava (CIMValue*, jlong, cv); | return DEBUG_ConvertCToJava (CIMValue*, jlong, cv); |
} | } |
|
|
| |
cv = new CIMValue (bA); | cv = new CIMValue (bA); |
| |
jEnv->ReleaseBooleanArrayElements (jboolA, jbA, len); |
jEnv->ReleaseBooleanArrayElements (jboolA, jbA, 0); |
| |
return DEBUG_ConvertCToJava (CIMValue*, jlong, cv); | return DEBUG_ConvertCToJava (CIMValue*, jlong, cv); |
} | } |
|
|
| |
cv = new CIMValue (fA); | cv = new CIMValue (fA); |
| |
jEnv->ReleaseFloatArrayElements (jfloatA, jfA, len); |
jEnv->ReleaseFloatArrayElements (jfloatA, jfA, 0); |
| |
return DEBUG_ConvertCToJava (CIMValue*, jlong, cv); | return DEBUG_ConvertCToJava (CIMValue*, jlong, cv); |
} | } |
|
|
| |
cv = new CIMValue (dA); | cv = new CIMValue (dA); |
| |
jEnv->ReleaseDoubleArrayElements (jdoubleA, jdA, len); |
jEnv->ReleaseDoubleArrayElements (jdoubleA, jdA, 0); |
| |
return DEBUG_ConvertCToJava (CIMValue*, jlong, cv); | return DEBUG_ConvertCToJava (CIMValue*, jlong, cv); |
} | } |
|
|
| |
cv = new CIMValue (cA); | cv = new CIMValue (cA); |
| |
jEnv->ReleaseLongArrayElements (jlongA, jiA, len); |
jEnv->ReleaseLongArrayElements (jlongA, jiA, 0); |
| |
return DEBUG_ConvertCToJava (CIMValue*, jlong, cv); | return DEBUG_ConvertCToJava (CIMValue*, jlong, cv); |
} | } |
|
|
| |
cv = new CIMValue (cA); | cv = new CIMValue (cA); |
| |
jEnv->ReleaseLongArrayElements (jlongA, jiA, len); |
jEnv->ReleaseLongArrayElements (jlongA, jiA, 0); |
| |
return DEBUG_ConvertCToJava (CIMValue*, jlong, cv); | return DEBUG_ConvertCToJava (CIMValue*, jlong, cv); |
} | } |
|
|
| |
cv = new CIMValue (cA); | cv = new CIMValue (cA); |
| |
jEnv->ReleaseLongArrayElements (jlongA, jiA, len); |
jEnv->ReleaseLongArrayElements (jlongA, jiA, 0); |
| |
return DEBUG_ConvertCToJava (CIMValue*, jlong, cv); | return DEBUG_ConvertCToJava (CIMValue*, jlong, cv); |
} | } |
|
|
| |
cv = new CIMValue (cA); | cv = new CIMValue (cA); |
| |
jEnv->ReleaseCharArrayElements (jcharA, jcA, len); |
jEnv->ReleaseCharArrayElements (jcharA, jcA, 0); |
| |
return DEBUG_ConvertCToJava (CIMValue*, jlong, cv); | return DEBUG_ConvertCToJava (CIMValue*, jlong, cv); |
} | } |
|
|
{ | { |
CIMObjectPath ref; | CIMObjectPath ref; |
cv->get (ref); | cv->get (ref); |
jlong jOp = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, new CIMObjectPath (ref)); |
jlong jOp = DEBUG_ConvertCToJava( |
return jEnv->NewObject (JMPIjvm::jv.CIMObjectPathClassRef, |
CIMObjectPath*, |
|
jlong, |
|
new CIMObjectPath (ref)); |
|
return jEnv->NewObject( |
|
JMPIjvm::jv.CIMObjectPathClassRef, |
JMPIjvm::jv.CIMObjectPathNewJ, | JMPIjvm::jv.CIMObjectPathNewJ, |
jOp); | jOp); |
} | } |
|
|
{ | { |
CIMDateTime dt; | CIMDateTime dt; |
cv->get (dt); | cv->get (dt); |
jlong jDT = DEBUG_ConvertCToJava (CIMDateTime*, jlong, new CIMDateTime (dt)); |
jlong jDT = DEBUG_ConvertCToJava( |
|
CIMDateTime*, jlong, |
|
new CIMDateTime(dt)); |
return jEnv->NewObject (JMPIjvm::jv.CIMDateTimeClassRef, | return jEnv->NewObject (JMPIjvm::jv.CIMDateTimeClassRef, |
JMPIjvm::jv.CIMDateTimeNewJ, | JMPIjvm::jv.CIMDateTimeNewJ, |
jDT); | jDT); |
|
|
cv->get (co); | cv->get (co); |
if (co.isClass ()) | if (co.isClass ()) |
{ | { |
jlong jCC = DEBUG_ConvertCToJava (CIMClass*, jlong, new CIMClass (co)); |
jlong jCC = DEBUG_ConvertCToJava( |
|
CIMClass*, |
|
jlong, |
|
new CIMClass (co)); |
| |
return jEnv->NewObject (JMPIjvm::jv.CIMObjectClassRef, | return jEnv->NewObject (JMPIjvm::jv.CIMObjectClassRef, |
JMPIjvm::jv.CIMObjectNewJZ, | JMPIjvm::jv.CIMObjectNewJZ, |
|
|
} | } |
else | else |
{ | { |
jlong jCI = DEBUG_ConvertCToJava (CIMInstance*, jlong, new CIMInstance (co)); |
jlong jCI = DEBUG_ConvertCToJava( |
|
CIMInstance*, |
|
jlong, |
|
new CIMInstance (co)); |
| |
return jEnv->NewObject (JMPIjvm::jv.CIMObjectClassRef, | return jEnv->NewObject (JMPIjvm::jv.CIMObjectClassRef, |
JMPIjvm::jv.CIMObjectNewJZ, | JMPIjvm::jv.CIMObjectNewJZ, |
|
|
cv->get (bo); | cv->get (bo); |
| |
int s = bo.size (); | int s = bo.size (); |
jobjectArray jbooleanA = (jobjectArray)jEnv->NewObjectArray (s, |
jobjectArray jbooleanA = (jobjectArray)jEnv->NewObjectArray( |
|
s, |
JMPIjvm::jv.BooleanClassRef, | JMPIjvm::jv.BooleanClassRef, |
0); | 0); |
| |
for (int i = 0; i < s; i++) | for (int i = 0; i < s; i++) |
jEnv->SetObjectArrayElement (jbooleanA, |
{ |
|
jEnv->SetObjectArrayElement( |
|
jbooleanA, |
i, | i, |
jEnv->NewObject (JMPIjvm::jv.BooleanClassRef, |
jEnv->NewObject( |
|
JMPIjvm::jv.BooleanClassRef, |
JMPIjvm::jv.BooleanNewZ, | JMPIjvm::jv.BooleanNewZ, |
(jboolean)bo[i])); | (jboolean)bo[i])); |
|
} |
return jbooleanA; | return jbooleanA; |
} | } |
case CIMTYPE_SINT8: | case CIMTYPE_SINT8: |
|
|
cv->get (s8); | cv->get (s8); |
| |
int s = s8.size (); | int s = s8.size (); |
jobjectArray jbyteA = (jobjectArray)jEnv->NewObjectArray (s, |
jobjectArray jbyteA = (jobjectArray)jEnv->NewObjectArray( |
|
s, |
JMPIjvm::jv.ByteClassRef, | JMPIjvm::jv.ByteClassRef, |
0); | 0); |
| |
for (int i = 0; i < s; i++) | for (int i = 0; i < s; i++) |
jEnv->SetObjectArrayElement (jbyteA, |
{ |
|
jEnv->SetObjectArrayElement( |
|
jbyteA, |
i, | i, |
jEnv->NewObject (JMPIjvm::jv.ByteClassRef, |
jEnv->NewObject( |
|
JMPIjvm::jv.ByteClassRef, |
JMPIjvm::jv.ByteNewB, | JMPIjvm::jv.ByteNewB, |
(jbyte)s8[i])); | (jbyte)s8[i])); |
|
} |
return jbyteA; | return jbyteA; |
} | } |
case CIMTYPE_UINT8: | case CIMTYPE_UINT8: |
|
|
cv->get (u8); | cv->get (u8); |
| |
int s = u8.size (); | int s = u8.size (); |
jobjectArray jshortA = (jobjectArray)jEnv->NewObjectArray (s, |
jobjectArray jshortA = (jobjectArray)jEnv->NewObjectArray( |
|
s, |
JMPIjvm::jv.UnsignedInt8ClassRef, | JMPIjvm::jv.UnsignedInt8ClassRef, |
0); | 0); |
for (int i = 0; i < s; i++) | for (int i = 0; i < s; i++) |
jEnv->SetObjectArrayElement (jshortA, |
{ |
|
jEnv->SetObjectArrayElement( |
|
jshortA, |
i, | i, |
jEnv->NewObject (JMPIjvm::jv.UnsignedInt8ClassRef, |
jEnv->NewObject( |
|
JMPIjvm::jv.UnsignedInt8ClassRef, |
JMPIjvm::jv.UnsignedInt8NewS, | JMPIjvm::jv.UnsignedInt8NewS, |
(jshort)u8[i])); | (jshort)u8[i])); |
|
} |
return jshortA; | return jshortA; |
} | } |
case CIMTYPE_SINT16: | case CIMTYPE_SINT16: |
|
|
cv->get (s16); | cv->get (s16); |
| |
int s = s16.size (); | int s = s16.size (); |
jobjectArray jshortA = (jobjectArray)jEnv->NewObjectArray (s, |
jobjectArray jshortA = (jobjectArray)jEnv->NewObjectArray( |
|
s, |
JMPIjvm::jv.ShortClassRef, | JMPIjvm::jv.ShortClassRef, |
0); | 0); |
| |
for (int i = 0; i < s; i++) | for (int i = 0; i < s; i++) |
jEnv->SetObjectArrayElement (jshortA, |
{ |
|
jEnv->SetObjectArrayElement( |
|
jshortA, |
i, | i, |
jEnv->NewObject (JMPIjvm::jv.ShortClassRef, |
jEnv->NewObject( |
|
JMPIjvm::jv.ShortClassRef, |
JMPIjvm::jv.ShortNewS, | JMPIjvm::jv.ShortNewS, |
(jshort)s16[i])); | (jshort)s16[i])); |
|
} |
return jshortA; | return jshortA; |
} | } |
case CIMTYPE_UINT16: | case CIMTYPE_UINT16: |
|
|
cv->get (u16); | cv->get (u16); |
| |
int s = u16.size (); | int s = u16.size (); |
jobjectArray jintA = (jobjectArray)jEnv->NewObjectArray (s, |
jobjectArray jintA = (jobjectArray)jEnv->NewObjectArray( |
|
s, |
JMPIjvm::jv.UnsignedInt16ClassRef, | JMPIjvm::jv.UnsignedInt16ClassRef, |
0); | 0); |
| |
for (int i = 0; i < s; i++) | for (int i = 0; i < s; i++) |
jEnv->SetObjectArrayElement (jintA, |
{ |
|
jEnv->SetObjectArrayElement( |
|
jintA, |
i, | i, |
jEnv->NewObject (JMPIjvm::jv.UnsignedInt16ClassRef, |
jEnv->NewObject( |
|
JMPIjvm::jv.UnsignedInt16ClassRef, |
JMPIjvm::jv.UnsignedInt16NewI, | JMPIjvm::jv.UnsignedInt16NewI, |
(jint)u16[i])); | (jint)u16[i])); |
|
} |
return jintA; | return jintA; |
} | } |
case CIMTYPE_SINT32: | case CIMTYPE_SINT32: |
|
|
cv->get (s32); | cv->get (s32); |
| |
int s = s32.size (); | int s = s32.size (); |
jobjectArray jintA = (jobjectArray)jEnv->NewObjectArray (s, |
jobjectArray jintA = (jobjectArray)jEnv->NewObjectArray( |
|
s, |
JMPIjvm::jv.IntegerClassRef, | JMPIjvm::jv.IntegerClassRef, |
0); | 0); |
| |
for (int i = 0; i < s; i++) | for (int i = 0; i < s; i++) |
jEnv->SetObjectArrayElement (jintA, |
{ |
|
jEnv->SetObjectArrayElement( |
|
jintA, |
i, | i, |
jEnv->NewObject (JMPIjvm::jv.IntegerClassRef, |
jEnv->NewObject( |
|
JMPIjvm::jv.IntegerClassRef, |
JMPIjvm::jv.IntegerNewI, | JMPIjvm::jv.IntegerNewI, |
(jint)s32[i])); | (jint)s32[i])); |
|
} |
return jintA; | return jintA; |
} | } |
case CIMTYPE_UINT32: | case CIMTYPE_UINT32: |
{ | { |
Array<Uint32> u32; | Array<Uint32> u32; |
|
|
cv->get (u32); | cv->get (u32); |
|
|
int s = u32.size (); | int s = u32.size (); |
jobjectArray jlongA = (jobjectArray)jEnv->NewObjectArray (s, |
jobjectArray jlongA = (jobjectArray)jEnv->NewObjectArray( |
|
s, |
JMPIjvm::jv.UnsignedInt32ClassRef, | JMPIjvm::jv.UnsignedInt32ClassRef, |
0); | 0); |
| |
for (int i = 0; i < s; i++) | for (int i = 0; i < s; i++) |
jEnv->SetObjectArrayElement (jlongA, |
{ |
|
jEnv->SetObjectArrayElement( |
|
jlongA, |
i, | i, |
jEnv->NewObject (JMPIjvm::jv.UnsignedInt32ClassRef, |
jEnv->NewObject( |
|
JMPIjvm::jv.UnsignedInt32ClassRef, |
JMPIjvm::jv.UnsignedInt32NewJ, | JMPIjvm::jv.UnsignedInt32NewJ, |
(jlong)u32[i])); | (jlong)u32[i])); |
|
} |
return jlongA; | return jlongA; |
} | } |
case CIMTYPE_SINT64: | case CIMTYPE_SINT64: |
|
|
cv->get (s64); | cv->get (s64); |
| |
int s = s64.size (); | int s = s64.size (); |
jobjectArray jlongA = (jobjectArray)jEnv->NewObjectArray (s, |
jobjectArray jlongA = (jobjectArray)jEnv->NewObjectArray( |
|
s, |
JMPIjvm::jv.LongClassRef, | JMPIjvm::jv.LongClassRef, |
0); | 0); |
| |
for (int i = 0; i < s; i++) | for (int i = 0; i < s; i++) |
jEnv->SetObjectArrayElement (jlongA, |
{ |
|
jEnv->SetObjectArrayElement( |
|
jlongA, |
i, | i, |
jEnv->NewObject (JMPIjvm::jv.LongClassRef, |
jEnv->NewObject( |
|
JMPIjvm::jv.LongClassRef, |
JMPIjvm::jv.LongNewJ, | JMPIjvm::jv.LongNewJ, |
(jlong)s64[i])); | (jlong)s64[i])); |
|
} |
return jlongA; | return jlongA; |
} | } |
case CIMTYPE_UINT64: | case CIMTYPE_UINT64: |
{ | { |
Array<Uint64> u64; | Array<Uint64> u64; |
|
|
cv->get (u64); | cv->get (u64); |
|
|
int s = u64.size (); | int s = u64.size (); |
jobjectArray ju64A = (jobjectArray)jEnv->NewObjectArray (s, |
jobjectArray ju64A = (jobjectArray)jEnv->NewObjectArray( |
|
s, |
JMPIjvm::jv.UnsignedInt64ClassRef, | JMPIjvm::jv.UnsignedInt64ClassRef, |
0); | 0); |
| |
|
|
| |
if (jString) | if (jString) |
{ | { |
jBIG = jEnv->NewObject (JMPIjvm::jv.UnsignedInt64ClassRef, |
jBIG = jEnv->NewObject( |
|
JMPIjvm::jv.UnsignedInt64ClassRef, |
JMPIjvm::jv.UnsignedInt64NewStr, | JMPIjvm::jv.UnsignedInt64NewStr, |
jString); | jString); |
} | } |
| |
if (jBIG) | if (jBIG) |
{ | { |
jEnv->SetObjectArrayElement (ju64A, |
jEnv->SetObjectArrayElement( |
|
ju64A, |
i, | i, |
jEnv->NewObject (JMPIjvm::jv.UnsignedInt64ClassRef, |
jEnv->NewObject( |
|
JMPIjvm::jv.UnsignedInt64ClassRef, |
JMPIjvm::jv.UnsignedInt64NewBi, | JMPIjvm::jv.UnsignedInt64NewBi, |
jBIG)); | jBIG)); |
} | } |
|
|
case CIMTYPE_REAL32: | case CIMTYPE_REAL32: |
{ | { |
Array<Real32> r32; | Array<Real32> r32; |
|
|
cv->get (r32); | cv->get (r32); |
|
|
int s = r32.size (); | int s = r32.size (); |
jobjectArray jfloatA = (jobjectArray)jEnv->NewObjectArray (s, |
jobjectArray jfloatA = (jobjectArray)jEnv->NewObjectArray( |
|
s, |
JMPIjvm::jv.FloatClassRef, | JMPIjvm::jv.FloatClassRef, |
0); | 0); |
| |
for (int i = 0; i < s; i++) | for (int i = 0; i < s; i++) |
jEnv->SetObjectArrayElement (jfloatA, |
{ |
|
jEnv->SetObjectArrayElement( |
|
jfloatA, |
i, | i, |
jEnv->NewObject (JMPIjvm::jv.FloatClassRef, |
jEnv->NewObject( |
|
JMPIjvm::jv.FloatClassRef, |
JMPIjvm::jv.FloatNewF, | JMPIjvm::jv.FloatNewF, |
(jfloat)r32[i])); | (jfloat)r32[i])); |
|
} |
return jfloatA; | return jfloatA; |
} | } |
case CIMTYPE_REAL64: | case CIMTYPE_REAL64: |
|
|
cv->get (r64); | cv->get (r64); |
| |
int s = r64.size (); | int s = r64.size (); |
jobjectArray jdoubleA = (jobjectArray)jEnv->NewObjectArray (s, |
jobjectArray jdoubleA = (jobjectArray)jEnv->NewObjectArray( |
|
s, |
JMPIjvm::jv.DoubleClassRef, | JMPIjvm::jv.DoubleClassRef, |
0); | 0); |
| |
for (int i = 0; i < s; i++) | for (int i = 0; i < s; i++) |
jEnv->SetObjectArrayElement (jdoubleA, |
{ |
|
jEnv->SetObjectArrayElement( |
|
jdoubleA, |
i, | i, |
jEnv->NewObject (JMPIjvm::jv.DoubleClassRef, |
jEnv->NewObject( |
|
JMPIjvm::jv.DoubleClassRef, |
JMPIjvm::jv.DoubleNewD, | JMPIjvm::jv.DoubleNewD, |
(jdouble)r64[i])); | (jdouble)r64[i])); |
|
} |
return jdoubleA; | return jdoubleA; |
} | } |
case CIMTYPE_STRING: | case CIMTYPE_STRING: |
{ | { |
Array<String> str; | Array<String> str; |
|
|
cv->get (str); | cv->get (str); |
|
|
int s = str.size (); | int s = str.size (); |
jobjectArray jstringA = (jobjectArray)jEnv->NewObjectArray (s, |
jobjectArray jstringA = (jobjectArray)jEnv->NewObjectArray( |
|
s, |
JMPIjvm::jv.StringClassRef, | JMPIjvm::jv.StringClassRef, |
0); | 0); |
| |
for (int i = 0; i < s; i++) | for (int i = 0; i < s; i++) |
jEnv->SetObjectArrayElement (jstringA, |
{ |
|
jEnv->SetObjectArrayElement( |
|
jstringA, |
i, | i, |
jEnv->NewStringUTF (str[i].getCString ())); | jEnv->NewStringUTF (str[i].getCString ())); |
|
} |
return jstringA; | return jstringA; |
} | } |
case CIMTYPE_REFERENCE: | case CIMTYPE_REFERENCE: |
|
|
cv->get (ref); | cv->get (ref); |
| |
int s = ref.size (); | int s = ref.size (); |
jobjectArray jrefA = (jobjectArray)jEnv->NewObjectArray (s, |
jobjectArray jrefA = (jobjectArray)jEnv->NewObjectArray( |
|
s, |
JMPIjvm::jv.CIMObjectPathClassRef, | JMPIjvm::jv.CIMObjectPathClassRef, |
0); | 0); |
| |
for (int i = 0; i < s; i++) | for (int i = 0; i < s; i++) |
{ | { |
jlong jOP = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, new CIMObjectPath (ref[i])); |
jlong jOP = DEBUG_ConvertCToJava( |
|
CIMObjectPath*, |
|
jlong, |
|
new CIMObjectPath(ref[i])); |
| |
jEnv->SetObjectArrayElement (jrefA, | jEnv->SetObjectArrayElement (jrefA, |
i, | i, |
jEnv->NewObject (JMPIjvm::jv.CIMObjectPathClassRef, |
jEnv->NewObject( |
|
JMPIjvm::jv.CIMObjectPathClassRef, |
JMPIjvm::jv.CIMObjectPathNewJ, | JMPIjvm::jv.CIMObjectPathNewJ, |
jOP)); | jOP)); |
} | } |
|
|
cv->get (c16); | cv->get (c16); |
| |
int s = c16.size (); | int s = c16.size (); |
jobjectArray jc16A = (jobjectArray)jEnv->NewObjectArray (s, |
jobjectArray jc16A = (jobjectArray)jEnv->NewObjectArray( |
|
s, |
JMPIjvm::jv.CharacterClassRef, | JMPIjvm::jv.CharacterClassRef, |
0); | 0); |
| |
for (int i = 0; i < s; i++) | for (int i = 0; i < s; i++) |
jEnv->SetObjectArrayElement (jc16A, |
{ |
|
jEnv->SetObjectArrayElement( |
|
jc16A, |
i, | i, |
jEnv->NewObject (JMPIjvm::jv.CharacterClassRef, |
jEnv->NewObject( |
|
JMPIjvm::jv.CharacterClassRef, |
JMPIjvm::jv.CharacterNewC, | JMPIjvm::jv.CharacterNewC, |
(jchar)c16[i])); | (jchar)c16[i])); |
|
} |
return jc16A; | return jc16A; |
} | } |
case CIMTYPE_DATETIME: | case CIMTYPE_DATETIME: |
|
|
cv->get (dt); | cv->get (dt); |
| |
int s = dt.size (); | int s = dt.size (); |
jobjectArray jdtA = (jobjectArray)jEnv->NewObjectArray (s, |
jobjectArray jdtA = (jobjectArray)jEnv->NewObjectArray( |
|
s, |
JMPIjvm::jv.CIMDateTimeClassRef, | JMPIjvm::jv.CIMDateTimeClassRef, |
0); | 0); |
| |
for (int i = 0; i < s; i++) | for (int i = 0; i < s; i++) |
{ | { |
jlong jDT = DEBUG_ConvertCToJava (CIMDateTime*, jlong, new CIMDateTime (dt[i])); |
jlong jDT = DEBUG_ConvertCToJava( |
|
CIMDateTime*, |
|
jlong, |
|
new CIMDateTime (dt[i])); |
| |
jEnv->SetObjectArrayElement (jdtA, |
jEnv->SetObjectArrayElement( |
|
jdtA, |
i, | i, |
jEnv->NewObject (JMPIjvm::jv.CIMDateTimeClassRef, |
jEnv->NewObject( |
|
JMPIjvm::jv.CIMDateTimeClassRef, |
JMPIjvm::jv.CIMDateTimeNewJ, | JMPIjvm::jv.CIMDateTimeNewJ, |
jDT)); | jDT)); |
} | } |
|
|
cv->get (co); | cv->get (co); |
| |
int s = co.size (); | int s = co.size (); |
jobjectArray jcoA = (jobjectArray)jEnv->NewObjectArray (s, |
jobjectArray jcoA = (jobjectArray)jEnv->NewObjectArray( |
|
s, |
JMPIjvm::jv.CIMObjectClassRef, | JMPIjvm::jv.CIMObjectClassRef, |
0); | 0); |
| |
|
|
{ | { |
if (co[i].isClass ()) | if (co[i].isClass ()) |
{ | { |
jlong jCC = DEBUG_ConvertCToJava (CIMClass*, jlong, new CIMClass (co[i])); |
jlong jCC = DEBUG_ConvertCToJava( |
|
CIMClass*, |
|
jlong, |
|
new CIMClass (co[i])); |
| |
jEnv->SetObjectArrayElement (jcoA, |
jEnv->SetObjectArrayElement( |
|
jcoA, |
i, | i, |
jEnv->NewObject (JMPIjvm::jv.CIMObjectClassRef, |
jEnv->NewObject( |
|
JMPIjvm::jv.CIMObjectClassRef, |
JMPIjvm::jv.CIMObjectNewJZ, | JMPIjvm::jv.CIMObjectNewJZ, |
jCC, | jCC, |
(jboolean)true)); | (jboolean)true)); |
} | } |
else | else |
{ | { |
jlong jCI = DEBUG_ConvertCToJava (CIMInstance*, jlong, new CIMInstance (co[i])); |
jlong jCI = DEBUG_ConvertCToJava( |
|
CIMInstance*, |
|
jlong, |
|
new CIMInstance (co[i])); |
| |
jEnv->SetObjectArrayElement (jcoA, |
jEnv->SetObjectArrayElement( |
|
jcoA, |
i, | i, |
jEnv->NewObject (JMPIjvm::jv.CIMObjectClassRef, |
jEnv->NewObject( |
|
JMPIjvm::jv.CIMObjectClassRef, |
JMPIjvm::jv.CIMObjectNewJZ, | JMPIjvm::jv.CIMObjectNewJZ, |
jCI, | jCI, |
(jboolean)false)); | (jboolean)false)); |
|
|
JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_InstEnumeration__1getInstance | JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_InstEnumeration__1getInstance |
(JNIEnv *jEnv, jobject jThs, jlong jEnum, jint pos) | (JNIEnv *jEnv, jobject jThs, jlong jEnum, jint pos) |
{ | { |
Array<CIMInstance> *enm = DEBUG_ConvertJavaToC (jlong, Array<CIMInstance>*, jEnum); |
Array<CIMInstance> *enm = DEBUG_ConvertJavaToC( |
|
jlong, |
|
Array<CIMInstance>*, |
|
jEnum); |
| |
return DEBUG_ConvertCToJava (CIMInstance*, jlong, new CIMInstance ((*enm)[pos])); |
return DEBUG_ConvertCToJava( |
|
CIMInstance*, |
|
jlong, |
|
new CIMInstance((*enm)[pos])); |
} | } |
| |
JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_InstEnumeration__1size | JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_InstEnumeration__1size |
(JNIEnv *jEnv, jobject jThs, jlong jEnum) | (JNIEnv *jEnv, jobject jThs, jlong jEnum) |
{ | { |
Array<CIMInstance> *enm = DEBUG_ConvertJavaToC (jlong, Array<CIMInstance>*, jEnum); |
Array<CIMInstance> *enm = DEBUG_ConvertJavaToC( |
|
jlong, |
|
Array<CIMInstance>*, |
|
jEnum); |
| |
return enm->size (); | return enm->size (); |
} | } |
|
|
JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_JMPIQueryExp__1applyInstance | JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_JMPIQueryExp__1applyInstance |
(JNIEnv *jEnv, jobject jThs, jlong jWQLStmt, jlong jciInstance) | (JNIEnv *jEnv, jobject jThs, jlong jWQLStmt, jlong jciInstance) |
{ | { |
WQLSelectStatement *wql_stmt = DEBUG_ConvertJavaToC (jlong, WQLSelectStatement*, jWQLStmt); |
WQLSelectStatement *wql_stmt = DEBUG_ConvertJavaToC( |
CIMInstance *ci = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jciInstance); |
jlong, |
|
WQLSelectStatement*, |
|
jWQLStmt); |
|
CIMInstance *ci = DEBUG_ConvertJavaToC( |
|
jlong, |
|
CIMInstance*, |
|
jciInstance); |
| |
if ( !wql_stmt | if ( !wql_stmt |
|| !ci | || !ci |
|
|
} | } |
catch (const Exception &e) | catch (const Exception &e) |
{ | { |
cerr << "Java_org_pegasus_jmpi_JMPIQueryExp__1applyInstance: Caught: " << e.getMessage () << endl; |
cerr << "Java_org_pegasus_jmpi_JMPIQueryExp__1applyInstance: Caught: " |
|
<< e.getMessage () << endl; |
| |
return false; | return false; |
} | } |
|
|
JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_JMPISelectList__1applyInstance | JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_JMPISelectList__1applyInstance |
(JNIEnv *jEnv, jobject jThs, jlong jWQLStmt, jlong jciInstance) | (JNIEnv *jEnv, jobject jThs, jlong jWQLStmt, jlong jciInstance) |
{ | { |
WQLSelectStatement *wql_stmt = DEBUG_ConvertJavaToC (jlong, WQLSelectStatement*, jWQLStmt); |
WQLSelectStatement *wql_stmt = DEBUG_ConvertJavaToC( |
CIMInstance *ci = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jciInstance); |
jlong, |
|
WQLSelectStatement*, |
|
jWQLStmt); |
|
CIMInstance *ci = DEBUG_ConvertJavaToC( |
|
jlong, |
|
CIMInstance*, |
|
jciInstance); |
CIMInstance *ciRet = 0; | CIMInstance *ciRet = 0; |
| |
if ( !wql_stmt | if ( !wql_stmt |
|
|
} | } |
catch (const Exception &e) | catch (const Exception &e) |
{ | { |
cerr << "Java_org_pegasus_jmpi_JMPISelectList__1applyInstance: Caught: " << e.getMessage () << endl; |
cerr << "Java_org_pegasus_jmpi_JMPISelectList__1applyInstance:" |
|
" Caught: " |
|
<< e.getMessage () << endl; |
| |
return 0; | return 0; |
} | } |
|
|
JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_JMPISelectList__1applyClass | JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_JMPISelectList__1applyClass |
(JNIEnv *jEnv, jobject jThs, jlong jWQLStmt, jlong jciClass) | (JNIEnv *jEnv, jobject jThs, jlong jWQLStmt, jlong jciClass) |
{ | { |
WQLSelectStatement *wql_stmt = DEBUG_ConvertJavaToC (jlong, WQLSelectStatement*, jWQLStmt); |
WQLSelectStatement *wql_stmt = DEBUG_ConvertJavaToC( |
CIMClass *cc = DEBUG_ConvertJavaToC (jlong, CIMClass*, jciClass); |
jlong, |
|
WQLSelectStatement*, |
|
jWQLStmt); |
|
CIMClass *cc = DEBUG_ConvertJavaToC( |
|
jlong, |
|
CIMClass*, |
|
jciClass); |
CIMClass *ccRet = NULL; | CIMClass *ccRet = NULL; |
| |
if (!wql_stmt) | if (!wql_stmt) |
|
|
} | } |
catch (const Exception &e) | catch (const Exception &e) |
{ | { |
cerr << "Java_org_pegasus_jmpi_JMPISelectList__1applyClass: Caught: " << e.getMessage () << endl; |
cerr << "Java_org_pegasus_jmpi_JMPISelectList__1applyClass: Caught: " |
|
<< e.getMessage () << endl; |
| |
return 0; | return 0; |
} | } |
|
|
JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_OperationContext__1get | JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_OperationContext__1get |
(JNIEnv *jEnv, jobject jThs, jlong jInst, jstring jContainer, jstring jKey) | (JNIEnv *jEnv, jobject jThs, jlong jInst, jstring jContainer, jstring jKey) |
{ | { |
OperationContext *poc = DEBUG_ConvertJavaToC (jlong, OperationContext*, jInst); |
OperationContext *poc = DEBUG_ConvertJavaToC( |
|
jlong, |
|
OperationContext*, |
|
jInst); |
jobject jRet = 0; | jobject jRet = 0; |
| |
if (!poc) | if (!poc) |
|
|
String container (pszContainer); | String container (pszContainer); |
String key (pszKey); | String key (pszKey); |
| |
///printf ("container: %s\n", pszContainer); |
|
///printf ("key: %s\n", pszKey); |
|
|
|
try { | try { |
if (container == "IdentityContainer") | if (container == "IdentityContainer") |
{ | { |
IdentityContainer ic = poc->get (IdentityContainer::NAME); | IdentityContainer ic = poc->get (IdentityContainer::NAME); |
|
|
/////////printf ("ic\n"); |
|
|
|
if (key == "userName") | if (key == "userName") |
{ | { |
String userName = ic.getUserName (); | String userName = ic.getUserName (); |
|
|
////////////printf ("userName: %s\n", (const char*)userName.getCString ()); |
|
|
|
jRet = jEnv->NewStringUTF ((const char*)userName.getCString ()); | jRet = jEnv->NewStringUTF ((const char*)userName.getCString ()); |
} | } |
} | } |
else if (container == "SubscriptionInstanceContainer") | else if (container == "SubscriptionInstanceContainer") |
{ | { |
SubscriptionInstanceContainer sic = poc->get (SubscriptionInstanceContainer::NAME); |
SubscriptionInstanceContainer sic = |
|
poc->get(SubscriptionInstanceContainer::NAME); |
| |
if (key == "subscriptionInstance") | if (key == "subscriptionInstance") |
{ | { |
CIMInstance ci = sic.getInstance (); | CIMInstance ci = sic.getInstance (); |
jlong jciRef = DEBUG_ConvertCToJava (CIMInstance*, jlong, new CIMInstance (ci)); |
jlong jciRef = DEBUG_ConvertCToJava( |
|
CIMInstance*, |
|
jlong, |
|
new CIMInstance (ci)); |
| |
jRet = jEnv->NewObject (JMPIjvm::jv.CIMInstanceClassRef, | jRet = jEnv->NewObject (JMPIjvm::jv.CIMInstanceClassRef, |
JMPIjvm::jv.CIMInstanceNewJ, | JMPIjvm::jv.CIMInstanceNewJ, |
|
|
} | } |
else if (container == "SubscriptionInstanceNamesContainer") | else if (container == "SubscriptionInstanceNamesContainer") |
{ | { |
SubscriptionInstanceNamesContainer sinc = poc->get (SubscriptionInstanceNamesContainer::NAME); |
SubscriptionInstanceNamesContainer sinc= |
|
poc->get (SubscriptionInstanceNamesContainer::NAME); |
| |
if (key == "subscriptionInstanceNames") | if (key == "subscriptionInstanceNames") |
{ | { |
|
|
jobjectArray jcopa = 0; | jobjectArray jcopa = 0; |
int jcopaLength = copa.size (); | int jcopaLength = copa.size (); |
| |
jcopa = (jobjectArray)jEnv->NewObjectArray (jcopaLength, |
jcopa = (jobjectArray)jEnv->NewObjectArray( |
|
jcopaLength, |
JMPIjvm::jv.CIMObjectPathClassRef, | JMPIjvm::jv.CIMObjectPathClassRef, |
0); | 0); |
| |
for (int i = 0; i < jcopaLength; i++) | for (int i = 0; i < jcopaLength; i++) |
{ | { |
jEnv->SetObjectArrayElement (jcopa, |
jEnv->SetObjectArrayElement( |
|
jcopa, |
i, | i, |
jEnv->NewObject (JMPIjvm::jv.CIMObjectPathClassRef, |
jEnv->NewObject( |
|
JMPIjvm::jv.CIMObjectPathClassRef, |
JMPIjvm::jv.CIMObjectPathNewJ, | JMPIjvm::jv.CIMObjectPathNewJ, |
new CIMObjectPath (copa[i]))); | new CIMObjectPath (copa[i]))); |
} | } |
|
|
} | } |
else if (container == "SubscriptionFilterConditionContainer") | else if (container == "SubscriptionFilterConditionContainer") |
{ | { |
SubscriptionFilterConditionContainer sfcc = poc->get (SubscriptionFilterConditionContainer::NAME); |
SubscriptionFilterConditionContainer sfcc = |
|
poc->get (SubscriptionFilterConditionContainer::NAME); |
/////////printf ("sfcc\n"); |
|
| |
if (key == "filterCondition") | if (key == "filterCondition") |
{ | { |
String filterCondition = sfcc.getFilterCondition (); | String filterCondition = sfcc.getFilterCondition (); |
| |
////////////printf ("filterCondition: %s\n", (const char*)filterCondition.getCString ()); |
|
|
|
jRet = jEnv->NewStringUTF ((const char*)filterCondition.getCString ()); | jRet = jEnv->NewStringUTF ((const char*)filterCondition.getCString ()); |
} | } |
else if (key == "queryLanguage") | else if (key == "queryLanguage") |
|
|
} | } |
else if (container == "SubscriptionFilterQueryContainer") | else if (container == "SubscriptionFilterQueryContainer") |
{ | { |
SubscriptionFilterQueryContainer sfqc = poc->get (SubscriptionFilterQueryContainer::NAME); |
SubscriptionFilterQueryContainer sfqc = |
|
poc->get(SubscriptionFilterQueryContainer::NAME); |
| |
if (key == "filterQuery") | if (key == "filterQuery") |
{ | { |
|
|
JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_PathEnumeration__1getObjectPath | JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_PathEnumeration__1getObjectPath |
(JNIEnv *jEnv, jobject jThs, jlong jEnum, jint pos) | (JNIEnv *jEnv, jobject jThs, jlong jEnum, jint pos) |
{ | { |
Array<CIMObjectPath> *enm = DEBUG_ConvertJavaToC (jlong, Array<CIMObjectPath>*, jEnum); |
Array<CIMObjectPath> *enm = DEBUG_ConvertJavaToC( |
|
jlong, |
|
Array<CIMObjectPath>*, |
|
jEnum); |
| |
return DEBUG_ConvertCToJava (CIMObjectPath*, jlong, new CIMObjectPath ((*enm)[pos])); |
return DEBUG_ConvertCToJava( |
|
CIMObjectPath*, |
|
jlong, |
|
new CIMObjectPath((*enm)[pos])); |
} | } |
| |
JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_PathEnumeration__1size | JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_PathEnumeration__1size |
(JNIEnv *jEnv, jobject jThs, jlong jEnum) | (JNIEnv *jEnv, jobject jThs, jlong jEnum) |
{ | { |
Array<CIMObjectPath> *enm = DEBUG_ConvertJavaToC (jlong, Array<CIMObjectPath>*, jEnum); |
Array<CIMObjectPath> *enm = DEBUG_ConvertJavaToC( |
|
jlong, |
|
Array<CIMObjectPath>*, |
|
jEnum); |
| |
return enm->size (); | return enm->size (); |
} | } |
|
|
JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_QualEnumeration__1getQualifierType | JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_QualEnumeration__1getQualifierType |
(JNIEnv *jEnv, jobject jThs, jlong jEnum, jint pos) | (JNIEnv *jEnv, jobject jThs, jlong jEnum, jint pos) |
{ | { |
Array<CIMQualifierDecl> *enm = DEBUG_ConvertJavaToC (jlong, Array<CIMQualifierDecl>*, jEnum); |
Array<CIMQualifierDecl> *enm = DEBUG_ConvertJavaToC( |
|
jlong, |
|
Array<CIMQualifierDecl>*, |
|
jEnum); |
| |
return DEBUG_ConvertCToJava (CIMQualifierDecl*, jlong, new CIMQualifierDecl ((*enm)[pos])); |
return DEBUG_ConvertCToJava( |
|
CIMQualifierDecl*, |
|
jlong, |
|
new CIMQualifierDecl((*enm)[pos])); |
} | } |
| |
JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_QualEnumeration__1size | JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_QualEnumeration__1size |
(JNIEnv *jEnv, jobject jThs, jlong jEnum) | (JNIEnv *jEnv, jobject jThs, jlong jEnum) |
{ | { |
Array<CIMQualifierDecl> *enm = DEBUG_ConvertJavaToC (jlong, Array<CIMQualifierDecl>*, jEnum); |
Array<CIMQualifierDecl> *enm = DEBUG_ConvertJavaToC( |
|
jlong, |
|
Array<CIMQualifierDecl>*, |
|
jEnum); |
| |
return enm->size (); | return enm->size (); |
} | } |
|
|
JNIEXPORT void JNICALL Java_org_pegasus_jmpi_SelectExp__1finalize | JNIEXPORT void JNICALL Java_org_pegasus_jmpi_SelectExp__1finalize |
(JNIEnv *jEnv, jobject jThs, jlong jWQLStmt) | (JNIEnv *jEnv, jobject jThs, jlong jWQLStmt) |
{ | { |
WQLSelectStatement *wql_stmt = DEBUG_ConvertJavaToC (jlong, WQLSelectStatement*, jWQLStmt); |
WQLSelectStatement *wql_stmt = DEBUG_ConvertJavaToC ( |
|
jlong, |
|
WQLSelectStatement*, |
|
jWQLStmt); |
| |
delete wql_stmt; | delete wql_stmt; |
| |
|
|
String query (pszQuery); | String query (pszQuery); |
| |
wql_stmt = new WQLSelectStatement (queryLanguage, query); | wql_stmt = new WQLSelectStatement (queryLanguage, query); |
DDD (PEGASUS_STD (cout)<<"--- Java_org_pegasus_jmpi_SelectExp__1newSelectExp: wql_stmt = "<<PEGASUS_STD (hex)<< (long)wql_stmt<<PEGASUS_STD (dec)<<PEGASUS_STD (endl)); |
|
|
PEG_TRACE((TRC_PROVIDERMANAGER,Tracer::LEVEL4, |
|
"Java_org_pegasus_jmpi_SelectExp__1newSelectExp: wql_stmt = %p", |
|
wql_stmt)); |
| |
try | try |
{ | { |
|
|
} | } |
catch (const Exception &e) | catch (const Exception &e) |
{ | { |
cerr << "Java_org_pegasus_jmpi_SelectExp__1newSelectExp: Caught: " << e.getMessage () << endl; |
PEG_TRACE((TRC_PROVIDERMANAGER,Tracer::LEVEL4, |
|
"Java_org_pegasus_jmpi_SelectExp__1newSelectExp: Caught: %s", |
|
(const char*)e.getMessage().getCString())); |
} | } |
| |
jEnv->ReleaseStringUTFChars (jQuery, pszQuery); | jEnv->ReleaseStringUTFChars (jQuery, pszQuery); |
|
|
JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_SelectExp__1getSelectString | JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_SelectExp__1getSelectString |
(JNIEnv *jEnv, jobject jThs, jlong jWQLStmt) | (JNIEnv *jEnv, jobject jThs, jlong jWQLStmt) |
{ | { |
WQLSelectStatement *wql_stmt = DEBUG_ConvertJavaToC (jlong, WQLSelectStatement*, jWQLStmt); |
WQLSelectStatement *wql_stmt = DEBUG_ConvertJavaToC( |
|
jlong, |
|
WQLSelectStatement*, |
|
jWQLStmt); |
String cond; | String cond; |
| |
if (wql_stmt) | if (wql_stmt) |
|
|
} | } |
catch (const Exception &e) | catch (const Exception &e) |
{ | { |
cerr << "Java_org_pegasus_jmpi_SelectExp__1getSelectString: Caught: " << e.getMessage () << endl; |
cerr << "Java_org_pegasus_jmpi_SelectExp__1getSelectString: Caught: " |
|
<< e.getMessage () << endl; |
| |
cond = ""; | cond = ""; |
} | } |