1 karl 1.34 //%2006////////////////////////////////////////////////////////////////////////
|
2 schuur 1.1 //
|
3 karl 1.10 // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
4 // Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
5 // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
|
6 schuur 1.1 // IBM Corp.; EMC Corporation, The Open Group.
|
7 karl 1.10 // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
8 // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
|
9 karl 1.12 // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
10 // EMC Corporation; VERITAS Software Corporation; The Open Group.
|
11 karl 1.34 // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
12 // EMC Corporation; Symantec Corporation; The Open Group.
|
13 schuur 1.1 //
14 // Permission is hereby granted, free of charge, to any person obtaining a copy
15 // of this software and associated documentation files (the "Software"), to
16 // deal in the Software without restriction, including without limitation the
17 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
18 // sell copies of the Software, and to permit persons to whom the Software is
19 // furnished to do so, subject to the following conditions:
|
20 mark.hamzy 1.36 //
|
21 schuur 1.1 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
22 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
23 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
25 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
26 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
27 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 //
30 //==============================================================================
31 //
32 //%/////////////////////////////////////////////////////////////////////////////
|
33 mark.hamzy 1.57
|
34 schuur 1.1 #include "JMPIImpl.h"
35
|
36 a.dunfey 1.65 #if defined(PEGASUS_OS_TYPE_WINDOWS)
|
37 konrad.r 1.14 #include <Pegasus/Common/DynamicLibrary.h>
38 #else
|
39 schuur 1.1 #include <dlfcn.h>
|
40 konrad.r 1.14 #endif
|
41 schuur 1.1 #include <iostream>
|
42 mark.hamzy 1.16 #include <sstream>
|
43 schuur 1.1
44 #include <Pegasus/Common/Config.h>
45 #include <Pegasus/Common/System.h>
46 #include <Pegasus/Common/CIMClass.h>
47 #include <Pegasus/Common/CIMInstance.h>
48 #include <Pegasus/Common/CIMObjectPath.h>
49 #include <Pegasus/Common/CIMProperty.h>
50 #include <Pegasus/Common/OperationContext.h>
51 #include <Pegasus/Provider/CIMOMHandle.h>
52 #include <Pegasus/Client/CIMClient.h>
|
53 schuur 1.3 #include <Pegasus/ProviderManager2/JMPI/JMPIProviderManager.h>
|
54 mark.hamzy 1.42 #include <Pegasus/WQL/WQLSelectStatement.h>
55 #include <Pegasus/WQL/WQLParser.h>
56 #define CALL_SIGN_WQL "WQL"
|
57 schuur 1.1
58 PEGASUS_USING_STD;
59 PEGASUS_NAMESPACE_BEGIN
60
61 JavaVM *JMPIjvm::jvm=NULL;
62 JvmVector JMPIjvm::jv;
|
63 schuur 1.2 int JMPIjvm::trace=0;
|
64 schuur 1.1
|
65 mark.hamzy 1.26 #ifdef PEGASUS_DEBUG
|
66 mark.hamzy 1.16 #define DDD(x) if (JMPIjvm::trace) x;
|
67 mark.hamzy 1.26 #else
68 #define DDD(x)
69 #endif
|
70 mark.hamzy 1.16
|
71 mark.hamzy 1.20 #include "Convert.h"
72
|
73 mark.hamzy 1.17 JMPIjvm::ClassTable JMPIjvm::_classTable;
74 JMPIjvm::ObjectTable JMPIjvm::_objectTable;
75
|
76 schuur 1.1 const char* classNames[]={
|
77 mark.hamzy 1.26 /*00*/ "java/util/Vector" ,
78 /*01*/ "java/lang/Boolean",
79 /*02*/ "java/lang/Byte",
80 /*03*/ "java/lang/Short",
81 /*04*/ "java/lang/Integer",
82 /*05*/ "java/lang/Long",
83 /*06*/ "java/lang/Float",
84 /*07*/ "java/lang/Double",
85 /*08*/ "org/pegasus/jmpi/UnsignedInt8",
86 /*09*/ "org/pegasus/jmpi/UnsignedInt16",
87 /*10*/ "org/pegasus/jmpi/UnsignedInt32",
88 /*11*/ "org/pegasus/jmpi/UnsignedInt64",
89 /*12*/ "org/pegasus/jmpi/CIMObjectPath",
90 /*13*/ "org/pegasus/jmpi/CIMException",
91 /*14*/ "java/math/BigInteger",
92 /*15*/ "org/pegasus/jmpi/CIMProperty",
93 /*16*/ "org/pegasus/jmpi/CIMOMHandle",
94 /*17*/ "org/pegasus/jmpi/CIMClass",
95 /*18*/ "org/pegasus/jmpi/CIMInstance",
96 /*19*/ "org/pegasus/jmpi/CIMValue",
97 /*20*/ "java/lang/Object",
98 mark.hamzy 1.26 /*21*/ "java/lang/Throwable",
99 /*22*/ "java/lang/String",
100 /*23*/ "org/pegasus/jmpi/JarClassLoader",
101 /*24*/ "org/pegasus/jmpi/CIMDateTime",
102 /*25*/ "org/pegasus/jmpi/SelectExp",
103 /*26*/ "org/pegasus/jmpi/CIMQualifier",
104 /*27*/ "org/pegasus/jmpi/CIMQualifierType",
105 /*28*/ "org/pegasus/jmpi/CIMFlavor",
106 /*29*/ "org/pegasus/jmpi/CIMArgument",
107 /*30*/ "org/pegasus/jmpi/CIMInstanceException",
|
108 mark.hamzy 1.35 /*31*/ "org/pegasus/jmpi/CIMObject",
109 /*32*/ "java/lang/Character",
|
110 mark.hamzy 1.36 /*33*/ "org/pegasus/jmpi/OperationContext",
111 /*34*/ "java/lang/Class",
|
112 schuur 1.1 };
113
114 const METHOD_STRUCT instanceMethodNames[]={
|
115 mark.hamzy 1.36 /*00 VectorNew */ { /*Vector */ 0, "<init>", "()V" },
116 /*01 BooleanNewZ */ { /*Boolean */ 1, "<init>", "(Z)V" },
117 /*02 ByteNewB */ { /*Byte */ 2, "<init>", "(B)V" },
118 /*03 ShortNewS */ { /*Short */ 3, "<init>", "(S)V" },
119 /*04 IntegerNewI */ { /*Integer */ 4, "<init>", "(I)V" },
120 /*05 LongNewJ */ { /*Long */ 5, "<init>", "(J)V" },
121 /*06 FloatNewF */ { /*Float */ 6, "<init>", "(F)V" },
122 /*07 DoubleNewD */ { /*Double */ 7, "<init>", "(D)V" },
123 /*08 UnsignedInt8NewS */ { /*UnsignedInt8 */ 8, "<init>", "(S)V" },
124 /*09 UnsignedInt16NewI */ { /*UnsignedInt16 */ 9, "<init>", "(I)V" },
125 /*10 UnsignedInt32NewJ */ { /*UnsignedInt32 */10, "<init>", "(J)V" },
126 /*11 UnsignedInt64NewBi */ { /*UnsignedInt64 */11, "<init>", "(Ljava/math/BigInteger;)V" },
|
127 mark.hamzy 1.61 /*12 CIMObjectPathNewJ */ { /*CIMObjectPath */12, "<init>", "(J)V" },
|
128 mark.hamzy 1.36 /*13 CIMExceptionNewSt */ { /*CIMException */13, "<init>", "(Ljava/lang/String;)V" },
|
129 mark.hamzy 1.61 /*14 CIMPropertyNewJ */ { /*CIMProperty */15, "<init>", "(J)V" },
|
130 mark.hamzy 1.36 /*15 VectorAddElement */ { /*Vector */ 0, "addElement", "(Ljava/lang/Object;)V" },
131 /*16 VectorElementAt */ { /*Vector */ 0, "elementAt", "(I)Ljava/lang/Object;" },
|
132 mark.hamzy 1.61 /*17 CIMOMHandleNewJSt */ { /*CIMOMHandle */16, "<init>", "(JLjava/lang/String;)V" },
|
133 mark.hamzy 1.36 /*18 CIMExceptionNewI */ { /*CIMException */13, "<init>", "(I)V" },
|
134 mark.hamzy 1.61 /*19 CIMClassNewJ */ { /*CIMClass */17, "<init>", "(J)V" },
135 /*20 CIMInstanceNewJ */ { /*CIMInstance */18, "<init>", "(J)V" },
136 /*21 CIMObjectPathCInst */ { /*CIMObjectPath */12, "cInst", "()J" },
137 /*22 CIMInstanceCInst */ { /*CIMInstance */18, "cInst", "()J" },
138 /*23 CIMClassCInst */ { /*CIMClass */17, "cInst", "()J" },
|
139 mark.hamzy 1.36 /*24 ObjectToString */ { /*Object */20, "toString", "()Ljava/lang/String;" },
140 /*25 ThrowableGetMessage */ { /*Throwable */21, "getMessage", "()Ljava/lang/String;" },
141 /*26 CIMExceptionGetID */ { /*CIMException */13, "getID", "()Ljava/lang/String;" },
142 /*27 VectorSize */ { /*Vector */ 0, "size", "()I" },
|
143 mark.hamzy 1.61 /*28 CIMPropertyCInst */ { /*CIMProperty */15, "cInst", "()J" },
|
144 mark.hamzy 1.36 /*29 CIMOMHandleGetClass */ { /*CIMOMHandle */16, "getClass", "(Lorg/pegasus/jmpi/CIMObjectPath;Z)Lorg/pegasus/jmpi/CIMClass;" },
145 /*30 VectorRemoveElementAt */ { /*Vector */ 0, "removeElementAt", "(I)V" },
|
146 mark.hamzy 1.61 /*31 CIMValueCInst */ { /*CIMValue */19, "cInst", "()J" },
|
147 mark.hamzy 1.36 /*32 CIMExceptionNewISt */ { /*CIMException */13, "<init>", "(ILjava/lang/String;)V" },
148 /*33 CIMExceptionGetCode */ { /*CIMException */13, "getCode", "()I" },
|
149 mark.hamzy 1.61 /*34 CIMDateTimeNewJ */ { /*CIMDateTime */24, "<init>", "(J)V" },
150 /*35 SelectExpNewJ */ { /*SelectExp */25, "<init>", "(J)V" },
151 /*36 CIMQualifierNewJ */ { /*CIMQualifier */26, "<init>", "(J)V" },
|
152 mark.hamzy 1.36 /*37 CIMFlavorNewI */ { /*CIMFlavor */28, "<init>", "(I)V" },
153 /*38 CIMFlavorGetFlavor */ { /*CIMFlavor */28, "getFlavor", "()I" },
|
154 mark.hamzy 1.61 /*39 CIMArgumentCInst */ { /*CIMArgument */29, "cInst", "()J" },
155 /*40 CIMArgumentNewJ */ { /*CIMArgument */29, "<init>", "(J)V" },
|
156 mark.hamzy 1.36 /*41 CIMExceptionNew */ { /*CIMException */13, "<init>", "()V" },
157 /*42 CIMExceptionNewStOb */ { /*CIMException */13, "<init>", "(Ljava/lang/String;Ljava/lang/Object;)V" },
158 /*43 CIMExceptionNewStObOb */ { /*CIMException */13, "<init>", "(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V" },
159 /*44 CIMExceptionNewStObObOb */ { /*CIMException */13, "<init>", "(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V" },
|
160 mark.hamzy 1.61 /*45 CIMValueNewJ */ { /*CIMValue */19, "<init>", "(J)V" },
161 /*46 CIMObjectNewJZ */ { /*CIMObject */31, "<init>", "(JZ)V" },
|
162 mark.hamzy 1.36 /*47 CharacterNewC */ { /*Character */32, "<init>", "(C)V" },
|
163 mark.hamzy 1.61 /*48 OperationContextNewJ */ { /*OperationContext */33, "<init>", "(J)V" },
|
164 mark.hamzy 1.36 /*49 OperationContextUnassociate */ { /*OperationContext */33, "unassociate", "()V" },
165 /*50 ClassGetInterfaces */ { /*Class */34, "getInterfaces", "()[Ljava/lang/Class;" },
166 /*51 ClassGetName */ { /*Class */34, "getName", "()Ljava/lang/String;" },
|
167 mark.hamzy 1.56 /*52 UnsignedInt64NewStr */ { /*UnsignedInt64 */11, "<init>", "(Ljava/lang/String;)V" }
|
168 schuur 1.1 };
169
170 const METHOD_STRUCT staticMethodNames[]={
|
171 mark.hamzy 1.26 /*00*/ { 14, "valueOf", "(J)Ljava/math/BigInteger;" },
172 /*01*/ { 23, "load", "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Class;" },
|
173 schuur 1.1 };
174
175 static int methodInitDone=0;
176
|
177 mark.hamzy 1.26 jclass classRefs[sizeof(classNames)/sizeof(classNames[0])];
178 jmethodID instanceMethodIDs[sizeof(instanceMethodNames)/sizeof(instanceMethodNames[0])];
179 jmethodID staticMethodIDs[sizeof(staticMethodNames)/sizeof(staticMethodNames[0])];
|
180 mark.hamzy 1.20
|
181 mark.hamzy 1.26 jclass JMPIjvm::getGlobalClassRef(JNIEnv *env, const char* name)
182 {
|
183 mark.hamzy 1.44 jclass localRefCls = env->FindClass(name);
|
184 mark.hamzy 1.16
|
185 mark.hamzy 1.44 if (localRefCls == NULL)
|
186 mark.hamzy 1.16 return JNI_FALSE;
187
|
188 mark.hamzy 1.44 jclass globalRefCls = (jclass) env->NewGlobalRef(localRefCls);
|
189 mark.hamzy 1.16
|
190 mark.hamzy 1.28 #if 0
191 jmethodID jmidToString = env->GetMethodID(globalRefCls, "toString", "()Ljava/lang/String;");
192 jstring jstringResult = (jstring)env->CallObjectMethod(globalRefCls, jmidToString);
193 const char *pszResult = env->GetStringUTFChars(jstringResult, 0);
194
|
195 mark.hamzy 1.61 DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getGlobalClassRef: globalRefCls = "<<PEGASUS_STD(hex)<<(long)globalRefCls<<PEGASUS_STD(dec)<<", name = "<<name<<", pszResult = "<<pszResult<<PEGASUS_STD(endl));
|
196 mark.hamzy 1.28
197 env->ReleaseStringUTFChars (jstringResult, pszResult);
198 #else
|
199 mark.hamzy 1.61 DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getGlobalClassRef: globalRefCls = "<<PEGASUS_STD(hex)<<(long)globalRefCls<<PEGASUS_STD(dec)<<", name = "<<name<<PEGASUS_STD(endl));
|
200 mark.hamzy 1.28 #endif
201
|
202 schuur 1.1 env->DeleteLocalRef(localRefCls);
|
203 mark.hamzy 1.16
|
204 schuur 1.1 return globalRefCls;
205 }
206
|
207 mark.hamzy 1.26 JMPIjvm::JMPIjvm()
208 {
|
209 mark.hamzy 1.32 initJVM ();
|
210 schuur 1.1 }
211
|
212 mark.hamzy 1.26 JMPIjvm::~JMPIjvm()
213 {
|
214 schuur 1.1 }
215
|
216 mark.hamzy 1.26 int JMPIjvm::cacheIDs(JNIEnv *env)
217 {
|
218 mark.hamzy 1.44 if (methodInitDone == 1)
|
219 mark.hamzy 1.16 return JNI_TRUE;
|
220 mark.hamzy 1.44 if (methodInitDone == -1)
|
221 mark.hamzy 1.16 return JNI_FALSE;
|
222 schuur 1.1
|
223 mark.hamzy 1.41 DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): enter"<<PEGASUS_STD(endl));
224
|
225 mark.hamzy 1.44 methodInitDone = -1;
|
226 mark.hamzy 1.16
|
227 mark.hamzy 1.44 for (unsigned i = 0; i<(sizeof(classNames)/sizeof(classNames[0])); i++)
228 {
|
229 mark.hamzy 1.16 //////DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): Trying "<<classNames[i]<<PEGASUS_STD(endl));
|
230 mark.hamzy 1.44 if ((classRefs[i] = getGlobalClassRef(env,classNames[i])) == NULL)
|
231 mark.hamzy 1.16 {
232 DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): Error: Count not find global class ref for "<<classNames[i]<<PEGASUS_STD(endl));
233
234 return JNI_FALSE;
235 }
|
236 schuur 1.1 }
|
237 schuur 1.7
|
238 mark.hamzy 1.44 for (unsigned j = 0; j<(sizeof(instanceMethodNames)/sizeof(instanceMethodNames[0])); j++)
239 {
|
240 mark.hamzy 1.28 //////DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): Trying "<<j<<": "<<classNames[instanceMethodNames[j].clsIndex]<<": "<<instanceMethodNames[j].methodName<<": "<<instanceMethodNames[j].signature<<PEGASUS_STD(endl));
|
241 mark.hamzy 1.44 if ((instanceMethodIDs[j] = env->GetMethodID(classRefs[instanceMethodNames[j].clsIndex],
|
242 mark.hamzy 1.28 instanceMethodNames[j].methodName,
|
243 mark.hamzy 1.44 instanceMethodNames[j].signature)) == NULL)
|
244 mark.hamzy 1.16 {
245 DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): Error could not get method id for "<<classNames[instanceMethodNames[j].clsIndex]<<": "<<instanceMethodNames[j].methodName<<PEGASUS_STD(endl));
|
246 schuur 1.1 return 0;
|
247 mark.hamzy 1.17 }
|
248 mark.hamzy 1.16 }
|
249 schuur 1.1
|
250 mark.hamzy 1.44 for (unsigned k = 0; k<(sizeof(staticMethodNames)/sizeof(staticMethodNames[0])); k++)
251 {
|
252 mark.hamzy 1.28 //////DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): Trying "<<k<<": "<<classNames[staticMethodNames[k].clsIndex]<<": "<<staticMethodNames[k].methodName<<": "<<staticMethodNames[k].signature<<PEGASUS_STD(endl));
|
253 mark.hamzy 1.44 if ((staticMethodIDs[k] = env->GetStaticMethodID(classRefs[staticMethodNames[k].clsIndex],
|
254 mark.hamzy 1.28 staticMethodNames[k].methodName,
|
255 mark.hamzy 1.44 staticMethodNames[k].signature)) == NULL)
|
256 mark.hamzy 1.16 {
257 DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): Error could not get method id for "<<classNames[staticMethodNames[k].clsIndex]<<": "<<staticMethodNames[k].methodName<<PEGASUS_STD(endl));
258 return 0;
259 }
260 }
261
262 DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): exit"<<PEGASUS_STD(endl));
263
|
264 mark.hamzy 1.44 jv.env = env;
265 jv.classRefs = classRefs;
266 jv.instMethodIDs = instanceMethodIDs;
267 jv.staticMethodIDs = staticMethodIDs;
268 jv.instanceMethodNames = instanceMethodNames;
|
269 mark.hamzy 1.30
|
270 mark.hamzy 1.44 methodInitDone = 1;
|
271 mark.hamzy 1.16
|
272 schuur 1.1 return JNI_TRUE;
273 }
274
|
275 mark.hamzy 1.62 static void throwCIMException (JNIEnv *env, char *e)
|
276 mark.hamzy 1.26 {
|
277 mark.hamzy 1.62 JMPIjvm::cacheIDs (env);
|
278 mark.hamzy 1.30
|
279 mark.hamzy 1.62 env->ThrowNew (JMPIjvm::jv.CIMExceptionClassRef, e);
|
280 schuur 1.1 }
281
|
282 mark.hamzy 1.62 int JMPIjvm::destroyJVM ()
|
283 schuur 1.3 {
|
284 mark.hamzy 1.16 DDD(PEGASUS_STD(cerr)<<"--- JPIjvm::destroyJVM()"<<PEGASUS_STD(endl));
285
|
286 mark.hamzy 1.26 #ifdef JAVA_DESTROY_VM_WORKS
|
287 mark.hamzy 1.44 if (jvm!= NULL)
288 {
|
289 schuur 1.3 JvmVector *jv;
|
290 mark.hamzy 1.26
|
291 schuur 1.3 attachThread(&jv);
|
292 mark.hamzy 1.32
|
293 schuur 1.3 jvm->DestroyJavaVM();
|
294 mark.hamzy 1.26
295 jvm = NULL;
296
|
297 schuur 1.3 return 0;
298 }
|
299 mark.hamzy 1.26 #endif
|
300 mark.hamzy 1.16
|
301 schuur 1.3 return -1;
302 }
303
|
304 mark.hamzy 1.32 Mutex JMPIjvm::_initMutex;
305
306 int JMPIjvm::initJVM ()
|
307 schuur 1.1 {
|
308 mark.hamzy 1.32 AutoMutex lock (_initMutex);
309
310 if (jvm != NULL)
311 {
312 return 0;
313 }
314
|
315 schuur 1.1 JavaVMInitArgs vm_args;
316 jint res;
|
317 mark.hamzy 1.16 char *envstring;
|
318 schuur 1.1 JNIEnv *env;
|
319 mark.hamzy 1.16 JavaVMOption *poptions = 0;
320 int maxoption = 0;
|
321 mark.hamzy 1.29 typedef struct _JVMOptions {
322 const char *pszEnvName;
323 const char *pszPrefix;
324 bool fSplit;
325 } JVMOPTIONS;
|
326 mark.hamzy 1.16 Array<std::string> JNIoptions;
|
327 mark.hamzy 1.29 static JVMOPTIONS aEnvOptions[] = {
|
328 mark.hamzy 1.45 { "CLASSPATH", "-Djava.class.path=", false },
|
329 mark.hamzy 1.29 { "PEGASUS_JMPI_MAX_HEAP", "-Xmx" , false },
330 { "PEGASUS_JMPI_INITIAL_HEAP", "-Xms" , false },
331 { "PEGASUS_JMPI_JAVA_THREAD_STACK_SIZE", "-Xss" , false },
332 { "PEGASUS_JMPI_VERBOSE", "-verbose:" , true }
|
333 mark.hamzy 1.16 };
334 std::ostringstream oss;
|
335 schuur 1.9
336 #ifdef PEGASUS_DEBUG
|
337 mark.hamzy 1.44 if (getenv("PEGASUS_JMPI_TRACE"))
338 JMPIjvm::trace = 1;
339 else
340 JMPIjvm::trace = 0;
|
341 schuur 1.9 #else
|
342 mark.hamzy 1.44 JMPIjvm::trace = 0;
|
343 schuur 1.9 #endif
|
344 schuur 1.2
|
345 mark.hamzy 1.16 DDD(PEGASUS_STD(cout) << "--- JMPIjvm::initJVM()" << PEGASUS_STD(endl));
346
|
347 mark.hamzy 1.44 jv.initRc = 0;
|
348 schuur 1.1
|
349 mark.hamzy 1.44 envstring = getenv("CLASSPATH");
350 if (envstring == NULL)
351 {
352 jv.initRc = 1;
|
353 mark.hamzy 1.16
354 DDD(PEGASUS_STD(cerr) << "--- JMPIjvm::initJVM(): No CLASSPATH environment variable found" << PEGASUS_STD(endl));
355
|
356 marek 1.47 throw PEGASUS_CIM_EXCEPTION_L(
357 CIM_ERR_FAILED,
358 MessageLoaderParms(
|
359 thilo.boehm 1.64 "ProviderManager2.JMPI.JMPIImpl.GET_CLASSPATH_FAILED.STANDARD",
|
360 marek 1.47 "Could not get CLASSPATH from environment.")
361 );
|
362 thilo.boehm 1.68
|
363 mark.hamzy 1.16 return -1;
364 }
365
|
366 mark.hamzy 1.62 ///JNIoptions.append ("-Djava.compiler=NONE");
|
367 mark.hamzy 1.20 ///maxoption++;
368
|
369 mark.hamzy 1.29 for (Uint32 i = 0; i < (int)(sizeof (aEnvOptions)/sizeof (aEnvOptions[0])); i++)
|
370 mark.hamzy 1.16 {
|
371 mark.hamzy 1.29 JVMOPTIONS *pEnvOption = &aEnvOptions[i];
|
372 mark.hamzy 1.16
|
373 mark.hamzy 1.29 envstring = getenv (pEnvOption->pszEnvName);
|
374 mark.hamzy 1.16 if (envstring)
375 {
|
376 mark.hamzy 1.29 if (pEnvOption->fSplit)
377 {
378 bool fCommaFound = true;
379 string stringValues = envstring;
380 string::size_type posStart = 0;
381 string::size_type posEnd = stringValues.length () - 1;
382
383 while (fCommaFound)
384 {
385 string stringValue;
386 string::size_type posComma = stringValues.find (',', posStart);
387
388 if (posComma != string::npos)
389 {
390 fCommaFound = true;
391 stringValue = stringValues.substr (posStart, posComma);
392 posStart = posComma + 1;
393 }
394 else
395 {
396 fCommaFound = false;
397 mark.hamzy 1.29 stringValue = stringValues.substr (posStart, posEnd - posStart + 1);
398 }
399
400 DDD(PEGASUS_STD(cout) << "--- JMPIjvm::initJVM(): fCommaFound = " << fCommaFound << ", posStart = " << posStart << ", posComma = " << posComma << ", posEnd = " << posEnd << "" << PEGASUS_STD(endl));
401
402 maxoption++;
403
404 oss.str ("");
405 oss << pEnvOption->pszPrefix << stringValue;
406
407 JNIoptions.append (oss.str ());
408
409 DDD(PEGASUS_STD(cout) << "--- JMPIjvm::initJVM(): " << pEnvOption->pszEnvName << " found! Specifying \"" << oss.str () << "\"" << PEGASUS_STD(endl));
410 }
411 }
412 else
413 {
414 maxoption++;
|
415 mark.hamzy 1.16
|
416 mark.hamzy 1.29 oss.str ("");
417 oss << pEnvOption->pszPrefix << envstring;
|
418 mark.hamzy 1.16
|
419 mark.hamzy 1.29 JNIoptions.append (oss.str ());
|
420 mark.hamzy 1.16
|
421 mark.hamzy 1.29 DDD(PEGASUS_STD(cout) << "--- JMPIjvm::initJVM(): " << pEnvOption->pszEnvName << " found! Specifying \"" << oss.str () << "\"" << PEGASUS_STD(endl));
422 }
|
423 mark.hamzy 1.16 }
424 }
425
426 poptions = (JavaVMOption *)calloc (maxoption, sizeof (JavaVMOption));
427 if (!poptions)
428 {
|
429 mark.hamzy 1.44 jv.initRc = 1;
|
430 mark.hamzy 1.16
431 DDD(PEGASUS_STD(cerr) << "--- JMPIjvm::initJVM(): Could not allocate " << maxoption << " structures of size " << sizeof (JavaVMOption) << PEGASUS_STD(endl));
432
|
433 schuur 1.1 return -1;
434 }
435
|
436 mark.hamzy 1.44 for (Uint32 i = 0; i < JNIoptions.size(); i++)
|
437 mark.hamzy 1.16 {
438 poptions[i].optionString = (char *)JNIoptions[i].c_str ();
439
440 DDD(PEGASUS_STD(cout) << "--- JMPIjvm::initJVM(): Setting option " << i << " to \"" << poptions[i].optionString << "\"" << PEGASUS_STD(endl));
441 }
442
|
443 mark.hamzy 1.44 vm_args.version = JNI_VERSION_1_2;
444 vm_args.options = poptions;
445 vm_args.nOptions = maxoption;
446 vm_args.ignoreUnrecognized = JNI_TRUE;
|
447 schuur 1.1
|
448 mark.hamzy 1.44 res = JNI_CreateJavaVM(&jvm,(void**)&env,&vm_args);
|
449 mark.hamzy 1.16
450 if (poptions)
451 {
452 free (poptions);
453 }
454
|
455 mark.hamzy 1.44 if (res!= 0)
456 {
457 jv.initRc = 1;
|
458 mark.hamzy 1.32
|
459 mark.hamzy 1.16 DDD(PEGASUS_STD(cerr) << "--- JMPIjvm::initJVM(): Can not create Java VM"<<PEGASUS_STD(endl));
460
|
461 mark.hamzy 1.32 return -1;
|
462 schuur 1.1 }
463
|
464 mark.hamzy 1.30 cacheIDs(env);
|
465 schuur 1.1
|
466 mark.hamzy 1.44 if (env->ExceptionOccurred())
467 {
468 jv.initRc = 1;
|
469 mark.hamzy 1.32
|
470 schuur 1.1 env->ExceptionDescribe();
|
471 mark.hamzy 1.32
472 #ifdef JAVA_DESTROY_VM_WORKS
473
474 JvmVector *jv = NULL;
475
476 attachThread (&jv);
477
478 jvm->DestroyJavaVM ();
479
480 jvm = NULL;
481 #endif
482
483 return -1;
|
484 schuur 1.1 }
485
|
486 mark.hamzy 1.44 jv.initRc = 1;
487 jv.jvm = jvm;
|
488 mark.hamzy 1.32
|
489 schuur 1.1 return res;
490 }
491
|
492 mark.hamzy 1.62 JNIEnv* JMPIjvm::attachThread (JvmVector **jvp)
|
493 mark.hamzy 1.32 {
494 JNIEnv* env = NULL;
|
495 marek 1.47 int rc;
|
496 mark.hamzy 1.32
497 if (jvm == NULL)
498 {
|
499 marek 1.47 rc = initJVM ();
|
500 mark.hamzy 1.32
|
501 marek 1.47 if ((jvm == NULL) || (rc != 0))
|
502 mark.hamzy 1.32 return NULL;
503 }
504
505 jvm->AttachCurrentThread ((void**)&env,NULL);
506
|
507 mark.hamzy 1.44 *jvp = &jv;
|
508 mark.hamzy 1.32
|
509 schuur 1.1 return env;
510 }
511
|
512 mark.hamzy 1.62 void JMPIjvm::detachThread ()
|
513 mark.hamzy 1.26 {
|
514 mark.hamzy 1.62 jvm->DetachCurrentThread ();
|
515 schuur 1.1 }
516
|
517 mark.hamzy 1.57 jobject JMPIjvm::getProvider (JNIEnv *env,
518 String jarName,
519 String className,
520 const char *pszProviderName,
521 jclass *pjClass)
522 {
523 jobject jProviderInstance = 0;
524 jclass jClassLoaded = 0;
525 jmethodID jId = 0;
526 jobject jProviderInstanceLocal = 0;
527
|
528 mark.hamzy 1.61 DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jarName = "<<jarName<<", className = "<<className<<", pszProviderName = "<<pszProviderName<<", pjClass = "<<PEGASUS_STD(hex)<<(long)pjClass<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
|
529 mark.hamzy 1.57
530 // CASE #1
531 // className has been loaded previously.
532 // Return saved instance.
533 _objectTable.lookup (className, jProviderInstance);
534 _classTable.lookup (className, jClassLoaded);
535
|
536 mark.hamzy 1.61 DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jProviderInstance = "<<PEGASUS_STD(hex)<<(long)jProviderInstance<<", jClassLoaded = "<<(long)jClassLoaded<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
|
537 mark.hamzy 1.57
538 if ( jProviderInstance
539 && jClassLoaded
540 )
541 {
542 if (pjClass)
543 {
544 *pjClass = jClassLoaded;
545 }
546
547 return jProviderInstance;
548 }
549
550 // CASE #2
551 // className can be loaded via getGlobalClassRef ().
552 // Load and return the instance.
553 // NOTE:
554 // According to http://java.sun.com/j2se/1.5.0/docs/guide/jni/spec/functions.html
555 // In JDK 1.1, FindClass searched only local classes in CLASSPATH.
|
556 mark.hamzy 1.16
|
557 mark.hamzy 1.57 jClassLoaded = getGlobalClassRef (env,
558 (const char*)className.getCString ());
|
559 mark.hamzy 1.17
|
560 mark.hamzy 1.61 DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jClassLoaded = "<<PEGASUS_STD(hex)<<(long)jClassLoaded<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
|
561 mark.hamzy 1.16
|
562 mark.hamzy 1.57 if (env->ExceptionCheck ())
|
563 mark.hamzy 1.44 {
|
564 mark.hamzy 1.57 // CASE #3
565 // see if the className can be loaded via JarClassLoader.load ().
566 // Load and return the instance.
|
567 mark.hamzy 1.58 jstring jJarName = 0;
568 jstring jClassName = 0;
569 jclass jClassLoadedLocal = 0;
|
570 mark.hamzy 1.57
571 env->ExceptionClear ();
572
573 // NOTE: Instances of "packageName/className" will not work with the jar
574 // class loader. Change the '/' to a '.'.
575 String fixedClassName;
576 Uint32 idx = className.find ('/');
577
578 if (idx != PEG_NOT_FOUND)
579 {
580 fixedClassName = className.subString (0, idx)
581 + "."
582 + className.subString (idx + 1);
583 }
584 else
585 {
586 fixedClassName = className;
587 }
588
589 DDD(PEGASUS_STD(cerr)<<"--- JMPIjvm::getProvider: fixedClassName = "<<fixedClassName<<PEGASUS_STD(endl));
590
591 mark.hamzy 1.57 jJarName = env->NewStringUTF ((const char*)jarName.getCString ());
592 jClassName = env->NewStringUTF ((const char*)fixedClassName.getCString ());
593
|
594 mark.hamzy 1.61 DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jJarName = "<<PEGASUS_STD(hex)<<(long)jJarName<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
595 DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jClassName = "<<PEGASUS_STD(hex)<<(long)jClassName<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
|
596 mark.hamzy 1.57
|
597 mark.hamzy 1.59 jClassLoadedLocal = (jclass)env->CallStaticObjectMethod (JMPIjvm::jv.JarClassLoaderClassRef,
|
598 mark.hamzy 1.58 JMPIjvm::jv.JarClassLoaderLoad,
599 jJarName,
600 jClassName);
|
601 mark.hamzy 1.57
|
602 mark.hamzy 1.61 DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jClassLoadedLocal = "<<PEGASUS_STD(hex)<<(long)jClassLoadedLocal<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
|
603 mark.hamzy 1.57
604 if (env->ExceptionCheck ())
605 {
606 DDD (env->ExceptionDescribe ());
607
608 DDD(PEGASUS_STD(cerr)<<"--- Unable to instantiate provider "<<pszProviderName<<PEGASUS_STD(endl));
609
610 return 0;
611 }
|
612 mark.hamzy 1.58
613 jClassLoaded = (jclass)env->NewGlobalRef (jClassLoadedLocal);
614
|
615 mark.hamzy 1.61 DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jClassLoaded = "<<PEGASUS_STD(hex)<<(long)jClassLoaded<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
|
616 mark.hamzy 1.58
617 env->DeleteLocalRef (jClassLoadedLocal);
|
618 schuur 1.1 }
619
|
620 mark.hamzy 1.57 if (pjClass)
|
621 mark.hamzy 1.44 {
|
622 mark.hamzy 1.57 *pjClass = jClassLoaded;
|
623 schuur 1.1 }
624
|
625 mark.hamzy 1.57 if (!jClassLoaded)
|
626 mark.hamzy 1.44 {
|
627 mark.hamzy 1.57 DDD(PEGASUS_STD(cerr)<<"--- Unable to instantiate provider "<<pszProviderName<<PEGASUS_STD(endl));
|
628 mark.hamzy 1.16
|
629 mark.hamzy 1.57 return 0;
|
630 schuur 1.1 }
|
631 mark.hamzy 1.17
|
632 mark.hamzy 1.57 jId = env->GetMethodID (jClassLoaded,
633 "<init>",
634 "()V");
635
|
636 mark.hamzy 1.61 DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jId = "<<PEGASUS_STD(hex)<<(long)jId<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
|
637 mark.hamzy 1.57
638 jProviderInstanceLocal = env->NewObject (jClassLoaded,
639 jId);
640
|
641 mark.hamzy 1.61 DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jProviderInstanceLocal = "<<PEGASUS_STD(hex)<<(long)jProviderInstanceLocal<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
|
642 mark.hamzy 1.57
643 if (!jProviderInstanceLocal)
|
644 mark.hamzy 1.17 {
|
645 mark.hamzy 1.57 DDD(PEGASUS_STD(cerr)<<"--- Unable to instantiate provider "<<pszProviderName<<PEGASUS_STD(endl));
646
647 return 0;
|
648 mark.hamzy 1.17 }
|
649 schuur 1.1
|
650 mark.hamzy 1.57 jProviderInstance = (jobject)env->NewGlobalRef (jProviderInstanceLocal);
651
|
652 mark.hamzy 1.61 DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jProviderInstance = "<<PEGASUS_STD(hex)<<(long)jProviderInstance<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
|
653 mark.hamzy 1.57
654 if (!jProviderInstance)
|
655 mark.hamzy 1.44 {
|
656 mark.hamzy 1.57 DDD(PEGASUS_STD(cerr)<<"--- Unable to instantiate provider "<<pszProviderName<<PEGASUS_STD(endl));
657
658 return 0;
|
659 schuur 1.1 }
|
660 mark.hamzy 1.17
|
661 mark.hamzy 1.57 _classTable.insert (className, jClassLoaded);
662 _objectTable.insert (className, jProviderInstance);
|
663 mark.hamzy 1.17
|
664 mark.hamzy 1.57 return jProviderInstance;
|
665 schuur 1.1 }
666
|
667 mark.hamzy 1.62 jobject JMPIjvm::getProvider (JNIEnv *env, const char *cn, jclass *cls)
|
668 schuur 1.1 {
|
669 mark.hamzy 1.17 String cln = cn;
|
670 mark.hamzy 1.44 jobject gProv = NULL;
671 jclass scls = NULL;
|
672 mark.hamzy 1.16
|
673 mark.hamzy 1.18 DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: cn = "<<cn<<", cls = "<<cls<<PEGASUS_STD(endl));
|
674 mark.hamzy 1.17
675 _objectTable.lookup(cln,gProv);
676 _classTable.lookup(cln,scls);
|
677 mark.hamzy 1.61 DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: gProv = "<<PEGASUS_STD(hex)<<(long)gProv<<", scls = "<<(long)scls<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
|
678 mark.hamzy 1.16
|
679 mark.hamzy 1.44 if (gProv)
680 {
681 *cls = scls;
|
682 schuur 1.1 return gProv;
683 }
684
|
685 mark.hamzy 1.44 scls = getGlobalClassRef(env,cn);
686 if (env->ExceptionCheck())
687 {
|
688 mark.hamzy 1.18 DDD(PEGASUS_STD(cerr)<<"--- JMPIjvm::getProvider: Provider "<<cn<<" not found"<<PEGASUS_STD(endl));
|
689 mark.hamzy 1.16 DDD(env->ExceptionDescribe());
690
|
691 schuur 1.1 return NULL;
692 }
|
693 mark.hamzy 1.44 *cls = scls;
|
694 mark.hamzy 1.17
695 if (scls)
696 {
|
697 mark.hamzy 1.61 DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: scls = "<<PEGASUS_STD(hex)<<(long)scls<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
|
698 mark.hamzy 1.17 _classTable.insert(cln,scls);
699 }
|
700 schuur 1.1
|
701 mark.hamzy 1.44 jmethodID id = env->GetMethodID(*cls,"<init>","()V");
702 jobject lProv = env->NewObject(*cls,id);
703 gProv = (jobject)env->NewGlobalRef(lProv);
704 if (env->ExceptionCheck())
705 {
|
706 mark.hamzy 1.16 DDD(PEGASUS_STD(cerr)<<"--- Unable to instantiate provider "<<cn<<PEGASUS_STD(endl));
|
707 schuur 1.1 return NULL;
708 }
|
709 mark.hamzy 1.17
710 if (gProv)
711 {
|
712 mark.hamzy 1.61 DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: gProv = "<<PEGASUS_STD(hex)<<(long)gProv<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
|
713 mark.hamzy 1.17 _objectTable.insert(cln,gProv);
714 }
715
|
716 schuur 1.1 return gProv;
717 }
718
|
719 mark.hamzy 1.62 void JMPIjvm::checkException (JNIEnv *env)
|
720 schuur 1.1 {
|
721 mark.hamzy 1.44 if (env->ExceptionCheck ())
722 {
723 jstring jMsg = NULL,
724 jId = NULL;
725 int code;
|
726 schuur 1.7 const char *cp;
|
727 kumpf 1.69 String msg;
728 String id;
|
729 mark.hamzy 1.44 jthrowable err = env->ExceptionOccurred();
|
730 schuur 1.7
|
731 mark.hamzy 1.16 DDD(env->ExceptionDescribe());
|
732 mark.hamzy 1.44
733 if (env->IsInstanceOf (err, JMPIjvm::jv.CIMExceptionClassRef))
734 {
735 env->ExceptionClear ();
736 if (err)
737 {
738 jMsg = (jstring)env->CallObjectMethod (err, JMPIjvm::jv.ThrowableGetMessage);
739 code = (int)env->CallIntMethod (err, JMPIjvm::jv.CIMExceptionGetCode);
740 jId = (jstring)env->CallObjectMethod (err, JMPIjvm::jv.CIMExceptionGetID);
741
742 if (jId)
743 {
744 cp = env->GetStringUTFChars (jId, NULL);
745 id = String (cp);
746 env->ReleaseStringUTFChars (jId, cp);
|
747 schuur 1.7 }
748
|
749 mark.hamzy 1.44 if (jMsg)
750 {
751 cp = env->GetStringUTFChars (jMsg, NULL);
752 msg = String (cp);
753 env->ReleaseStringUTFChars (jMsg, cp);
|
754 schuur 1.7 }
|
755 mark.hamzy 1.16
756 DDD(PEGASUS_STD(cerr)<<"--- throwing Pegasus exception: "<<code<<" "<<id<<" ("<<msg<<")"<<PEGASUS_STD(endl));
757
|
758 mark.hamzy 1.44 throw CIMException ((CIMStatusCode)code, id+" ("+msg+")");
|
759 mark.hamzy 1.17 }
|
760 schuur 1.7 }
|
761 mark.hamzy 1.44 else
762 {
|
763 mark.hamzy 1.28 DDD(PEGASUS_STD(cerr)<<"--- JMPIjvm::checkException: exiting..."<<PEGASUS_STD(endl));
|
764 schuur 1.7 env->ExceptionDescribe();
765 exit(13);
|
766 schuur 1.1 }
|
767 mark.hamzy 1.28 }
|
768 schuur 1.2 }
|
769 schuur 1.1
770 /**************************************************************************
771 * name - NewPlatformString
772 * description - Returns a new Java string object for the specified
773 * platform string.
774 * parameters - env
775 * s Platform encoded string
776 * returns - Java string object pointer or null (0)
777 **************************************************************************/
|
778 mark.hamzy 1.44 jstring JMPIjvm::NewPlatformString (JNIEnv *env, char *s)
|
779 schuur 1.1 {
|
780 mark.hamzy 1.44 size_t len = strlen(s);
781 jclass cls;
782 jmethodID mid;
|
783 schuur 1.1 jbyteArray ary;
784
785 NULL_CHECK0(cls = (*env).FindClass("java/lang/String"));
786 NULL_CHECK0(mid = (*env).GetMethodID(cls, "<init>", "([B)V"));
|
787 mark.hamzy 1.44
|
788 schuur 1.1 ary = (*env).NewByteArray((jsize)len);
|
789 mark.hamzy 1.44 if (ary != 0)
790 {
|
791 schuur 1.1 jstring str = 0;
|
792 mark.hamzy 1.44 (*env).SetByteArrayRegion (ary,
793 0,
794 (jsize)len,
|
795 schuur 1.1 (jbyte *)s);
|
796 mark.hamzy 1.44 if (!(*env).ExceptionOccurred ())
797 {
798 str = (jstring)(*env).NewObject (cls, mid, ary);
|
799 schuur 1.1 }
|
800 mark.hamzy 1.44 (*env).DeleteLocalRef (ary);
801
|
802 schuur 1.1 return str;
803 }
804 return 0;
805 }
806
807 /**************************************************************************
808 * name - NewPlatformStringArray
809 * description - Returns a new array of Java string objects for the specified
810 * array of platform strings.
811 * parameters - env
812 * strv Platform encoded string array
813 * strc Number of strings in strv
814 * returns - Java string array object pointer
815 **************************************************************************/
|
816 mark.hamzy 1.62 jobjectArray JMPIjvm::NewPlatformStringArray (JNIEnv *env, char **strv, int strc)
|
817 schuur 1.1 {
818 jarray cls;
819 jarray ary;
820 int i;
821
822 NULL_CHECK0(cls = (jarray)(*env).FindClass("java/lang/String"));
823 NULL_CHECK0(ary = (*env).NewObjectArray(strc, (jclass)cls, 0));
|
824 mark.hamzy 1.44 for(i = 0; i < strc; i++)
825 {
826 jstring str = NewPlatformString (env, *strv++);
827
|
828 schuur 1.1 NULL_CHECK0(str);
|
829 mark.hamzy 1.44
830 (*env).SetObjectArrayElement ((jobjectArray)ary, i, str);
831 (*env).DeleteLocalRef (str);
|
832 schuur 1.1 }
|
833 mark.hamzy 1.44
|
834 schuur 1.1 return (jobjectArray)ary;
835 }
836
|
837 mark.hamzy 1.62 CIMPropertyList getList (JNIEnv *jEnv, jobjectArray l)
|
838 mark.hamzy 1.44 {
|
839 mark.hamzy 1.33 CIMPropertyList pl;
840
|
841 mark.hamzy 1.44 if (l)
842 {
|
843 mark.hamzy 1.33 Array<CIMName> n;
844
|
845 mark.hamzy 1.44 for (jsize i = 0, s = jEnv->GetArrayLength (l); i <s; i++)
846 {
847 jstring jObj = (jstring)jEnv->GetObjectArrayElement (l, i);
848 const char *pn = jEnv->GetStringUTFChars (jObj, NULL);
|
849 mark.hamzy 1.33
|
850 mark.hamzy 1.44 n.append (pn);
|
851 mark.hamzy 1.33
|
852 mark.hamzy 1.44 jEnv->ReleaseStringUTFChars (jObj, pn);
|
853 mark.hamzy 1.33 }
854
|
855 mark.hamzy 1.44 pl.set (n);
|
856 mark.hamzy 1.33 }
857
858 return pl;
859 }
860
|
861 schuur 1.1 extern "C" {
862
|
863 mark.hamzy 1.44 void throwCimException (JNIEnv *jEnv, CIMException &e)
864 {
|
865 schuur 1.1 JMPIjvm::cacheIDs(jEnv);
|
866 mark.hamzy 1.44 jobject ev = jEnv->NewObject(JMPIjvm::jv.CIMExceptionClassRef,JMPIjvm::jv.CIMExceptionNewI,(jint)e.getCode());
|
867 schuur 1.1 jEnv->Throw((jthrowable)ev);
868 }
869
|
870 mark.hamzy 1.44 void throwFailedException (JNIEnv *jEnv)
871 {
|
872 schuur 1.1 JMPIjvm::cacheIDs(jEnv);
|
873 mark.hamzy 1.44 jobject ev = jEnv->NewObject(JMPIjvm::jv.CIMExceptionClassRef,JMPIjvm::jv.CIMExceptionNewI,1);
|
874 schuur 1.1 jEnv->Throw((jthrowable)ev);
875 }
876
|
877 mark.hamzy 1.44 void throwNotSupportedException (JNIEnv *jEnv)
878 {
|
879 schuur 1.1 JMPIjvm::cacheIDs(jEnv);
|
880 mark.hamzy 1.44 jobject ev = jEnv->NewObject(JMPIjvm::jv.CIMExceptionClassRef,JMPIjvm::jv.CIMExceptionNewI,7);
|
881 schuur 1.1 jEnv->Throw((jthrowable)ev);
882 }
883
884
|
885 schuur 1.7 // -------------------------------------
886 // ---
|
887 mark.hamzy 1.62 // - CIMArgument
|
888 schuur 1.7 // ---
889 // -------------------------------------
890
|
891 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMArgument__1new
892 (JNIEnv *jEnv, jobject jThs)
|
893 mark.hamzy 1.44 {
|
894 mark.hamzy 1.62 CIMParamValue *p = new CIMParamValue (String::EMPTY,CIMValue ());
|
895 mark.hamzy 1.56
|
896 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMParamValue*, jlong, p);
|
897 schuur 1.7 }
898
|
899 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMArgument__1newS
900 (JNIEnv *jEnv, jobject jThs, jstring jN)
|
901 mark.hamzy 1.44 {
|
902 mark.hamzy 1.62 const char *str = jEnv->GetStringUTFChars (jN, NULL);
903 CIMParamValue *p = new CIMParamValue (str, CIMValue ());
904
905 jEnv->ReleaseStringUTFChars (jN, str);
|
906 mark.hamzy 1.56
|
907 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMParamValue*, jlong, p);
|
908 schuur 1.7 }
909
|
910 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMArgument__1newSV
911 (JNIEnv *jEnv, jobject jThs, jstring jN, jlong jV)
|
912 mark.hamzy 1.44 {
|
913 mark.hamzy 1.62 const char *str = jEnv->GetStringUTFChars (jN, NULL);
914 CIMValue *cv = DEBUG_ConvertJavaToC (jlong, CIMValue*, jV);
915 CIMParamValue *p = 0;
|
916 mark.hamzy 1.56
|
917 mark.hamzy 1.62 if ( str
918 && cv
919 )
920 {
921 p = new CIMParamValue (str, *cv);
922 }
|
923 schuur 1.7
|
924 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jN, str);
|
925 mark.hamzy 1.56
|
926 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMParamValue*, jlong, p);
|
927 schuur 1.7 }
928
|
929 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMArgument__1getType
930 (JNIEnv *jEnv, jobject jThs, jlong jP)
|
931 mark.hamzy 1.44 {
|
932 mark.hamzy 1.62 CIMParamValue *cp = DEBUG_ConvertJavaToC (jlong, CIMParamValue*, jP);
933 const CIMValue cv = cp->getValue ();
934 String ref;
935 bool fSuccess = false;
936 int iJType = 0;
937 _dataType *type = 0;
|
938 mark.hamzy 1.56
|
939 mark.hamzy 1.62 iJType = _dataType::convertCTypeToJavaType (cv.getType (), &fSuccess);
|
940 schuur 1.7
|
941 mark.hamzy 1.62 if (fSuccess)
942 {
943 type = new _dataType (iJType,
944 cv.getArraySize (),
945 false,
946 false,
947 cv.isArray (),
948 ref,
949 true);
950 }
|
951 schuur 1.7
|
952 mark.hamzy 1.62 return DEBUG_ConvertCToJava (_dataType*, jlong, type);
953 }
|
954 schuur 1.7
|
955 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMArgument__1setValue
956 (JNIEnv *jEnv, jobject jThs, jlong jP,jlong jV)
|
957 mark.hamzy 1.20 {
|
958 mark.hamzy 1.62 CIMParamValue *cp = DEBUG_ConvertJavaToC (jlong, CIMParamValue*, jP);
959 CIMValue *cv = DEBUG_ConvertJavaToC (jlong, CIMValue*, jV);
|
960 mark.hamzy 1.20
|
961 mark.hamzy 1.62 cp->setValue (*cv);
962 }
|
963 mark.hamzy 1.20
|
964 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMArgument__1getValue
965 (JNIEnv *jEnv, jobject jThs, jlong jP)
966 {
967 CIMParamValue *cp = DEBUG_ConvertJavaToC (jlong, CIMParamValue*, jP);
968 CIMValue *cv = new CIMValue (cp->getValue ());
|
969 mark.hamzy 1.20
|
970 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
|
971 schuur 1.1 }
972
|
973 mark.hamzy 1.62 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMArgument__1getName
974 (JNIEnv *jEnv, jobject jThs, jlong jP)
|
975 mark.hamzy 1.20 {
|
976 mark.hamzy 1.62 CIMParamValue *cp = DEBUG_ConvertJavaToC (jlong, CIMParamValue*, jP);
977 const String &n = cp->getParameterName ();
978 jstring str = jEnv->NewStringUTF (n.getCString ());
|
979 mark.hamzy 1.20
|
980 mark.hamzy 1.62 return str;
|
981 schuur 1.7 }
982
|
983 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMArgument__1setName
984 (JNIEnv *jEnv, jobject jThs, jlong jP, jstring jN)
|
985 mark.hamzy 1.20 {
|
986 mark.hamzy 1.62 CIMParamValue *cp = DEBUG_ConvertJavaToC (jlong, CIMParamValue*, jP);
987 const char *str = jEnv->GetStringUTFChars (jN, NULL);
988 String n (str);
989
990 cp->setParameterName (n);
|
991 mark.hamzy 1.20
|
992 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jN, str);
|
993 schuur 1.7 }
994
|
995 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMArgument__1finalize
996 (JNIEnv *jEnv, jobject jThs, jlong jP)
|
997 mark.hamzy 1.20 {
|
998 mark.hamzy 1.62 CIMParamValue *cp = DEBUG_ConvertJavaToC (jlong, CIMParamValue*, jP);
999
1000 delete cp;
|
1001 schuur 1.7
|
1002 mark.hamzy 1.62 DEBUG_ConvertCleanup (jlong, jP);
|
1003 schuur 1.7 }
1004
|
1005 mark.hamzy 1.62
1006 // -------------------------------------
1007 // ---
1008 // - CIMClass
1009 // ---
1010 // -------------------------------------
1011
1012 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClass__1newInstance
1013 (JNIEnv *jEnv, jobject jThs, jlong jCls)
|
1014 mark.hamzy 1.20 {
|
1015 mark.hamzy 1.62 CIMClass *cls = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCls);
|
1016 mark.hamzy 1.20
|
1017 mark.hamzy 1.62 if (cls)
1018 {
1019 try
|
1020 mark.hamzy 1.44 {
|
1021 mark.hamzy 1.62 CIMInstance *ci = new CIMInstance (cls->getClassName ());
1022 CIMObjectPath copNew = ci->getPath ();
|
1023 mark.hamzy 1.20
|
1024 mark.hamzy 1.62 copNew.setNameSpace (cls->getPath ().getNameSpace ());
1025 ci->setPath (copNew);
|
1026 mark.hamzy 1.20
|
1027 mark.hamzy 1.62 for (int i = 0, m = cls->getQualifierCount (); i < m; i++)
1028 {
1029 try
1030 {
1031 ci->addQualifier (cls->getQualifier (i).clone ());
1032 }
1033 catch (Exception e)
1034 {
1035 }
1036 }
1037 for (int i = 0, m = cls->getPropertyCount (); i < m; i++)
1038 {
1039 CIMProperty cp = cls->getProperty (i);
|
1040 schuur 1.7
|
1041 mark.hamzy 1.62 ci->addProperty (cp.clone ());
|
1042 mark.hamzy 1.20
|
1043 mark.hamzy 1.62 for (int j = 0, s = cp.getQualifierCount (); j < s; j++)
1044 {
1045 try
1046 {
1047 ci->getProperty (i).addQualifier (cp.getQualifier (j));
1048 }
1049 catch (Exception e)
1050 {
1051 }
1052 }
1053 }
|
1054 mark.hamzy 1.20
|
1055 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMInstance*, jlong, ci);
1056 }
1057 Catch (jEnv);
|
1058 schuur 1.7 }
|
1059 mark.hamzy 1.20
|
1060 schuur 1.7 return 0;
1061 }
1062
|
1063 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClass__1filterProperties
1064 (JNIEnv *jEnv, jobject jThs, jlong jInst, jobjectArray jPl, jboolean iq, jboolean ic, jboolean lo)
|
1065 mark.hamzy 1.20 {
|
1066 mark.hamzy 1.62 CIMClass *cc = DEBUG_ConvertJavaToC (jlong, CIMClass*, jInst);
1067 CIMClass *cf = 0;
1068 CIMName clsn = cc->getClassName ();
1069
1070 if (lo)
1071 {
1072 cf = new CIMClass (cc->clone ());
|
1073 mark.hamzy 1.20
|
1074 mark.hamzy 1.62 CIMName clsn = cc->getClassName ();
|
1075 schuur 1.7
|
1076 mark.hamzy 1.62 for (int i = cf->getPropertyCount () - 1; i>= 0; i--)
1077 {
1078 if (cf->getProperty (i).getClassOrigin () == clsn)
1079 cf->removeProperty (i);
1080 }
|
1081 mark.hamzy 1.44
|
1082 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMClass*, jlong, cf);
|
1083 schuur 1.7 }
|
1084 mark.hamzy 1.62 else if (jPl)
1085 {
1086 CIMPropertyList pl = getList (jEnv,jPl);
1087 Array<CIMName> n = pl.getPropertyNameArray ();
1088
1089 cf = new CIMClass (clsn, cc->getSuperClassName ());
|
1090 mark.hamzy 1.20
|
1091 mark.hamzy 1.62 for (int i = 0, s = n.size (); i < s; i++)
1092 {
1093 Uint32 pos = cc->findProperty (n[i]);
|
1094 schuur 1.7
|
1095 mark.hamzy 1.62 if (pos != PEG_NOT_FOUND)
1096 {
1097 if (iq)
1098 {
1099 CIMProperty cp = cc->getProperty (pos).clone ();
|
1100 schuur 1.7
|
1101 mark.hamzy 1.62 if (!ic)
1102 cp.setClassOrigin (CIMName ());
|
1103 schuur 1.7
|
1104 mark.hamzy 1.62 cf->addProperty (cp);
1105 }
1106 else
1107 {
1108 CIMProperty cp = cc->getProperty (pos);
1109 CIMName co;
|
1110 mark.hamzy 1.20
|
1111 mark.hamzy 1.62 if (ic)
1112 co = cp.getClassOrigin ();
|
1113 mark.hamzy 1.20
|
1114 mark.hamzy 1.62 CIMProperty np (cp.getName (),
1115 cp.getValue (),
1116 cp.getArraySize (),
1117 cp.getReferenceClassName (),
1118 co,
1119 cp.getPropagated ());
|
1120 mark.hamzy 1.20
|
1121 mark.hamzy 1.62 cf->addProperty (np);
1122 }
1123 }
1124 }
1125 if (iq)
1126 {
1127 for (Uint32 i = 0, s = cc->getQualifierCount (); i < s; i++)
1128 {
1129 cf->addQualifier (cc->getQualifier (i));
1130 }
1131 }
|
1132 schuur 1.7 }
|
1133 mark.hamzy 1.62 else if (iq)
1134 {
1135 cf = new CIMClass (cc->clone ());
|
1136 mark.hamzy 1.20
|
1137 mark.hamzy 1.62 if (ic)
1138 return DEBUG_ConvertCToJava (CIMClass*, jlong, cf);
|
1139 schuur 1.7
|
1140 mark.hamzy 1.62 for (int i = cf->getPropertyCount () - 1; i >= 0; i--)
1141 {
1142 CIMProperty cp = cf->getProperty (i);
|
1143 mark.hamzy 1.20
|
1144 mark.hamzy 1.62 cp.setClassOrigin (CIMName ());
1145 cf->removeProperty (i);
1146 cf->addProperty (cp);
1147 }
|
1148 schuur 1.7 }
|
1149 mark.hamzy 1.62 else
1150 {
1151 cf = new CIMClass (clsn, cc->getSuperClassName ());
1152
1153 for (int i = cc->getPropertyCount () - 1; i >= 0; i--)
1154 {
1155 CIMProperty cp = cc->getProperty (i);
1156 CIMName co;
1157
1158 if (ic)
1159 co = cp.getClassOrigin ();
|
1160 schuur 1.7
|
1161 mark.hamzy 1.62 CIMProperty np (cp.getName (),
1162 cp.getValue (),
1163 cp.getArraySize (),
1164 cp.getReferenceClassName (),
1165 co,
1166 cp.getPropagated ());
|
1167 mark.hamzy 1.20
|
1168 mark.hamzy 1.62 cf->addProperty (np);
1169 }
|
1170 schuur 1.7 }
|
1171 mark.hamzy 1.20
|
1172 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMClass*, jlong, cf);
|
1173 schuur 1.7 }
1174
|
1175 mark.hamzy 1.62 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMClass__1getName
1176 (JNIEnv *jEnv, jobject jThs, jlong jCls)
|
1177 mark.hamzy 1.20 {
|
1178 mark.hamzy 1.62 CIMClass *cls = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCls);
|
1179 mark.hamzy 1.20
|
1180 schuur 1.7 try {
|
1181 mark.hamzy 1.62 const String &cn = cls->getClassName ().getString ();
1182 jstring str = jEnv->NewStringUTF (cn.getCString ());
|
1183 mark.hamzy 1.44
|
1184 mark.hamzy 1.62 return str;
|
1185 schuur 1.7 }
|
1186 mark.hamzy 1.44 Catch (jEnv);
|
1187 mark.hamzy 1.20
|
1188 schuur 1.7 return 0;
1189 }
1190
|
1191 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClass__1getQualifier
1192 (JNIEnv *jEnv, jobject jThs, jlong jCls, jstring jN)
|
1193 mark.hamzy 1.20 {
|
1194 mark.hamzy 1.62 CIMClass *cls = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCls);
1195 const char *str = jEnv->GetStringUTFChars (jN, NULL);
1196 jlong rv = 0;
1197 Uint32 pos = cls->findQualifier (String (str));
|
1198 schuur 1.7
|
1199 mark.hamzy 1.62 if (pos != PEG_NOT_FOUND)
1200 rv = DEBUG_ConvertCToJava (CIMQualifier*,
1201 jlong,
1202 new CIMQualifier (cls->getQualifier (pos)));
|
1203 mark.hamzy 1.27
|
1204 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jN, str);
|
1205 mark.hamzy 1.20
|
1206 mark.hamzy 1.62 return rv;
1207 }
|
1208 mark.hamzy 1.20
|
1209 mark.hamzy 1.62 JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_CIMClass__1getQualifiers
1210 (JNIEnv *jEnv, jobject jThs, jlong jCls, jobject jVec)
1211 {
1212 JMPIjvm::cacheIDs (jEnv);
|
1213 schuur 1.7
|
1214 mark.hamzy 1.62 CIMClass *cls = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCls);
|
1215 mark.hamzy 1.20
|
1216 mark.hamzy 1.62 for (int i = 0, s = cls->getQualifierCount (); i < s; i++)
1217 {
1218 CIMQualifier *cq = new CIMQualifier (cls->getQualifier (i));
1219 jlong jCq = DEBUG_ConvertCToJava (CIMQualifier*, jlong, cq);
1220 jobject qual = jEnv->NewObject (JMPIjvm::jv.CIMQualifierClassRef,JMPIjvm::jv.CIMQualifierNewJ,jCq);
|
1221 mark.hamzy 1.20
|
1222 mark.hamzy 1.62 jEnv->CallVoidMethod (jVec,JMPIjvm::jv.VectorAddElement,qual);
|
1223 schuur 1.1 }
|
1224 mark.hamzy 1.20
|
1225 mark.hamzy 1.62 return jVec;
|
1226 schuur 1.1 }
1227
|
1228 mark.hamzy 1.62 JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMClass__1hasQualifier
1229 (JNIEnv *jEnv, jobject jThs, jlong jCls, jstring jQ)
1230 {
1231 CIMClass *cls = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCls);
1232 const char *str = jEnv->GetStringUTFChars (jQ,NULL);
1233 Uint32 pos = cls->findQualifier (String (str));
|
1234 schuur 1.7
|
1235 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jQ,str);
|
1236 mark.hamzy 1.27
|
1237 mark.hamzy 1.62 return (jboolean)(pos != PEG_NOT_FOUND);
1238 }
|
1239 schuur 1.3
|
1240 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClass__1addProperty
1241 (JNIEnv *jEnv, jobject jThs, jlong jCls, jlong jP)
1242 {
1243 CIMClass *cls = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCls);
1244 CIMProperty *p = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jP);
|
1245 mark.hamzy 1.20
|
1246 mark.hamzy 1.62 try
1247 {
1248 cls->addProperty (*p);
|
1249 schuur 1.1 }
|
1250 mark.hamzy 1.44 Catch (jEnv);
|
1251 mark.hamzy 1.62 }
|
1252 mark.hamzy 1.20
|
1253 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClass__1setProperties
1254 (JNIEnv *jEnv, jobject jThs, jlong jCls, jobject jVec)
|
1255 mark.hamzy 1.20 {
|
1256 mark.hamzy 1.62 JMPIjvm::cacheIDs (jEnv);
|
1257 mark.hamzy 1.20
|
1258 mark.hamzy 1.62 CIMClass *cls = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCls);
|
1259 mark.hamzy 1.27
|
1260 mark.hamzy 1.62 for (int i = cls->getPropertyCount () - 1; i >= 0; i--)
1261 {
1262 cls->removeProperty (i);
|
1263 schuur 1.7 }
|
1264 mark.hamzy 1.62 for (Uint32 i = 0, s = jEnv->CallIntMethod (jVec, JMPIjvm::jv.VectorSize); i < s; i++)
1265 {
1266 JMPIjvm::checkException (jEnv);
|
1267 schuur 1.7
|
1268 mark.hamzy 1.62 jobject o = jEnv->CallObjectMethod (jVec,JMPIjvm::jv.VectorElementAt, (i));
1269 jlong jp = jEnv->CallLongMethod (o,JMPIjvm::jv.CIMPropertyCInst);
1270 CIMProperty *cp = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jp);
|
1271 mark.hamzy 1.30
|
1272 mark.hamzy 1.62 JMPIjvm::checkException (jEnv);
|
1273 schuur 1.7
|
1274 mark.hamzy 1.62 cls->addProperty (*cp);
1275 }
1276 }
|
1277 schuur 1.7
|
1278 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClass__1getProperty
1279 (JNIEnv *jEnv, jobject jThs, jlong jCls, jstring jN)
1280 {
1281 CIMClass *cls = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCls);
1282 const char *str = jEnv->GetStringUTFChars (jN,NULL);
1283 jlong rv = 0;
1284 Uint32 pos = cls->findProperty (CIMName (str));
|
1285 schuur 1.7
|
1286 mark.hamzy 1.62 if (pos != PEG_NOT_FOUND)
1287 rv = DEBUG_ConvertCToJava (CIMProperty*,
1288 jlong,
1289 new CIMProperty (cls->getProperty (pos)));
|
1290 mark.hamzy 1.20
|
1291 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jN,str);
|
1292 mark.hamzy 1.23
|
1293 mark.hamzy 1.62 return rv;
1294 }
|
1295 mark.hamzy 1.20
|
1296 mark.hamzy 1.62 JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_CIMClass__1getProperties
1297 (JNIEnv *jEnv, jobject jThs, jlong jCls, jobject jVec)
1298 {
1299 JMPIjvm::cacheIDs (jEnv);
|
1300 mark.hamzy 1.20
|
1301 mark.hamzy 1.62 CIMClass *cls = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCls);
|
1302 mark.hamzy 1.20
|
1303 mark.hamzy 1.62 for (int i = 0, s = cls->getPropertyCount (); i < s; i++)
1304 {
1305 CIMProperty *cp = new CIMProperty (cls->getProperty (i));
1306 jlong jCp = DEBUG_ConvertCToJava (CIMProperty*, jlong, cp);
1307 jobject prop = jEnv->NewObject (JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewJ,jCp);
|
1308 schuur 1.7
|
1309 mark.hamzy 1.62 jEnv->CallVoidMethod (jVec,JMPIjvm::jv.VectorAddElement,prop);
|
1310 mark.hamzy 1.20 }
1311
|
1312 mark.hamzy 1.62 return jVec;
|
1313 schuur 1.7 }
|
1314 schuur 1.1
|
1315 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClass__1new
1316 (JNIEnv *jEnv, jobject jThs, jstring jN)
|
1317 mark.hamzy 1.20 {
|
1318 mark.hamzy 1.62 const char *str = jEnv->GetStringUTFChars (jN,NULL);
1319 CIMClass *cls = new CIMClass (CIMName (str), CIMName ());
|
1320 mark.hamzy 1.30
|
1321 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jN,str);
|
1322 mark.hamzy 1.20
|
1323 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMClass*, jlong, cls);
1324 }
|
1325 schuur 1.7
|
1326 mark.hamzy 1.62 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMClass__1getSuperClass
1327 (JNIEnv *jEnv, jobject jThs, jlong jCls)
1328 {
1329 CIMClass *cls = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCls);
1330 const String &cn = cls->getSuperClassName ().getString ();
|
1331 schuur 1.3
|
1332 mark.hamzy 1.62 jstring str = jEnv->NewStringUTF (cn.getCString ());
|
1333 mark.hamzy 1.44
|
1334 mark.hamzy 1.62 return str;
1335 }
|
1336 mark.hamzy 1.20
|
1337 mark.hamzy 1.62 JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_CIMClass__1getKeys
1338 (JNIEnv *jEnv, jobject jThs, jlong jCls, jobject jVec)
1339 {
1340 JMPIjvm::cacheIDs (jEnv);
|
1341 mark.hamzy 1.20
|
1342 mark.hamzy 1.62 CIMClass *cls = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCls);
|
1343 mark.hamzy 1.20
|
1344 mark.hamzy 1.62 if (cls->hasKeys ())
1345 {
1346 Array<CIMName> keyNames;
|
1347 mark.hamzy 1.20
|
1348 mark.hamzy 1.62 cls->getKeyNames (keyNames);
|
1349 schuur 1.7
|
1350 mark.hamzy 1.62 for (int i = 0, s = keyNames.size (); i < s; i++)
|
1351 mark.hamzy 1.43 {
|
1352 mark.hamzy 1.62 Uint32 pos = cls->findProperty (keyNames[i]);
1353
1354 if (pos != PEG_NOT_FOUND)
|
1355 mark.hamzy 1.44 {
|
1356 mark.hamzy 1.62 CIMProperty *cp = new CIMProperty (cls->getProperty (pos));
1357 jlong jCp = DEBUG_ConvertCToJava (CIMProperty*, jlong, cp);
1358
1359 jobject prop = jEnv->NewObject (JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewJ,jCp);
|
1360 mark.hamzy 1.20
|
1361 mark.hamzy 1.62 jEnv->CallVoidMethod (jVec,JMPIjvm::jv.VectorAddElement,prop);
|
1362 mark.hamzy 1.43 }
|
1363 schuur 1.7 }
|
1364 schuur 1.1 }
|
1365 mark.hamzy 1.20
|
1366 mark.hamzy 1.62 return jVec;
|
1367 schuur 1.1 }
1368
|
1369 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClass__1getMethod
1370 (JNIEnv *jEnv, jobject jThs, jlong jCls, jstring jN)
|
1371 mark.hamzy 1.20 {
|
1372 mark.hamzy 1.62 CIMClass *cls = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCls);
1373 const char *str = jEnv->GetStringUTFChars (jN,NULL);
1374 jlong rv = 0;
1375 Uint32 pos = cls->findMethod (String (str));
|
1376 mark.hamzy 1.23
|
1377 mark.hamzy 1.62 if (pos != PEG_NOT_FOUND)
|
1378 mark.hamzy 1.44 {
|
1379 mark.hamzy 1.62 rv = DEBUG_ConvertCToJava (CIMMethod*, jlong, new CIMMethod (cls->getMethod (pos)));
|
1380 mark.hamzy 1.44 }
|
1381 mark.hamzy 1.23
|
1382 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jN,str);
|
1383 mark.hamzy 1.23
|
1384 mark.hamzy 1.62 return rv;
1385 }
|
1386 mark.hamzy 1.23
|
1387 mark.hamzy 1.62 JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMClass__1equals
1388 (JNIEnv *jEnv, jobject jThs, jlong jCls, jlong jClsToBeCompared)
1389 {
1390 CIMClass *cls = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCls);
1391 CIMClass *clsToBeCompared = DEBUG_ConvertJavaToC (jlong, CIMClass*, jClsToBeCompared);
1392 bool fRc = false;
|
1393 mark.hamzy 1.23
|
1394 mark.hamzy 1.62 if ( cls
1395 && clsToBeCompared
|
1396 mark.hamzy 1.44 )
1397 {
|
1398 mark.hamzy 1.62 try
|
1399 mark.hamzy 1.44 {
|
1400 mark.hamzy 1.62 fRc = cls->identical (*clsToBeCompared);
|
1401 mark.hamzy 1.44 }
|
1402 mark.hamzy 1.62 Catch (jEnv);
|
1403 mark.hamzy 1.44 }
1404
|
1405 mark.hamzy 1.62 return fRc;
1406 }
|
1407 mark.hamzy 1.44
|
1408 mark.hamzy 1.67 JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMClass__1isAssociation
1409 (JNIEnv *jEnv, jobject jThs, jlong jCls)
1410 {
1411 CIMClass *cls = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCls);
1412 jboolean rv = false;
1413
1414 if (cls)
1415 {
1416 try
1417 {
1418 rv = cls->isAssociation ();
1419 }
1420 Catch (jEnv);
1421 }
1422
1423 return rv;
1424 }
1425
1426 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClass__1findMethod
1427 (JNIEnv *jEnv, jobject jThs, jlong jCls, jstring jName)
1428 {
1429 mark.hamzy 1.67 CIMClass *cls = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCls);
1430 jint rv = -1;
1431
1432 if (cls)
1433 {
1434 const char *cstrName = jEnv->GetStringUTFChars (jName, NULL);
1435
1436 try
1437 {
1438 CIMName name (cstrName);
1439
1440 rv = cls->findMethod (name);
1441 }
1442 Catch (jEnv);
1443
1444 jEnv->ReleaseStringUTFChars (jName, cstrName);
1445 }
1446
1447 return rv;
1448 }
1449
1450 mark.hamzy 1.67 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClass__1getMethodI
1451 (JNIEnv *jEnv, jobject jThs, jlong jCls, jint jMethod)
1452 {
1453 CIMClass *cls = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCls);
1454 jlong rv = 0;
1455
1456 if (cls && jMethod >=0)
1457 {
1458 try
1459 {
1460 CIMMethod cm = cls->getMethod (jMethod);
1461
1462 rv = DEBUG_ConvertCToJava (CIMMethod *, jlong, new CIMMethod (cm));
1463 }
1464 Catch (jEnv);
1465 }
1466
1467 return rv;
1468 }
1469
1470 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClass__1getMethodCount
1471 mark.hamzy 1.67 (JNIEnv *jEnv, jobject jThs, jlong jCls)
1472 {
1473 CIMClass *cls = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCls);
1474 jint rv = 0;
1475
1476 if (cls)
1477 {
1478 try
1479 {
1480 rv = cls->getMethodCount ();
1481 }
1482 Catch (jEnv);
1483 }
1484
1485 return rv;
1486 }
1487
|
1488 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClass__1finalize
1489 (JNIEnv *jEnv, jobject jThs, jlong jCls)
1490 {
1491 CIMClass *cls = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCls);
|
1492 mark.hamzy 1.44
|
1493 mark.hamzy 1.62 delete cls;
|
1494 mark.hamzy 1.44
|
1495 mark.hamzy 1.62 DEBUG_ConvertCleanup (jlong, jCls);
1496 }
|
1497 mark.hamzy 1.44
1498
|
1499 mark.hamzy 1.62 // -------------------------------------
1500 // ---
1501 // - CIMClient
1502 // ---
1503 // -------------------------------------
|
1504 mark.hamzy 1.44
|
1505 mark.hamzy 1.62 void checkNs (CIMObjectPath *cop, jlong jNs)
1506 {
1507 if (cop->getNameSpace ().isNull ())
1508 {
1509 _nameSpace *cNs = DEBUG_ConvertJavaToC (jlong, _nameSpace*, jNs);
|
1510 schuur 1.7
|
1511 mark.hamzy 1.62 cop->setNameSpace (CIMNamespaceName (cNs->nameSpace ()));
|
1512 schuur 1.7 }
1513 }
1514
|
1515 mark.hamzy 1.62 static int normalizeNs (String &ns, String &nsBase, String &lastNsComp)
|
1516 mark.hamzy 1.20 {
|
1517 mark.hamzy 1.62 Uint32 n = ns.size ();
|
1518 mark.hamzy 1.23
|
1519 mark.hamzy 1.62 if (ns[n-1] == '/')
|
1520 mark.hamzy 1.44 {
|
1521 mark.hamzy 1.62 if (n >= 2)
1522 ns = ns.subString (0, n-2);
1523 }
1524
1525 lastNsComp = ns;
1526 nsBase = "root";
|
1527 mark.hamzy 1.44
|
1528 mark.hamzy 1.62 n = ns.reverseFind ('/');
|
1529 mark.hamzy 1.44
|
1530 mark.hamzy 1.62 if (n != PEG_NOT_FOUND)
1531 {
1532 lastNsComp = ns.subString (n+1);
1533 nsBase = ns.subString (0, n);
|
1534 mark.hamzy 1.44 }
1535
|
1536 mark.hamzy 1.62 return 0;
1537 }
|
1538 mark.hamzy 1.44
|
1539 mark.hamzy 1.66 Boolean verifyServerCertificate (SSLCertificateInfo &certInfo)
1540 {
1541 //
1542 // If server certificate was found in CA trust store and validated, then
1543 // return 'true' to accept the certificate, otherwise return 'false'.
1544 //
1545 if (certInfo.getResponseCode () == 1)
1546 {
1547 return true;
1548 }
1549 else
1550 {
1551 return false;
1552 }
1553 }
1554
|
1555 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1newNaUnPw
1556 (JNIEnv *jEnv, jobject jThs, jlong jNs, jstring jUn, jstring jPw)
1557 {
1558 _nameSpace *cNs = DEBUG_ConvertJavaToC (jlong, _nameSpace*, jNs);
1559 const char *un = jEnv->GetStringUTFChars (jUn, NULL);
1560 const char *pw = jEnv->GetStringUTFChars (jPw, NULL);
1561 jlong jCc = 0;
|
1562 mark.hamzy 1.44
|
1563 mark.hamzy 1.66 SSLContext *sslContext = 0; // initialized for unencrypted connection
1564
1565 if (cNs->isHttps ())
1566 {
1567 try
1568 {
1569 sslContext = new SSLContext (PEGASUS_SSLCLIENT_CERTIFICATEFILE,
1570 verifyServerCertificate,
1571 PEGASUS_SSLCLIENT_RANDOMFILE);
1572 }
1573 catch (Exception &e)
1574 {
1575 cerr << "JMPI: Error: could not create SSLContext: " << e.getMessage() << endl;
1576 return jCc;
1577 }
1578 }
1579
|
1580 mark.hamzy 1.62 try {
1581 CIMClient *cc = new CIMClient ();
|
1582 mark.hamzy 1.44
|
1583 mark.hamzy 1.66 if (sslContext)
1584 {
1585 cc->connect (cNs->hostName (), cNs->port (), *sslContext, un, pw);
1586 }
1587 else
1588 {
1589 cc->connect (cNs->hostName (), cNs->port (), un, pw);
1590 }
|
1591 mark.hamzy 1.23
|
1592 mark.hamzy 1.62 jCc = DEBUG_ConvertCToJava (CIMClient*, jlong, cc);
|
1593 mark.hamzy 1.44 }
|
1594 mark.hamzy 1.62 Catch (jEnv);
|
1595 mark.hamzy 1.23
|
1596 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jUn, un);
1597 jEnv->ReleaseStringUTFChars (jPw, pw);
|
1598 mark.hamzy 1.23
|
1599 mark.hamzy 1.66 delete sslContext;
1600
|
1601 mark.hamzy 1.62 return jCc;
1602 }
|
1603 mark.hamzy 1.23
|
1604 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1disconnect
1605 (JNIEnv *jEnv, jobject jThs, jlong jCc)
1606 {
1607 CIMClient *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
|
1608 mark.hamzy 1.23
|
1609 mark.hamzy 1.62 try {
1610 cCc->disconnect ();
1611 }
1612 Catch (jEnv);
1613 }
|
1614 mark.hamzy 1.23
|
1615 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1getClass
1616 (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jboolean lo,
1617 jboolean iq, jboolean ic, jobjectArray jPl)
1618 {
1619 CIMClient *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
1620 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
1621 CIMPropertyList pl = getList (jEnv, jPl);
|
1622 mark.hamzy 1.23
|
1623 mark.hamzy 1.62 if ( cCc
1624 && cop
1625 )
1626 {
1627 try {
1628 checkNs (cop, jNs);
|
1629 mark.hamzy 1.23
|
1630 mark.hamzy 1.62 CIMClass cls = cCc->getClass (cop->getNameSpace (),
1631 cop->getClassName (),
1632 (Boolean)lo,
1633 (Boolean)iq,
1634 (Boolean)ic,
1635 pl);
1636 CIMObjectPath copNew = cls.getPath ();
|
1637 schuur 1.7
|
1638 mark.hamzy 1.62 copNew.setNameSpace (cop->getNameSpace ());
1639 cls.setPath (copNew);
|
1640 mark.hamzy 1.23
|
1641 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMClass*, jlong, new CIMClass (cls));
|
1642 schuur 1.1 }
|
1643 mark.hamzy 1.62 Catch (jEnv);
|
1644 schuur 1.1 }
|
1645 mark.hamzy 1.20
|
1646 schuur 1.7 return 0;
|
1647 schuur 1.1 }
1648
|
1649 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1deleteClass
1650 (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop)
|
1651 mark.hamzy 1.20 {
|
1652 mark.hamzy 1.62 CIMClient *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
1653 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
|
1654 mark.hamzy 1.23
|
1655 mark.hamzy 1.62 try {
1656 checkNs (cop, jNs);
|
1657 mark.hamzy 1.23
|
1658 mark.hamzy 1.62 cCc->deleteClass (cop->getNameSpace (),
1659 cop->getClassName ());
|
1660 mark.hamzy 1.44 }
|
1661 mark.hamzy 1.62 Catch (jEnv);
1662 }
|
1663 mark.hamzy 1.23
|
1664 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1createClass
1665 (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jlong jCl)
1666 {
1667 CIMClient *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
1668 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
1669 CIMClass *cl = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCl);
|
1670 mark.hamzy 1.44
|
1671 mark.hamzy 1.62 try {
1672 cCc->createClass (cop->getNameSpace (), *cl);
1673 }
1674 Catch (jEnv);
1675 }
|
1676 mark.hamzy 1.44
|
1677 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1setClass
1678 (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jlong jCl)
1679 {
1680 CIMClient *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
1681 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
1682 CIMClass *cl = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCl);
|
1683 schuur 1.7
1684 try {
|
1685 mark.hamzy 1.62 checkNs (cop, jNs);
|
1686 mark.hamzy 1.23
|
1687 mark.hamzy 1.62 cCc->modifyClass (cop->getNameSpace (), *cl);
|
1688 schuur 1.7 }
|
1689 mark.hamzy 1.44 Catch (jEnv);
|
1690 schuur 1.7 }
|
1691 schuur 1.1
|
1692 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1getInstance
1693 (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jboolean lo,
1694 jboolean iq, jboolean ic, jobjectArray jPl)
|
1695 mark.hamzy 1.20 {
|
1696 mark.hamzy 1.62 CIMClient *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
|
1697 mark.hamzy 1.61 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
|
1698 mark.hamzy 1.44 CIMPropertyList pl = getList (jEnv, jPl);
1699
|
1700 mark.hamzy 1.62 try {
1701 checkNs (cop, jNs);
1702
1703 CIMInstance inst = cCc->getInstance (cop->getNameSpace (),
1704 *cop,
1705 (Boolean)lo,
1706 (Boolean)iq,
1707 (Boolean)ic,
1708 pl);
|
1709 schuur 1.3
|
1710 mark.hamzy 1.62 inst.setPath (*cop);
|
1711 mark.hamzy 1.23
|
1712 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMInstance*, jlong, new CIMInstance (inst));
|
1713 mark.hamzy 1.44 }
|
1714 mark.hamzy 1.62 Catch (jEnv);
|
1715 mark.hamzy 1.20
|
1716 mark.hamzy 1.62 return 0;
1717 }
1718
1719 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1deleteInstance
1720 (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop)
1721 {
1722 CIMClient *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
1723 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
|
1724 mark.hamzy 1.20
|
1725 mark.hamzy 1.62 try {
1726 checkNs (cop, jNs);
|
1727 mark.hamzy 1.44
|
1728 mark.hamzy 1.62 cCc->deleteInstance (cop->getNameSpace (), *cop);
1729 }
1730 Catch (jEnv);
1731 }
|
1732 mark.hamzy 1.44
|
1733 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1createInstance
1734 (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jlong jCi)
1735 {
1736 CIMClient *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
1737 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
1738 CIMInstance *ci = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jCi);
|
1739 schuur 1.7
|
1740 schuur 1.1 try {
|
1741 mark.hamzy 1.62 checkNs (cop, jNs);
1742
1743 ci->setPath (*cop);
|
1744 mark.hamzy 1.23
|
1745 mark.hamzy 1.62 CIMObjectPath obj = cCc->createInstance (cop->getNameSpace (), *ci);
|
1746 mark.hamzy 1.23
|
1747 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMObjectPath*, jlong, new CIMObjectPath (obj));
|
1748 schuur 1.1 }
|
1749 mark.hamzy 1.44 Catch (jEnv);
|
1750 mark.hamzy 1.20
|
1751 schuur 1.7 return 0;
|
1752 schuur 1.1 }
1753
|
1754 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1modifyInstance
1755 (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jlong jCi,
1756 jboolean iq, jobjectArray jPl)
|
1757 mark.hamzy 1.20 {
|
1758 mark.hamzy 1.62 CIMClient *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
1759 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
1760 CIMInstance *ci = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jCi);
1761 CIMPropertyList pl = getList (jEnv, jPl);
1762
1763 try {
1764 checkNs (cop, jNs);
|
1765 schuur 1.1
|
1766 mark.hamzy 1.62 ci->setPath (*cop);
|
1767 mark.hamzy 1.37
|
1768 mark.hamzy 1.62 cCc->modifyInstance (cop->getNameSpace (), *ci, (Boolean)iq, pl);
1769 }
1770 Catch (jEnv);
1771 }
|
1772 mark.hamzy 1.37
|
1773 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1enumerateClasses
1774 (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jboolean deep, jboolean lo, jboolean iq, jboolean ic)
1775 {
1776 CIMClient *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
1777 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
|
1778 mark.hamzy 1.37
|
1779 mark.hamzy 1.62 try {
1780 checkNs (cop, jNs);
|
1781 mark.hamzy 1.27
|
1782 mark.hamzy 1.62 Array<CIMClass> enm = cCc->enumerateClasses (cop->getNameSpace (),
1783 cop->getClassName (),
1784 (Boolean)deep,
1785 (Boolean)lo,
1786 (Boolean)iq,
1787 (Boolean)ic);
|
1788 mark.hamzy 1.20
|
1789 mark.hamzy 1.62 return DEBUG_ConvertCToJava (Array<CIMClass>*, jlong, new Array<CIMClass> (enm));
1790 }
1791 Catch (jEnv);
|
1792 mark.hamzy 1.20
|
1793 mark.hamzy 1.62 return 0;
1794 }
|
1795 schuur 1.3
|
1796 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1enumerateClassNames
1797 (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jboolean deep)
1798 {
1799 CIMClient *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
1800 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
1801 CIMNamespaceName ns = cop->getNameSpace ();
|
1802 mark.hamzy 1.20
|
1803 mark.hamzy 1.62 try {
1804 checkNs (cop, jNs);
|
1805 schuur 1.8
|
1806 mark.hamzy 1.62 Array<CIMName> enm = cCc->enumerateClassNames (ns,
1807 cop->getClassName (),
1808 (Boolean)deep);
1809 Array<CIMObjectPath> *enmop = new Array<CIMObjectPath> ();
|
1810 schuur 1.3
|
1811 mark.hamzy 1.62 for (int i = 0, m = enm.size (); i < m; i++)
|
1812 mark.hamzy 1.37 {
|
1813 mark.hamzy 1.62 enmop->append (CIMObjectPath (String::EMPTY, ns, enm[i]));
|
1814 schuur 1.3 }
|
1815 mark.hamzy 1.62
1816 return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jlong, enmop);
|
1817 schuur 1.3 }
|
1818 mark.hamzy 1.62 Catch (jEnv);
1819
1820 return 0;
|
1821 schuur 1.3 }
|
1822 schuur 1.1
|
1823 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1enumerateInstanceNames
1824 (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jboolean deep)
|
1825 mark.hamzy 1.21 {
|
1826 mark.hamzy 1.62 CIMClient *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
1827 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
1828
1829 try {
1830 checkNs (cop,jNs);
1831
1832 Array<CIMObjectPath> enm = cCc->enumerateInstanceNames (cop->getNameSpace (),
1833 cop->getClassName ()); //, (Boolean)deep);
|
1834 mark.hamzy 1.21
|
1835 mark.hamzy 1.62 return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jlong, new Array<CIMObjectPath> (enm));
1836 }
1837 Catch (jEnv);
|
1838 mark.hamzy 1.21
|
1839 mark.hamzy 1.62 return 0;
|
1840 mark.hamzy 1.21 }
1841
|
1842 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1enumerateInstances
1843 (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jboolean deep, jboolean lo,
1844 jboolean iq, jboolean ic, jobjectArray jPl)
1845 {
1846 CIMClient *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
1847 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
1848 CIMPropertyList pl = getList (jEnv,jPl);
1849
1850 try {
1851 checkNs (cop, jNs);
|
1852 schuur 1.1
|
1853 mark.hamzy 1.62 CIMPropertyList props;
1854 Array<CIMInstance> enm = cCc->enumerateInstances (cop->getNameSpace (),
1855 cop->getClassName (),
1856 (Boolean)deep,
1857 (Boolean)lo,
1858 (Boolean)iq,
1859 (Boolean)ic,pl);
|
1860 mark.hamzy 1.20
|
1861 mark.hamzy 1.62 return DEBUG_ConvertCToJava (Array<CIMInstance>*, jlong, new Array<CIMInstance> (enm));
1862 }
1863 Catch (jEnv);
|
1864 mark.hamzy 1.23
|
1865 mark.hamzy 1.62 return 0;
1866 }
|
1867 mark.hamzy 1.23
|
1868 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1enumerateQualifiers
1869 (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop)
1870 {
1871 CIMClient *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
1872 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
|
1873 mark.hamzy 1.54
|
1874 mark.hamzy 1.62 try {
1875 checkNs (cop, jNs);
|
1876 mark.hamzy 1.54
|
1877 mark.hamzy 1.62 Array<CIMQualifierDecl> enm = cCc->enumerateQualifiers (cop->getNameSpace ());
|
1878 mark.hamzy 1.54
|
1879 mark.hamzy 1.62 return DEBUG_ConvertCToJava (Array<CIMQualifierDecl>*, jlong, new Array<CIMQualifierDecl> (enm));
|
1880 schuur 1.1 }
|
1881 mark.hamzy 1.62 Catch (jEnv);
|
1882 mark.hamzy 1.20
|
1883 schuur 1.1 return 0;
1884 }
1885
|
1886 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1getQualifier
1887 (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop)
|
1888 mark.hamzy 1.20 {
|
1889 mark.hamzy 1.62 CIMClient *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
1890 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
|
1891 r.kieninger 1.11
|
1892 schuur 1.1 try {
|
1893 mark.hamzy 1.62 checkNs (cop,jNs);
1894
1895 CIMQualifierDecl *val = new CIMQualifierDecl (cCc->getQualifier (cop->getNameSpace (),
1896 cop->getClassName ()));
|
1897 mark.hamzy 1.20
|
1898 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMQualifierDecl*, jlong, val);
|
1899 schuur 1.1 }
|
1900 mark.hamzy 1.44 Catch (jEnv);
|
1901 mark.hamzy 1.20
|
1902 schuur 1.1 return 0;
1903 }
1904
|
1905 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1setQualifier
1906 (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jlong jQ)
|
1907 mark.hamzy 1.20 {
|
1908 mark.hamzy 1.62 CIMClient *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
1909 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
1910 CIMQualifierDecl *qt = DEBUG_ConvertJavaToC (jlong, CIMQualifierDecl*, jQ);
|
1911 mark.hamzy 1.20
|
1912 mark.hamzy 1.62 try {
1913 checkNs (cop, jNs);
|
1914 mark.hamzy 1.20
|
1915 mark.hamzy 1.62 cCc->setQualifier (cop->getNameSpace (), *qt);
1916 }
1917 Catch (jEnv);
|
1918 schuur 1.1 }
1919
|
1920 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1deleteQualifier
1921 (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop)
|
1922 mark.hamzy 1.20 {
|
1923 mark.hamzy 1.62 CIMClient *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
1924 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
|
1925 mark.hamzy 1.20
|
1926 mark.hamzy 1.62 try {
1927 checkNs (cop, jNs);
|
1928 mark.hamzy 1.20
|
1929 mark.hamzy 1.62 cCc->deleteQualifier (cop->getNameSpace (), cop->getClassName ());
1930 }
1931 Catch (jEnv);
|
1932 schuur 1.1 }
1933
|
1934 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1getProperty
1935 (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jstring jPn)
|
1936 mark.hamzy 1.20 {
|
1937 mark.hamzy 1.62 CIMClient *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
1938 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
1939 const char *str = jEnv->GetStringUTFChars (jPn, NULL);
1940 CIMName pName (str);
1941 jlong jCv = 0;
|
1942 mark.hamzy 1.20
|
1943 mark.hamzy 1.62 try {
1944 checkNs (cop, jNs);
|
1945 mark.hamzy 1.20
|
1946 mark.hamzy 1.62 CIMValue *val = new CIMValue (cCc->getProperty (cop->getNameSpace (), *cop, pName));
|
1947 schuur 1.1
|
1948 mark.hamzy 1.62 jCv = DEBUG_ConvertCToJava (CIMValue*, jlong, val);
1949 }
1950 Catch (jEnv);
|
1951 mark.hamzy 1.30
|
1952 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jPn, str);
|
1953 schuur 1.5
|
1954 mark.hamzy 1.62 return jCv;
|
1955 schuur 1.1 }
1956
|
1957 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1setProperty
1958 (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jstring jPn, jlong jV)
|
1959 mark.hamzy 1.20 {
|
1960 mark.hamzy 1.62 CIMClient *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
1961 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
1962 CIMValue *val = DEBUG_ConvertJavaToC (jlong, CIMValue*, jV);
1963 const char *str = jEnv->GetStringUTFChars (jPn, NULL);
1964 CIMName pName (str);
1965
1966 try {
1967 checkNs (cop,jNs);
|
1968 mark.hamzy 1.20
|
1969 mark.hamzy 1.62 cCc->setProperty (cop->getNameSpace (), *cop, pName, *val);
|
1970 mark.hamzy 1.50 }
1971 Catch (jEnv);
|
1972 mark.hamzy 1.62
1973 jEnv->ReleaseStringUTFChars (jPn, str);
|
1974 schuur 1.5 }
1975
|
1976 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1execQuery
1977 (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jstring jQuery, jstring jQl)
|
1978 mark.hamzy 1.20 {
|
1979 mark.hamzy 1.62 CIMClient *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
1980 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
1981 const char *str = jEnv->GetStringUTFChars (jQuery, NULL);
1982 String query (str);
|
1983 mark.hamzy 1.30
|
1984 mark.hamzy 1.62 /* @NOTE
1985 ** This does not work for some reason on the client java code:
1986 ** 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));
1987 ** What does work is:
1988 ** printf ("This is a test\n");
1989 **
1990 ** To debug these JNI functions insert the following:
1991 ** if (getenv ("PEGASUS_JMPI_GDB"))
1992 ** {
1993 ** bool fLoop = true;
1994 ** int i = 0;
1995 **
1996 ** while (fLoop)
1997 ** {
1998 ** i = 1;
1999 ** }
2000 ** }
2001 ** Export the variable PEGASUS_JMPI_GDB = 1.
2002 ** Start gdb in another process.
2003 ** shell ps -efl
2004 ** att <ps number>
2005 mark.hamzy 1.62 ** set fLoop = 0
2006 */
|
2007 mark.hamzy 1.20
|
2008 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jQuery, str);
|
2009 mark.hamzy 1.20
|
2010 mark.hamzy 1.62 str = jEnv->GetStringUTFChars (jQl, NULL);
|
2011 mark.hamzy 1.20
|
2012 mark.hamzy 1.62 String ql (str);
|
2013 mark.hamzy 1.20
|
2014 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jQl, str);
|
2015 schuur 1.5
|
2016 mark.hamzy 1.62 try {
2017 checkNs (cop, jNs);
|
2018 mark.hamzy 1.30
|
2019 mark.hamzy 1.62 Array<CIMObject> enm = cCc->execQuery (cop->getNameSpace (),
2020 ql,
2021 query);
2022 Array<CIMInstance> *enmInst = new Array<CIMInstance> ();
|
2023 schuur 1.5
|
2024 mark.hamzy 1.62 for (int i = 0,m = enm.size (); i<m; i++)
2025 {
2026 enmInst->append (CIMInstance (enm[i]));
2027 }
|
2028 mark.hamzy 1.20
|
2029 mark.hamzy 1.62 return DEBUG_ConvertCToJava (Array<CIMInstance>*, jlong, enmInst);
|
2030 schuur 1.5 }
|
2031 mark.hamzy 1.62 Catch (jEnv);
|
2032 mark.hamzy 1.20
|
2033 mark.hamzy 1.62 return 0;
|
2034 schuur 1.5 }
2035
|
2036 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1invokeMethod
2037 (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jstring jMn, jobject jIn, jobject jOut)
|
2038 mark.hamzy 1.20 {
|
2039 mark.hamzy 1.62 JMPIjvm::cacheIDs (jEnv);
|
2040 mark.hamzy 1.20
|
2041 mark.hamzy 1.62 CIMClient *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
2042 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
2043 const char *str = jEnv->GetStringUTFChars (jMn, NULL);
2044 CIMName method (str);
2045 jlong jCv = 0;
2046 Array<CIMParamValue> in;
2047 Array<CIMParamValue> out;
|
2048 mark.hamzy 1.20
|
2049 mark.hamzy 1.62 for (int i = 0,m = jEnv->CallIntMethod (jIn,JMPIjvm::jv.VectorSize); i<m; i++)
2050 {
2051 JMPIjvm::checkException (jEnv);
|
2052 schuur 1.1
|
2053 mark.hamzy 1.62 jobject jProp = jEnv->CallObjectMethod (jIn,JMPIjvm::jv.VectorElementAt,i);
|
2054 mark.hamzy 1.20
|
2055 mark.hamzy 1.62 JMPIjvm::checkException (jEnv);
|
2056 mark.hamzy 1.20
|
2057 mark.hamzy 1.62 jlong jp = jEnv->CallLongMethod (jProp,JMPIjvm::jv.CIMPropertyCInst);
2058 CIMProperty *p = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jp);
|
2059 schuur 1.1
|
2060 mark.hamzy 1.62 JMPIjvm::checkException (jEnv);
|
2061 mark.hamzy 1.30
|
2062 mark.hamzy 1.62 in.append (CIMParamValue (p->getName ().getString (),p->getValue ()));
2063 }
|
2064 mark.hamzy 1.20
|
2065 mark.hamzy 1.62 try {
2066 checkNs (cop, jNs);
|
2067 mark.hamzy 1.56
|
2068 mark.hamzy 1.62 CIMValue *val = new CIMValue (cCc->invokeMethod (cop->getNameSpace (),*cop,method,in,out));
|
2069 mark.hamzy 1.56
|
2070 mark.hamzy 1.62 for (int i = 0,m = out.size (); i<m; i++)
|
2071 mark.hamzy 1.44 {
|
2072 mark.hamzy 1.62 const CIMParamValue &parm = out[i];
2073 const CIMValue v = parm.getValue ();
2074 CIMProperty *p = new CIMProperty (parm.getParameterName (),v,v.getArraySize ());
2075 jlong jp = DEBUG_ConvertCToJava (CIMProperty*, jlong, p);
2076 jobject prop = jEnv->NewObject (JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewJ,jp);
|
2077 mark.hamzy 1.56
|
2078 mark.hamzy 1.62 jEnv->CallVoidMethod (jOut,JMPIjvm::jv.VectorAddElement,prop);
2079 }
|
2080 mark.hamzy 1.20
|
2081 mark.hamzy 1.62 jCv = DEBUG_ConvertCToJava (CIMValue*, jlong, val);
2082 }
2083 Catch (jEnv);
|
2084 mark.hamzy 1.20
|
2085 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jMn,str);
|
2086 mark.hamzy 1.20
|
2087 mark.hamzy 1.62 return jCv;
|
2088 schuur 1.1 }
2089
|
2090 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1invokeMethod24
2091 (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop, jstring jMn,
2092 jobjectArray jIn, jobjectArray jOut)
|
2093 mark.hamzy 1.20 {
|
2094 mark.hamzy 1.62 JMPIjvm::cacheIDs (jEnv);
2095
2096 CIMClient *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
2097 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
2098 const char *str = jEnv->GetStringUTFChars (jMn, NULL);
2099 CIMName method (str);
2100 jlong jCv = 0;
2101 Array<CIMParamValue> in;
2102 Array<CIMParamValue> out;
|
2103 mark.hamzy 1.20
|
2104 mark.hamzy 1.62 if (jIn)
|
2105 mark.hamzy 1.44 {
|
2106 mark.hamzy 1.62 for (int i = 0, m = jEnv->GetArrayLength (jIn); i < m; i++)
2107 {
2108 JMPIjvm::checkException (jEnv);
2109
2110 jobject jArg = jEnv->GetObjectArrayElement (jIn, i);
|
2111 mark.hamzy 1.20
|
2112 mark.hamzy 1.62 JMPIjvm::checkException (jEnv);
|
2113 mark.hamzy 1.20
|
2114 mark.hamzy 1.62 jlong jp = jEnv->CallLongMethod (jArg,JMPIjvm::jv.CIMArgumentCInst);
2115 CIMParamValue *p = DEBUG_ConvertJavaToC (jlong, CIMParamValue*, jp);
|
2116 schuur 1.1
|
2117 mark.hamzy 1.62 JMPIjvm::checkException (jEnv);
|
2118 mark.hamzy 1.50
|
2119 mark.hamzy 1.62 in.append (*p);
|
2120 mark.hamzy 1.50 }
2121 }
|
2122 mark.hamzy 1.62 try {
2123 checkNs (cop,jNs);
2124
2125 CIMValue *val = new CIMValue (cCc->invokeMethod (cop->getNameSpace (),
2126 *cop,
2127 method,
2128 in,
2129 out));
|
2130 mark.hamzy 1.20
|
2131 mark.hamzy 1.62 if (jOut)
2132 {
2133 for (int i = 0,m = out.size (),o = jEnv->GetArrayLength (jOut); i<m && i<o; i++)
2134 {
2135 CIMParamValue *parm = new CIMParamValue (out[i]);
2136 jlong jParm = DEBUG_ConvertCToJava (CIMParamValue*, jlong, parm);
|
2137 schuur 1.1
|
2138 mark.hamzy 1.62 jEnv->SetObjectArrayElement (jOut,
2139 i,
2140 jEnv->NewObject (JMPIjvm::jv.CIMArgumentClassRef,JMPIjvm::jv.CIMArgumentNewJ,jParm));
2141 }
2142 }
2143 jCv = DEBUG_ConvertCToJava (CIMValue*, jlong, val);
2144 }
2145 Catch (jEnv);
|
2146 mark.hamzy 1.20
|
2147 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jMn, str);
|
2148 mark.hamzy 1.20
|
2149 mark.hamzy 1.62 return jCv;
|
2150 schuur 1.1 }
2151
|
2152 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1associatorNames
2153 (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop,
2154 jstring jAssocClass, jstring jResultClass, jstring jRole, jstring jResultRole)
|
2155 mark.hamzy 1.20 {
|
2156 mark.hamzy 1.62 CIMClient *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
2157 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
2158 const char *str = jEnv->GetStringUTFChars (jAssocClass, NULL);
2159
2160 CIMName assocClass;
|
2161 schuur 1.7
|
2162 mark.hamzy 1.62 if ( str
2163 && *str
2164 )
|
2165 mark.hamzy 1.44 {
|
2166 mark.hamzy 1.62 if (CIMName::legal (str))
|
2167 mark.hamzy 1.44 {
|
2168 mark.hamzy 1.62 assocClass = str;
|
2169 mark.hamzy 1.44 }
|
2170 mark.hamzy 1.62 else
|
2171 mark.hamzy 1.44 {
|
2172 mark.hamzy 1.62 jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,
2173 JMPIjvm::jv.CIMExceptionNewISt,
2174 (jint)4, // CIM_ERR_INVALID_PARAMETER
2175 jEnv->NewStringUTF ("Invalid association class name"));
|
2176 mark.hamzy 1.44
|
2177 mark.hamzy 1.62 jEnv->Throw ((jthrowable)ev);
|
2178 mark.hamzy 1.23
|
2179 mark.hamzy 1.62 return 0;
2180 }
2181 }
|
2182 mark.hamzy 1.23
|
2183 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jAssocClass,str);
|
2184 mark.hamzy 1.23
|
2185 mark.hamzy 1.62 str = jEnv->GetStringUTFChars (jResultClass, NULL);
|
2186 mark.hamzy 1.23
|
2187 mark.hamzy 1.62 CIMName resultClass;
|
2188 mark.hamzy 1.23
|
2189 mark.hamzy 1.62 if ( str
2190 && *str
2191 )
2192 {
2193 if (CIMName::legal (str))
2194 {
2195 resultClass = str;
|
2196 schuur 1.7 }
|
2197 mark.hamzy 1.62 else
|
2198 mark.hamzy 1.44 {
|
2199 mark.hamzy 1.62 jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,
2200 JMPIjvm::jv.CIMExceptionNewISt,
2201 (jint)4, // CIM_ERR_INVALID_PARAMETER
2202 jEnv->NewStringUTF ("Invalid result class name"));
|
2203 mark.hamzy 1.23
|
2204 mark.hamzy 1.62 jEnv->Throw ((jthrowable)ev);
|
2205 mark.hamzy 1.23
|
2206 mark.hamzy 1.62 return 0;
|
2207 schuur 1.7 }
2208 }
|
2209 mark.hamzy 1.23
|
2210 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jResultClass, str);
|
2211 mark.hamzy 1.23
|
2212 mark.hamzy 1.62 str = jEnv->GetStringUTFChars (jRole, NULL);
|
2213 mark.hamzy 1.23
|
2214 mark.hamzy 1.62 String role (str);
|
2215 mark.hamzy 1.23
|
2216 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jRole, str);
|
2217 schuur 1.7
|
2218 mark.hamzy 1.62 str = jEnv->GetStringUTFChars (jResultRole, NULL);
|
2219 schuur 1.7
|
2220 mark.hamzy 1.62 String resultRole (str);
|
2221 schuur 1.1
|
2222 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jResultRole, str);
|
2223 schuur 1.1
|
2224 mark.hamzy 1.62 try {
2225 checkNs (cop,jNs);
|
2226 schuur 1.1
|
2227 mark.hamzy 1.62 Array<CIMObjectPath> enm = cCc->associatorNames (cop->getNameSpace (),
2228 *cop,
2229 assocClass,
2230 resultClass,
2231 role,
2232 resultRole);
2233 return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jlong, new Array<CIMObjectPath> (enm));
2234 }
2235 Catch (jEnv);
|
2236 schuur 1.1
|
2237 mark.hamzy 1.62 return 0;
|
2238 schuur 1.1 }
2239
|
2240 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1associators
2241 (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop,
2242 jstring jAssocClass, jstring jResultClass, jstring jRole, jstring jResultRole,
2243 jboolean includeQualifiers, jboolean includeClassOrigin, jobjectArray jPl)
|
2244 mark.hamzy 1.20 {
|
2245 mark.hamzy 1.62 CIMClient *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
2246 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
2247 CIMPropertyList pl = getList (jEnv, jPl);
2248 const char *str = jEnv->GetStringUTFChars (jAssocClass, NULL);
|
2249 mark.hamzy 1.20
|
2250 mark.hamzy 1.62 CIMName assocClass;
|
2251 mark.hamzy 1.27
|
2252 mark.hamzy 1.62 if ( str
2253 && *str
|
2254 mark.hamzy 1.52 )
2255 {
|
2256 mark.hamzy 1.62 if (CIMName::legal (str))
2257 {
2258 assocClass = str;
2259 }
2260 else
2261 {
2262 jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,
2263 JMPIjvm::jv.CIMExceptionNewISt,
2264 (jint)4, // CIM_ERR_INVALID_PARAMETER
2265 jEnv->NewStringUTF ("Invalid association class name"));
|
2266 mark.hamzy 1.27
|
2267 mark.hamzy 1.62 jEnv->Throw ((jthrowable)ev);
|
2268 mark.hamzy 1.52
|
2269 mark.hamzy 1.62 return 0;
|
2270 schuur 1.1 }
2271 }
2272
|
2273 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jAssocClass, str);
|
2274 schuur 1.1
|
2275 mark.hamzy 1.62 str = jEnv->GetStringUTFChars (jResultClass, NULL);
|
2276 mark.hamzy 1.52
|
2277 mark.hamzy 1.62 CIMName resultClass;
|
2278 mark.hamzy 1.52
|
2279 mark.hamzy 1.62 if ( str
2280 && *str
2281 )
|
2282 mark.hamzy 1.52 {
|
2283 mark.hamzy 1.62 if (CIMName::legal (str))
2284 {
2285 resultClass = str;
2286 }
2287 else
|
2288 mark.hamzy 1.52 {
|
2289 mark.hamzy 1.62 jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,
2290 JMPIjvm::jv.CIMExceptionNewISt,
2291 (jint)4, // CIM_ERR_INVALID_PARAMETER
2292 jEnv->NewStringUTF ("Invalid result class name"));
2293
2294 jEnv->Throw ((jthrowable)ev);
2295
2296 return 0;
2297 }
2298 }
|
2299 mark.hamzy 1.52
|
2300 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jResultClass, str);
|
2301 mark.hamzy 1.52
|
2302 mark.hamzy 1.62 str = jEnv->GetStringUTFChars (jRole, NULL);
|
2303 mark.hamzy 1.52
|
2304 mark.hamzy 1.62 String role (str);
|
2305 mark.hamzy 1.52
|
2306 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jRole, str);
|
2307 mark.hamzy 1.52
|
2308 mark.hamzy 1.62 str = jEnv->GetStringUTFChars (jResultRole, NULL);
|
2309 mark.hamzy 1.52
|
2310 mark.hamzy 1.62 String resultRole (str);
|
2311 schuur 1.5
|
2312 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jResultRole, str);
|
2313 mark.hamzy 1.20
|
2314 schuur 1.1 try {
|
2315 mark.hamzy 1.62 checkNs (cop, jNs);
2316
2317 Array<CIMObject> enm = cCc->associators (cop->getNameSpace (),
2318 *cop,
2319 assocClass,
2320 resultClass,
2321 role,
2322 resultRole,
2323 (Boolean)includeQualifiers,
2324 (Boolean)includeClassOrigin,
2325 pl);
2326 Array<CIMInstance> *enmInst = new Array<CIMInstance> ();
|
2327 mark.hamzy 1.23
|
2328 mark.hamzy 1.62 for (int i = 0,m = enm.size (); i<m; i++)
|
2329 mark.hamzy 1.27 {
|
2330 mark.hamzy 1.62 enmInst->append (CIMInstance (enm[i]));
2331 }
|
2332 mark.hamzy 1.23
|
2333 mark.hamzy 1.62 return DEBUG_ConvertCToJava (Array<CIMInstance>*, jlong, enmInst);
|
2334 schuur 1.1 }
|
2335 mark.hamzy 1.44 Catch (jEnv);
|
2336 mark.hamzy 1.20
|
2337 mark.hamzy 1.62 return 0;
|
2338 schuur 1.1 }
2339
|
2340 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1referenceNames
2341 (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop,
2342 jstring jAssocClass, jstring jRole)
|
2343 mark.hamzy 1.20 {
|
2344 mark.hamzy 1.62 CIMClient *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
2345 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
2346 const char *str = jEnv->GetStringUTFChars (jAssocClass, NULL);
|
2347 mark.hamzy 1.30
|
2348 mark.hamzy 1.62 CIMName assocClass;
|
2349 schuur 1.5
|
2350 mark.hamzy 1.62 if ( str
2351 && *str
|
2352 mark.hamzy 1.56 )
|
2353 mark.hamzy 1.52 {
|
2354 mark.hamzy 1.62 if (CIMName::legal (str))
2355 {
2356 assocClass = str;
2357 }
2358 else
2359 {
2360 jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,
2361 JMPIjvm::jv.CIMExceptionNewISt,
2362 (jint)4, // CIM_ERR_INVALID_PARAMETER
2363 jEnv->NewStringUTF ("Invalid association class name"));
|
2364 mark.hamzy 1.52
|
2365 mark.hamzy 1.62 jEnv->Throw ((jthrowable)ev);
|
2366 mark.hamzy 1.52
|
2367 mark.hamzy 1.62 return 0;
|
2368 mark.hamzy 1.52 }
|
2369 mark.hamzy 1.62 }
|
2370 mark.hamzy 1.52
|
2371 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jAssocClass, str);
|
2372 mark.hamzy 1.52
|
2373 mark.hamzy 1.62 str = jEnv->GetStringUTFChars (jRole, NULL);
|
2374 mark.hamzy 1.52
|
2375 mark.hamzy 1.62 String role (str);
|
2376 mark.hamzy 1.52
|
2377 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jRole, str);
|
2378 mark.hamzy 1.20
|
2379 mark.hamzy 1.62 try {
2380 checkNs (cop, jNs);
|
2381 mark.hamzy 1.20
|
2382 mark.hamzy 1.62 Array<CIMObjectPath> enm = cCc->referenceNames (cop->getNameSpace (),
2383 *cop,
2384 assocClass,
2385 role);
|
2386 mark.hamzy 1.52
|
2387 mark.hamzy 1.62 return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jlong, new Array<CIMObjectPath> (enm));
|
2388 schuur 1.1 }
|
2389 mark.hamzy 1.62 Catch (jEnv);
|
2390 schuur 1.1
|
2391 mark.hamzy 1.62 return 0;
|
2392 schuur 1.1 }
2393
|
2394 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMClient__1references
2395 (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jNs, jlong jCop,
2396 jstring jAssocClass, jstring jRole,
2397 jboolean includeQualifiers, jboolean includeClassOrigin, jobjectArray jPl)
|
2398 mark.hamzy 1.20 {
|
2399 mark.hamzy 1.62 CIMClient *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
2400 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
2401 CIMPropertyList pl = getList (jEnv, jPl);
2402 const char *str = jEnv->GetStringUTFChars (jAssocClass, NULL);
|
2403 mark.hamzy 1.20
|
2404 mark.hamzy 1.62 CIMName assocClass;
|
2405 mark.hamzy 1.20
|
2406 mark.hamzy 1.62 if ( str
2407 && *str
2408 )
2409 {
2410 if (CIMName::legal (str))
2411 {
2412 assocClass = str;
2413 }
2414 else
2415 {
2416 jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,
2417 JMPIjvm::jv.CIMExceptionNewISt,
2418 (jint)4, // CIM_ERR_INVALID_PARAMETER
2419 jEnv->NewStringUTF ("Invalid association class name"));
2420
2421 jEnv->Throw ((jthrowable)ev);
|
2422 schuur 1.1
|
2423 mark.hamzy 1.62 return 0;
2424 }
2425 }
|
2426 mark.hamzy 1.20
|
2427 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jAssocClass, str);
2428 str = jEnv->GetStringUTFChars (jRole, NULL);
|
2429 mark.hamzy 1.52
|
2430 mark.hamzy 1.62 String role (str);
|
2431 mark.hamzy 1.52
|
2432 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jRole, str);
|
2433 mark.hamzy 1.52
|
2434 mark.hamzy 1.62 try {
2435 checkNs (cop, jNs);
|
2436 mark.hamzy 1.52
|
2437 mark.hamzy 1.62 Array<CIMObject> enm = cCc->references (cop->getNameSpace (),
2438 *cop,
2439 assocClass,
2440 role,
2441 (Boolean)includeQualifiers,
2442 (Boolean)includeClassOrigin,
2443 pl);
2444 Array<CIMInstance> *enmInst = new Array<CIMInstance> ();
|
2445 mark.hamzy 1.52
|
2446 mark.hamzy 1.62 for (int i = 0, m = enm.size (); i < m; i++)
2447 {
2448 enmInst->append (CIMInstance (enm[i]));
|
2449 mark.hamzy 1.52 }
|
2450 mark.hamzy 1.62
2451 return DEBUG_ConvertCToJava (Array<CIMInstance>*, jlong, enmInst);
|
2452 schuur 1.1 }
|
2453 mark.hamzy 1.62 Catch (jEnv);
|
2454 mark.hamzy 1.20
|
2455 mark.hamzy 1.62 return 0;
|
2456 schuur 1.1 }
2457
|
2458 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1createNameSpace
2459 (JNIEnv *jEnv, jobject jThs, jlong jCc, jstring jNs)
|
2460 mark.hamzy 1.20 {
|
2461 mark.hamzy 1.62 CIMClient *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
2462 const char *str = jEnv->GetStringUTFChars (jNs, NULL);
2463 String ns (str);
2464
2465 jEnv->ReleaseStringUTFChars (jNs, str);
2466
2467 String lastNsComp;
2468 String nsBase;
2469
2470 normalizeNs (ns, nsBase, lastNsComp);
2471
2472 CIMInstance newInstance (CIMName ("__Namespace"));
2473 newInstance.addProperty (CIMProperty (CIMName ("name"), lastNsComp));
|
2474 mark.hamzy 1.20
|
2475 mark.hamzy 1.62 try {
2476 cCc->createInstance (CIMNamespaceName (nsBase), newInstance);
2477 }
2478 Catch (jEnv);
|
2479 schuur 1.1 }
2480
|
2481 mark.hamzy 1.62 JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_CIMClient__1enumerateNameSpaces
2482 (JNIEnv *jEnv, jobject jThs, jlong jCc, jlong jCop, jboolean deep, jobject jVec)
|
2483 mark.hamzy 1.20 {
|
2484 mark.hamzy 1.44 JMPIjvm::cacheIDs (jEnv);
|
2485 mark.hamzy 1.30
|
2486 mark.hamzy 1.62 CIMClient *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
2487 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
2488 String ns = cop->getNameSpace ().getString ();
2489
2490 try {
2491 Array<CIMObjectPath> enm = cCc->enumerateInstanceNames (cop->getNameSpace (),
2492 CIMName ("__Namespace"));
2493
2494 for (int i = 0, s = enm.size (); i < s; i++)
2495 {
2496 CIMObjectPath& cop = enm[i];
2497 const Array<CIMKeyBinding>& kb = cop.getKeyBindings ();
2498 const String& n = kb[0].getValue ();
|
2499 mark.hamzy 1.16
|
2500 mark.hamzy 1.62 if (!deep && n.find ('/') != PEG_NOT_FOUND)
2501 continue;
|
2502 mark.hamzy 1.16
|
2503 mark.hamzy 1.62 String x = ns+"/"+n;
2504 jstring str = jEnv->NewStringUTF (x.getCString ());
|
2505 mark.hamzy 1.16
|
2506 mark.hamzy 1.62 jEnv->CallVoidMethod (jVec, JMPIjvm::jv.VectorAddElement, str);
2507 }
|
2508 schuur 1.1 }
|
2509 mark.hamzy 1.62 Catch (jEnv);
|
2510 mark.hamzy 1.16
|
2511 schuur 1.1 return jVec;
2512 }
2513
|
2514 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1deleteNameSpace
2515 (JNIEnv *jEnv, jobject jThs, jlong jCc, jstring jNs)
|
2516 mark.hamzy 1.20 {
|
2517 mark.hamzy 1.62 CIMClient *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
2518 const char *str = jEnv->GetStringUTFChars (jNs,NULL);
2519 String ns (str);
|
2520 mark.hamzy 1.20
|
2521 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jNs,str);
|
2522 mark.hamzy 1.20
|
2523 mark.hamzy 1.62 String lastNsComp;
2524 String nsBase;
|
2525 schuur 1.1
|
2526 mark.hamzy 1.62 normalizeNs (ns,nsBase,lastNsComp);
|
2527 schuur 1.7
|
2528 mark.hamzy 1.62 CIMObjectPath cop (String::EMPTY,
2529 CIMNamespaceName (nsBase),
2530 CIMName ("__Namespace"));
2531 Array<CIMKeyBinding> kb;
|
2532 mark.hamzy 1.56
|
2533 mark.hamzy 1.62 kb.append (CIMKeyBinding (("Name"),CIMValue (lastNsComp)));
2534 cop.setKeyBindings (kb);
|
2535 mark.hamzy 1.56
|
2536 mark.hamzy 1.62 try {
2537 cCc->deleteInstance (CIMNamespaceName (nsBase), cop);
|
2538 schuur 1.7 }
|
2539 mark.hamzy 1.62 Catch (jEnv);
2540 }
|
2541 mark.hamzy 1.56
|
2542 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1finalize
2543 (JNIEnv *jEnv, jobject jThs, jlong jCc)
2544 {
2545 CIMClient *cCc = DEBUG_ConvertJavaToC (jlong, CIMClient*, jCc);
|
2546 mark.hamzy 1.56
|
2547 mark.hamzy 1.62 delete cCc;
|
2548 mark.hamzy 1.56
|
2549 mark.hamzy 1.62 DEBUG_ConvertCleanup (jlong, jCc);
2550 }
|
2551 mark.hamzy 1.56
2552
|
2553 mark.hamzy 1.62 // -------------------------------------
2554 // ---
2555 // - CIMDataType
2556 // ---
2557 // -------------------------------------
|
2558 mark.hamzy 1.56
|
2559 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMDataType__1new
2560 (JNIEnv *jEnv, jobject jThs, jint type)
2561 {
2562 return DEBUG_ConvertCToJava (_dataType*, jlong, new _dataType (type));
2563 }
|
2564 mark.hamzy 1.56
|
2565 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMDataType__1newAr
2566 (JNIEnv *jEnv, jobject jThs, jint type, jint size)
2567 {
2568 return DEBUG_ConvertCToJava (_dataType*, jlong, new _dataType (type,size));
2569 }
|
2570 mark.hamzy 1.56
|
2571 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMDataType__1newRef
2572 (JNIEnv *jEnv, jobject jThs, jint type, jstring jRef)
2573 {
2574 const char *ref = jEnv->GetStringUTFChars (jRef,NULL);
2575 jlong cInst = DEBUG_ConvertCToJava (_dataType*, jlong, new _dataType (type,String (ref)));
|
2576 mark.hamzy 1.56
|
2577 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jRef,ref);
|
2578 mark.hamzy 1.56
|
2579 mark.hamzy 1.62 return cInst;
2580 }
|
2581 mark.hamzy 1.56
|
2582 mark.hamzy 1.62 JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMDataType__1isReference
2583 (JNIEnv *jEnv, jobject jThs, jlong jDt)
2584 {
2585 _dataType *dt = DEBUG_ConvertJavaToC (jlong, _dataType*, jDt);
|
2586 mark.hamzy 1.56
|
2587 mark.hamzy 1.62 return dt->_reference == true;
2588 }
|
2589 mark.hamzy 1.56
|
2590 mark.hamzy 1.62 JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMDataType__1isArray
2591 (JNIEnv *jEnv, jobject jThs, jlong jDt)
2592 {
2593 _dataType *dt = DEBUG_ConvertJavaToC (jlong, _dataType*, jDt);
|
2594 mark.hamzy 1.56
|
2595 mark.hamzy 1.62 return dt->_array == true;
2596 }
|
2597 mark.hamzy 1.56
|
2598 mark.hamzy 1.62 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMDataType__1getType
2599 (JNIEnv *jEnv, jobject jThs, jlong jDt)
2600 {
2601 _dataType *dt = DEBUG_ConvertJavaToC (jlong, _dataType*, jDt);
|
2602 mark.hamzy 1.56
|
2603 mark.hamzy 1.62 return dt->_type;
|
2604 schuur 1.7 }
|
2605 schuur 1.1
|
2606 mark.hamzy 1.62 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMDataType__1getSize
2607 (JNIEnv *jEnv, jobject jThs, jlong jDt)
|
2608 mark.hamzy 1.40 {
|
2609 mark.hamzy 1.62 _dataType *dt = DEBUG_ConvertJavaToC (jlong, _dataType*, jDt);
|
2610 mark.hamzy 1.40
|
2611 mark.hamzy 1.62 return dt->_size;
2612 }
|
2613 mark.hamzy 1.40
|
2614 mark.hamzy 1.62 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMDataType__1getRefClassName
2615 (JNIEnv *jEnv, jobject jThs, jlong jDt)
2616 {
2617 _dataType *dt = DEBUG_ConvertJavaToC (jlong, _dataType*, jDt);
2618 jstring str = jEnv->NewStringUTF (dt->_refClass.getCString ());
|
2619 mark.hamzy 1.40
|
2620 mark.hamzy 1.62 return str;
|
2621 mark.hamzy 1.40 }
2622
|
2623 mark.hamzy 1.62 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMDataType__1toString
2624 (JNIEnv *jEnv, jobject jThs, jlong jDt)
|
2625 mark.hamzy 1.40 {
|
2626 mark.hamzy 1.62 _dataType *dt = DEBUG_ConvertJavaToC (jlong, _dataType*, jDt);
2627 jstring str = NULL;
2628
2629 if (dt->_type & 0x10)
2630 {
2631 bool fSuccess = false;
2632 String tmp = _dataType::convertJavaTypeToChars (dt->_type-0x10, &fSuccess);
2633
2634 if (!fSuccess)
2635 return str;
2636
2637 tmp = tmp + "[]";
|
2638 mark.hamzy 1.40
|
2639 mark.hamzy 1.62 str = jEnv->NewStringUTF (tmp.getCString ());
2640 }
2641 else if (dt->_type == 0x20 + 1) // REFERENCE
|
2642 mark.hamzy 1.40 {
|
2643 mark.hamzy 1.62 String tmp = dt->_refClass + " REF";
2644
2645 str = jEnv->NewStringUTF (tmp.getCString ());
|
2646 mark.hamzy 1.40 }
|
2647 mark.hamzy 1.62 else
2648 {
2649 bool fSuccess = false;
2650 char *tmp = _dataType::convertJavaTypeToChars (dt->_type, &fSuccess);
|
2651 mark.hamzy 1.40
|
2652 mark.hamzy 1.62 if (!fSuccess)
2653 return str;
|
2654 mark.hamzy 1.40
|
2655 mark.hamzy 1.62 str = jEnv->NewStringUTF (tmp);
|
2656 mark.hamzy 1.40 }
2657
|
2658 mark.hamzy 1.62 return str;
|
2659 mark.hamzy 1.40 }
2660
|
2661 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMDataType__1finalize
2662 (JNIEnv *jEnv, jobject jThs, jlong jDt)
|
2663 mark.hamzy 1.40 {
|
2664 mark.hamzy 1.62 _dataType *dt = DEBUG_ConvertJavaToC (jlong, _dataType*, jDt);
|
2665 mark.hamzy 1.40
|
2666 mark.hamzy 1.62 delete dt;
|
2667 mark.hamzy 1.40
|
2668 mark.hamzy 1.62 DEBUG_ConvertCleanup (jlong, jDt);
2669 }
|
2670 mark.hamzy 1.40
2671
|
2672 schuur 1.1 // -------------------------------------
2673 // ---
|
2674 mark.hamzy 1.62 // - CIMDateTime
|
2675 schuur 1.1 // ---
2676 // -------------------------------------
2677
|
2678 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMDateTime__1datetime
2679 (JNIEnv *jEnv, jobject jThs, jstring jN)
|
2680 mark.hamzy 1.20 {
|
2681 mark.hamzy 1.62 const char *str = jEnv->GetStringUTFChars (jN, NULL);
2682 CIMDateTime *dt = 0;
2683 String date;
2684
2685 if ( str
2686 && *str
2687 )
2688 {
2689 date = str;
2690 }
2691
2692 jEnv->ReleaseStringUTFChars (jN, str);
|
2693 mark.hamzy 1.20
|
2694 mark.hamzy 1.62 try
2695 {
2696 dt = new CIMDateTime (date);
2697 }
2698 Catch (jEnv);
|
2699 mark.hamzy 1.20
|
2700 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMDateTime*, jlong, dt);
|
2701 schuur 1.1 }
2702
|
2703 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMDateTime__1datetimeempty
|
2704 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs)
2705 {
|
2706 mark.hamzy 1.62 CIMDateTime *dt = new CIMDateTime (CIMDateTime::getCurrentDateTime ());
2707
2708 return DEBUG_ConvertCToJava (CIMDateTime*, jlong, dt);
|
2709 schuur 1.1 }
2710
|
2711 mark.hamzy 1.62 JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMDateTime__1after
2712 (JNIEnv *jEnv, jobject jThs, jlong jC, jlong jD)
|
2713 mark.hamzy 1.20 {
|
2714 mark.hamzy 1.62 CIMDateTime *ct = DEBUG_ConvertJavaToC (jlong, CIMDateTime*, jC);
2715 CIMDateTime *dt = DEBUG_ConvertJavaToC (jlong, CIMDateTime*, jD);
|
2716 mark.hamzy 1.67 jboolean rv = 0;
|
2717 mark.hamzy 1.20
|
2718 mark.hamzy 1.62 if ( ct
2719 && dt
2720 )
2721 {
|
2722 mark.hamzy 1.67 rv = (jboolean)(ct->getDifference (*ct, *dt) < 0);
|
2723 mark.hamzy 1.62 }
|
2724 mark.hamzy 1.27
|
2725 mark.hamzy 1.67 return rv;
|
2726 schuur 1.1 }
2727
|
2728 mark.hamzy 1.62 JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMDateTime__1before
2729 (JNIEnv *jEnv, jobject jThs, jlong jC, jlong jD)
|
2730 mark.hamzy 1.20 {
|
2731 mark.hamzy 1.62 CIMDateTime *ct = DEBUG_ConvertJavaToC (jlong, CIMDateTime*, jC);
2732 CIMDateTime *dt = DEBUG_ConvertJavaToC (jlong, CIMDateTime*, jD);
|
2733 mark.hamzy 1.67 jboolean rv = 0;
|
2734 schuur 1.1
|
2735 mark.hamzy 1.62 if ( ct
2736 && dt
2737 )
2738 {
|
2739 mark.hamzy 1.67 rv = (jboolean)(ct->getDifference (*ct, *dt) > 0);
|
2740 schuur 1.1 }
2741
|
2742 mark.hamzy 1.67 return rv;
|
2743 schuur 1.1 }
2744
|
2745 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMDateTime__1finalize
2746 (JNIEnv *jEnv, jobject jThs, jlong jDT)
|
2747 mark.hamzy 1.20 {
|
2748 mark.hamzy 1.62 CIMDateTime *cdt = DEBUG_ConvertJavaToC (jlong, CIMDateTime*, jDT);
|
2749 mark.hamzy 1.20
|
2750 mark.hamzy 1.62 delete cdt;
|
2751 mark.hamzy 1.54
|
2752 mark.hamzy 1.62 DEBUG_ConvertCleanup (jlong, jDT);
2753 }
|
2754 mark.hamzy 1.54
2755
|
2756 mark.hamzy 1.62 // -------------------------------------
2757 // ---
2758 // - CIMInstance
2759 // ---
2760 // -------------------------------------
2761
2762 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMInstance__1new
2763 (JNIEnv *jEnv, jobject jThs)
2764 {
2765 return DEBUG_ConvertCToJava (CIMInstance*, jlong, new CIMInstance ());
2766 }
2767
2768 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMInstance__1newCn
2769 (JNIEnv *jEnv, jobject jThs, jstring jN)
2770 {
2771 const char *str = jEnv->GetStringUTFChars (jN,NULL);
2772 CIMInstance *ci = new CIMInstance (CIMName (str));
2773
2774 jEnv->ReleaseStringUTFChars (jN,str);
2775
2776 return DEBUG_ConvertCToJava (CIMInstance*, jlong, ci);
|
2777 mark.hamzy 1.54 }
2778
|
2779 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMInstance__1filterProperties
2780 (JNIEnv *jEnv, jobject jThs, jlong jInst, jobjectArray jPl, jboolean iq, jboolean ic, jboolean lo)
|
2781 mark.hamzy 1.54 {
|
2782 mark.hamzy 1.62 CIMInstance *ci = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jInst);
2783 CIMInstance *cf = 0;
2784 CIMName clsn = ci->getClassName ();
|
2785 mark.hamzy 1.54
|
2786 mark.hamzy 1.62 if (lo)
|
2787 mark.hamzy 1.54 {
|
2788 mark.hamzy 1.62 cf = new CIMInstance (ci->clone ());
2789
2790 CIMName clsn = ci->getClassName ();
2791
2792 for (int i = cf->getPropertyCount () - 1; i >= 0; i--)
2793 {
2794 if (cf->getProperty (i).getClassOrigin () == clsn)
2795 cf->removeProperty (i);
2796 }
2797
2798 return DEBUG_ConvertCToJava (CIMInstance*, jlong, cf);
|
2799 mark.hamzy 1.54 }
|
2800 mark.hamzy 1.62 else if (jPl)
|
2801 mark.hamzy 1.54 {
|
2802 mark.hamzy 1.62 CIMPropertyList pl = getList (jEnv, jPl);
2803 Array<CIMName> n = pl.getPropertyNameArray ();
|
2804 mark.hamzy 1.54
|
2805 mark.hamzy 1.62 cf = new CIMInstance (clsn);
|
2806 mark.hamzy 1.54
|
2807 mark.hamzy 1.62 for (int i = 0, s = n.size (); i < s; i++)
|
2808 mark.hamzy 1.54 {
|
2809 mark.hamzy 1.62 Uint32 pos = ci->findProperty (n[i]);
|
2810 mark.hamzy 1.54
|
2811 mark.hamzy 1.62 if (pos != PEG_NOT_FOUND)
|
2812 mark.hamzy 1.54 {
|
2813 mark.hamzy 1.62 if (iq)
|
2814 mark.hamzy 1.54 {
|
2815 mark.hamzy 1.62 CIMProperty cp = ci->getProperty (pos).clone ();
2816
2817 if (!ic)
2818 cp.setClassOrigin (CIMName ());
2819
2820 cf->addProperty (cp);
|
2821 mark.hamzy 1.54 }
2822 else
2823 {
|
2824 mark.hamzy 1.62 CIMProperty cp = ci->getProperty (pos);
2825 CIMName co;
2826
2827 if (ic)
2828 co = cp.getClassOrigin ();
2829
2830 CIMProperty np (cp.getName (),
2831 cp.getValue (),
2832 cp.getArraySize (),
2833 cp.getReferenceClassName (),
2834 co,
2835 cp.getPropagated ());
2836
2837 cf->addProperty (np);
|
2838 mark.hamzy 1.54 }
2839 }
2840 }
|
2841 mark.hamzy 1.62
2842 cf->setPath (ci->getPath ());
|
2843 mark.hamzy 1.54 }
|
2844 mark.hamzy 1.62 else if (iq)
2845 {
2846 cf = new CIMInstance (ci->clone ());
2847
2848 if (ic)
2849 return DEBUG_ConvertCToJava (CIMInstance*, jlong, cf);
|
2850 mark.hamzy 1.20
|
2851 mark.hamzy 1.62 for (int i = cf->getPropertyCount () - 1; i >= 0; i--)
2852 {
2853 CIMProperty cp = cf->getProperty (i);
|
2854 schuur 1.1
|
2855 mark.hamzy 1.62 cp.setClassOrigin (CIMName ());
2856 cf->removeProperty (i);
2857 cf->addProperty (cp);
2858 }
2859 }
2860 else
2861 {
2862 cf = new CIMInstance (clsn);
|
2863 mark.hamzy 1.20
|
2864 mark.hamzy 1.62 for (int i = ci->getPropertyCount () - 1; i >= 0; i--)
2865 {
2866 CIMProperty cp = ci->getProperty (i);
2867 CIMName co;
|
2868 mark.hamzy 1.20
|
2869 mark.hamzy 1.62 if (ic)
2870 co = cp.getClassOrigin ();
|
2871 schuur 1.1
|
2872 mark.hamzy 1.62 CIMProperty np (cp.getName (),
2873 cp.getValue (),
2874 cp.getArraySize (),
2875 cp.getReferenceClassName (),
2876 co,
2877 cp.getPropagated ());
|
2878 mark.hamzy 1.20
|
2879 mark.hamzy 1.62 cf->addProperty (np);
2880 }
2881 cf->setPath (ci->getPath ());
2882 }
|
2883 mark.hamzy 1.20
|
2884 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMInstance*, jlong, cf);
|
2885 schuur 1.1 }
2886
|
2887 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMInstance__1setName
2888 (JNIEnv *jEnv, jobject jThs, jlong jInst, jstring jN)
|
2889 mark.hamzy 1.20 {
|
2890 mark.hamzy 1.62 CIMInstance *ci = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jInst);
2891 const char *str = jEnv->GetStringUTFChars (jN, NULL);
|
2892 mark.hamzy 1.20
|
2893 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jN,str);
|
2894 mark.hamzy 1.27
|
2895 mark.hamzy 1.62 /* NOT SUPPORTED AND NOT NEEDED*/
|
2896 schuur 1.1 }
2897
|
2898 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMInstance__1setProperty
2899 (JNIEnv *jEnv, jobject jThs, jlong jInst, jstring jN, jlong jV)
|
2900 mark.hamzy 1.20 {
|
2901 mark.hamzy 1.62 CIMInstance *ci = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jInst);
2902 CIMValue *cv = DEBUG_ConvertJavaToC (jlong, CIMValue*, jV);
2903 const char *str = jEnv->GetStringUTFChars (jN, NULL);
2904 Uint32 pos;
2905
2906 if ( ci
2907 && cv
2908 )
2909 {
2910 try {
2911 pos = ci->findProperty (CIMName (str));
|
2912 mark.hamzy 1.20
|
2913 mark.hamzy 1.62 if (pos != PEG_NOT_FOUND)
2914 {
2915 CIMProperty cp = ci->getProperty (pos);
|
2916 mark.hamzy 1.20
|
2917 mark.hamzy 1.62 if (cp.getType () == cv->getType ())
2918 {
2919 cp.setValue (*cv);
2920 }
2921 else
2922 {
2923 throw CIMException (CIM_ERR_TYPE_MISMATCH, String ("Property type mismatch"));
2924 }
|
2925 schuur 1.1
|
2926 mark.hamzy 1.62 ci->removeProperty (pos);
2927 ci->addProperty (cp);
2928 }
2929 else
2930 {
2931 CIMProperty *cp = new CIMProperty (CIMName (str), *cv);
|
2932 mark.hamzy 1.20
|
2933 mark.hamzy 1.62 ci->addProperty (*cp);
2934 }
2935 }
2936 Catch (jEnv);
2937 }
|
2938 mark.hamzy 1.27
|
2939 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jN, str);
|
2940 schuur 1.1 }
2941
|
2942 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMInstance__1setProperties
2943 (JNIEnv *jEnv, jobject jThs, jlong jInst, jobject jV)
|
2944 mark.hamzy 1.20 {
|
2945 mark.hamzy 1.62 CIMInstance *ci = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jInst);
|
2946 mark.hamzy 1.20
|
2947 mark.hamzy 1.62 if (!ci)
2948 {
2949 return;
2950 }
|
2951 mark.hamzy 1.20
|
2952 mark.hamzy 1.62 try
2953 {
2954 for (int i = 0, m = jEnv->CallIntMethod (jV,
2955 JMPIjvm::jv.VectorSize);
2956 i < m;
2957 i++)
2958 {
2959 JMPIjvm::checkException (jEnv);
|
2960 schuur 1.1
|
2961 mark.hamzy 1.62 jobject jProp = jEnv->CallObjectMethod (jV,
2962 JMPIjvm::jv.VectorElementAt,
2963 i);
|
2964 mark.hamzy 1.20
|
2965 mark.hamzy 1.62 JMPIjvm::checkException (jEnv);
|
2966 mark.hamzy 1.27
|
2967 mark.hamzy 1.62 jlong jCpRef = jEnv->CallLongMethod (jProp, JMPIjvm::jv.CIMPropertyCInst);
2968 CIMProperty *cpNew = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jCpRef);
|
2969 schuur 1.1
|
2970 mark.hamzy 1.62 if (cpNew)
2971 {
2972 Uint32 pos = ci->findProperty (cpNew->getName ());
|
2973 mark.hamzy 1.20
|
2974 mark.hamzy 1.62 if (pos != PEG_NOT_FOUND)
2975 {
2976 CIMProperty cpOld = ci->getProperty (pos);
|
2977 mark.hamzy 1.27
|
2978 mark.hamzy 1.62 if (cpOld.getType () == cpNew->getType ())
2979 {
2980 ci->removeProperty (pos);
2981 ci->addProperty (*cpNew);
2982 }
2983 else
2984 {
2985 throw CIMException (CIM_ERR_TYPE_MISMATCH, String ("Property type mismatch"));
2986 }
2987 }
2988 }
2989 }
2990 }
2991 Catch (jEnv);
|
2992 schuur 1.1 }
2993
|
2994 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMInstance__1getProperty
2995 (JNIEnv *jEnv, jobject jThs, jlong jInst, jstring jN)
|
2996 mark.hamzy 1.20 {
|
2997 mark.hamzy 1.62 CIMInstance *ci = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jInst);
2998 const char *str = jEnv->GetStringUTFChars (jN, NULL);
2999 jlong rv = 0;
|
3000 mark.hamzy 1.30
|
3001 mark.hamzy 1.62 try {
3002 Uint32 pos = ci->findProperty (CIMName (str));
|
3003 schuur 1.1
|
3004 mark.hamzy 1.62 if (pos != PEG_NOT_FOUND)
3005 {
3006 CIMProperty *cp = new CIMProperty (ci->getProperty (pos));
|
3007 mark.hamzy 1.56
|
3008 mark.hamzy 1.62 rv = DEBUG_ConvertCToJava (CIMProperty*, jlong, cp);
|
3009 schuur 1.1 }
|
3010 mark.hamzy 1.62 }
3011 Catch (jEnv);
|
3012 r.kieninger 1.11
|
3013 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jN, str);
|
3014 mark.hamzy 1.56
|
3015 mark.hamzy 1.62 return rv;
|
3016 schuur 1.1 }
3017
|
3018 mark.hamzy 1.62 JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_CIMInstance__1getKeyValuePairs
3019 (JNIEnv *jEnv, jobject jThs, jlong jInst, jobject jVec)
|
3020 mark.hamzy 1.20 {
|
3021 mark.hamzy 1.62 JMPIjvm::cacheIDs (jEnv);
3022
3023 CIMInstance *ci = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jInst);
|
3024 mark.hamzy 1.20
|
3025 mark.hamzy 1.62 if ( ci
3026 && CIMNamespaceName::legal (ci->getPath ().getNameSpace ().getString ())
3027 )
|
3028 mark.hamzy 1.27 {
|
3029 mark.hamzy 1.62 CIMOMHandle ch;
3030 OperationContext oc;
3031 CIMClass cc;
3032
3033 cc = ch.getClass (oc,
3034 ci->getPath ().getNameSpace (),
3035 ci->getClassName (),
3036 false, // localOnly
3037 true, // includeQualifiers
3038 true, // includeClassOrigin
3039 CIMPropertyList ()); // propertyList
|
3040 mark.hamzy 1.27
|
3041 mark.hamzy 1.62 if (!cc.hasKeys ())
|
3042 mark.hamzy 1.27 {
|
3043 mark.hamzy 1.62 return jVec;
|
3044 schuur 1.1 }
|
3045 mark.hamzy 1.20
|
3046 mark.hamzy 1.62 Array<CIMName> keyNames;
3047
3048 cc.getKeyNames (keyNames);
3049
3050 for (Uint32 i = 0; i < keyNames.size (); i++)
3051 {
3052 DDD(PEGASUS_STD (cout) << "finding key " << keyNames[i].getString () << PEGASUS_STD (endl));
|
3053 mark.hamzy 1.20
|
3054 mark.hamzy 1.62 for (Uint32 j = 0; j < ci->getPropertyCount (); j++)
3055 {
3056 CIMProperty cp = ci->getProperty (j);
|
3057 schuur 1.1
|
3058 mark.hamzy 1.62 if (cp.getName () == keyNames[i])
3059 {
3060 DDD(PEGASUS_STD (cout) << "adding key (" << j << ") " << keyNames[i].getString () << PEGASUS_STD (endl));
|
3061 mark.hamzy 1.20
|
3062 mark.hamzy 1.62 CIMProperty *cpRef = new CIMProperty (cp);
3063 jlong jCpRef = DEBUG_ConvertCToJava (CIMProperty*, jlong, cpRef);
3064 jobject jProp = jEnv->NewObject (JMPIjvm::jv.CIMPropertyClassRef,
3065 JMPIjvm::jv.CIMPropertyNewJ,
3066 jCpRef);
|
3067 mark.hamzy 1.27
|
3068 mark.hamzy 1.62 jEnv->CallVoidMethod (jVec,
3069 JMPIjvm::jv.VectorAddElement,
3070 jProp);
3071 }
3072 }
3073 }
3074 }
|
3075 mark.hamzy 1.20
|
3076 mark.hamzy 1.62 return jVec;
|
3077 schuur 1.1 }
3078
|
3079 mark.hamzy 1.62 JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_CIMInstance__1getProperties
3080 (JNIEnv *jEnv, jobject jThs, jlong jInst, jobject jVec)
|
3081 mark.hamzy 1.20 {
|
3082 mark.hamzy 1.44 JMPIjvm::cacheIDs (jEnv);
|
3083 mark.hamzy 1.30
|
3084 mark.hamzy 1.62 CIMInstance *ci = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jInst);
|
3085 mark.hamzy 1.20
|
3086 mark.hamzy 1.62 for (int i = 0, s = ci->getPropertyCount (); i < s; i++)
|
3087 mark.hamzy 1.44 {
|
3088 mark.hamzy 1.62 CIMProperty *cp = new CIMProperty (ci->getProperty (i));
3089 jlong jCp = DEBUG_ConvertCToJava (CIMProperty*, jlong, cp);
3090
3091 jobject prop = jEnv->NewObject (JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewJ,jCp);
|
3092 mark.hamzy 1.20
|
3093 mark.hamzy 1.62 jEnv->CallVoidMethod (jVec,JMPIjvm::jv.VectorAddElement,prop);
|
3094 schuur 1.1 }
|
3095 mark.hamzy 1.56
|
3096 mark.hamzy 1.62 return jVec;
|
3097 schuur 1.1 }
3098
|
3099 mark.hamzy 1.62 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMInstance__1getClassName
3100 (JNIEnv *jEnv, jobject jThs, jlong jInst)
|
3101 mark.hamzy 1.20 {
|
3102 mark.hamzy 1.62 CIMInstance *ci = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jInst);
3103 const String &cn = ci->getClassName ().getString ();
3104
3105 jstring str = jEnv->NewStringUTF (cn.getCString ());
|
3106 mark.hamzy 1.20
|
3107 mark.hamzy 1.62 return str;
|
3108 schuur 1.1 }
3109
|
3110 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMInstance__1getQualifier
3111 (JNIEnv *jEnv, jobject jThs, jlong jInst, jstring jN)
|
3112 mark.hamzy 1.20 {
|
3113 mark.hamzy 1.62 CIMInstance *ci = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jInst);
3114 const char *str = jEnv->GetStringUTFChars (jN, NULL);
3115 jlong rv = 0;
3116 Uint32 pos;
|
3117 mark.hamzy 1.20
|
3118 mark.hamzy 1.62 if (ci)
3119 {
3120 try
3121 {
3122 CIMOMHandle ch;
3123 OperationContext oc;
3124 CIMClass cc;
|
3125 mark.hamzy 1.20
|
3126 mark.hamzy 1.62 cc = ch.getClass (oc,
3127 ci->getPath ().getNameSpace (),
3128 ci->getClassName (),
3129 false, // localOnly
3130 true, // includeQualifiers
3131 true, // includeClassOrigin
3132 CIMPropertyList ()); // propertyList
|
3133 schuur 1.1
|
3134 mark.hamzy 1.62 pos = cc.findQualifier (String (str));
|
3135 schuur 1.1
|
3136 mark.hamzy 1.62 if (pos != PEG_NOT_FOUND)
3137 {
3138 CIMQualifier *cq = 0;
|
3139 schuur 1.1
|
3140 mark.hamzy 1.62 cq = new CIMQualifier (cc.getQualifier (pos));
|
3141 schuur 1.1
|
3142 mark.hamzy 1.62 rv = DEBUG_ConvertCToJava (CIMQualifier*, jlong, cq);
3143 }
3144 }
3145 Catch (jEnv);
3146 }
|
3147 mark.hamzy 1.20
|
3148 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jN, str);
|
3149 mark.hamzy 1.20
|
3150 mark.hamzy 1.62 return rv;
|
3151 schuur 1.1 }
3152
|
3153 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMInstance__1clone
3154 (JNIEnv *jEnv, jobject jThs, jlong jInst)
|
3155 mark.hamzy 1.20 {
|
3156 mark.hamzy 1.62 CIMInstance *ci = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jInst);
3157 CIMInstance *cl = new CIMInstance (ci->clone ());
|
3158 mark.hamzy 1.20
|
3159 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMInstance*, jlong, cl);
|
3160 schuur 1.1 }
3161
|
3162 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMInstance__1finalize
3163 (JNIEnv *jEnv, jobject jThs, jlong jInst)
|
3164 mark.hamzy 1.20 {
|
3165 mark.hamzy 1.62 CIMInstance *ci = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jInst);
|
3166 mark.hamzy 1.20
|
3167 mark.hamzy 1.62 delete ci;
|
3168 schuur 1.1
|
3169 mark.hamzy 1.62 DEBUG_ConvertCleanup (jlong, jInst);
|
3170 schuur 1.1 }
3171
|
3172 mark.hamzy 1.62 /*
3173 * Class: org_pegasus_jmpi_CIMInstance
3174 * Method: _getObjectPath
3175 * Signature: (I)I
3176 */
3177 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMInstance__1getObjectPath
3178 (JNIEnv *jEnv, jobject jThs, jlong jciCi)
|
3179 mark.hamzy 1.20 {
|
3180 mark.hamzy 1.62 CIMInstance *ci = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jciCi);
3181 CIMObjectPath *copRet = NULL;
3182
3183 try
3184 {
3185 if (ci)
3186 {
3187 const CIMObjectPath& cop = ci->getPath ();
3188
3189 copRet = new CIMObjectPath (cop);
3190 }
3191 }
3192 Catch (jEnv);
|
3193 mark.hamzy 1.20
|
3194 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMObjectPath*, jlong, copRet);
|
3195 schuur 1.1 }
3196
|
3197 mark.hamzy 1.62 /*
3198 * Class: org_pegasus_jmpi_CIMInstance
3199 * Method: _setObjectPath
3200 * Signature: (II)V
3201 */
3202 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMInstance__1setObjectPath
3203 (JNIEnv *jEnv, jobject jThs, jlong jciCi, jlong jciCop)
|
3204 mark.hamzy 1.20 {
|
3205 mark.hamzy 1.62 CIMInstance *ci = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jciCi);
3206 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jciCop);
|
3207 mark.hamzy 1.20
|
3208 mark.hamzy 1.62 try
3209 {
3210 if ( ci
3211 && cop
3212 )
3213 {
3214 ci->setPath (*cop);
3215 }
3216 }
3217 Catch (jEnv);
|
3218 schuur 1.1 }
3219
|
3220 mark.hamzy 1.62 /*
3221 * Class: org_pegasus_jmpi_CIMInstance
3222 * Method: _getPropertyCount
3223 * Signature: (I)I
3224 */
3225 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMInstance__1getPropertyCount
3226 (JNIEnv *jEnv, jobject jThs, jlong jciCi)
|
3227 mark.hamzy 1.20 {
|
3228 mark.hamzy 1.62 CIMInstance *ci = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jciCi);
3229 Uint32 ui32Ret = 0;
|
3230 mark.hamzy 1.20
|
3231 mark.hamzy 1.62 try
|
3232 mark.hamzy 1.35 {
|
3233 mark.hamzy 1.62 if (ci)
3234 {
3235 ui32Ret = ci->getPropertyCount ();
3236 }
3237 }
3238 Catch (jEnv);
|
3239 mark.hamzy 1.35
|
3240 mark.hamzy 1.62 return ui32Ret;
3241 }
|
3242 mark.hamzy 1.35
|
3243 mark.hamzy 1.62 /*
3244 * Class: org_pegasus_jmpi_CIMInstance
3245 * Method: _getProperty
3246 * Signature: (II)I
3247 */
3248 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMInstance__1getPropertyI
3249 (JNIEnv *jEnv, jobject jThs, jlong jciCi, jint ji)
3250 {
3251 CIMInstance *ci = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jciCi);
3252 CIMProperty *cpRet = NULL;
|
3253 mark.hamzy 1.35
|
3254 mark.hamzy 1.62 try
|
3255 mark.hamzy 1.35 {
|
3256 mark.hamzy 1.62 if (ci)
3257 {
3258 CIMProperty cp;
3259
3260 cp = ci->getProperty (ji);
|
3261 mark.hamzy 1.35
|
3262 mark.hamzy 1.62 cpRet = new CIMProperty (cp);
3263 }
|
3264 schuur 1.6 }
|
3265 mark.hamzy 1.62 Catch (jEnv);
3266
3267 return DEBUG_ConvertCToJava (CIMProperty*, jlong, cpRet);
3268 }
3269
3270
3271 // -------------------------------------
3272 // ---
3273 // - CIMMethod
3274 // ---
3275 // -------------------------------------
3276
3277 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMMethod__1getType
3278 (JNIEnv *jEnv, jobject jThs, jlong jM)
3279 {
3280 CIMMethod *cm = DEBUG_ConvertJavaToC (jlong, CIMMethod*, jM);
3281 bool fSuccess = false;
3282 jint jType = 0;
3283
3284 if (cm)
|
3285 mark.hamzy 1.35 {
|
3286 mark.hamzy 1.62 CIMType ct = cm->getType ();
|
3287 mark.hamzy 1.35
|
3288 mark.hamzy 1.62 jType = _dataType::convertCTypeToJavaType (ct, &fSuccess);
|
3289 schuur 1.1 }
|
3290 mark.hamzy 1.20
|
3291 mark.hamzy 1.62 return jType;
|
3292 schuur 1.1 }
3293
|
3294 mark.hamzy 1.67 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMMethod__1getName
3295 (JNIEnv *jEnv, jobject jThs, jlong jM)
3296 {
3297 CIMMethod *cm = DEBUG_ConvertJavaToC (jlong, CIMMethod*, jM);
3298 jstring str = 0;
3299
3300 if (cm)
3301 {
3302 CIMName cn = cm->getName ();
3303
3304 str = jEnv->NewStringUTF (cn.getString ().getCString ());
3305 }
3306
3307 return str;
3308 }
3309
3310 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMMethod__1findParameter
3311 (JNIEnv *jEnv, jobject jThs, jlong jM, jstring jName)
3312 {
3313 CIMMethod *cm = DEBUG_ConvertJavaToC (jlong, CIMMethod*, jM);
3314 jint rv = -1;
3315 mark.hamzy 1.67
3316 if (cm && jName)
3317 {
3318 const char *cstrName = jEnv->GetStringUTFChars (jName, NULL);
3319
3320 try
3321 {
3322 CIMName name (cstrName);
3323
3324 rv = cm->findParameter (name);
3325 }
3326 Catch (jEnv);
3327
3328 jEnv->ReleaseStringUTFChars (jName, cstrName);
3329 }
3330
3331 return rv;
3332 }
3333
3334 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMMethod__1getParameter
3335 (JNIEnv *jEnv, jobject jThs, jlong jM, jint jParameter)
3336 mark.hamzy 1.67 {
3337 CIMMethod *cm = DEBUG_ConvertJavaToC (jlong, CIMMethod*, jM);
3338 jlong rv = 0;
3339
3340 if (cm && jParameter >= 0)
3341 {
3342 try
3343 {
3344 CIMParameter cp = cm->getParameter (jParameter);
3345
3346 rv = DEBUG_ConvertCToJava (CIMParameter *, jlong, new CIMParameter (cp));
3347 }
3348 Catch (jEnv);
3349 }
3350
3351 return rv;
3352 }
3353
3354 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMMethod__1getParameterCount
3355 (JNIEnv *jEnv, jobject jThs, jlong jM)
3356 {
3357 mark.hamzy 1.67 CIMMethod *cm = DEBUG_ConvertJavaToC (jlong, CIMMethod*, jM);
3358 jint rv = 0;
3359
3360 if (cm)
3361 {
3362 try
3363 {
3364 rv = cm->getParameterCount ();
3365 }
3366 Catch (jEnv);
3367 }
3368
3369 return rv;
3370 }
3371
|
3372 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMMethod__1finalize
3373 (JNIEnv *jEnv, jobject jThs, jlong jM)
|
3374 mark.hamzy 1.24 {
|
3375 mark.hamzy 1.62 CIMMethod *cm = DEBUG_ConvertJavaToC (jlong, CIMMethod*, jM);
|
3376 mark.hamzy 1.24
|
3377 mark.hamzy 1.62 delete cm;
|
3378 mark.hamzy 1.24
|
3379 mark.hamzy 1.62 DEBUG_ConvertCleanup (jlong, jM);
|
3380 mark.hamzy 1.24 }
3381
|
3382 schuur 1.1
3383 // -------------------------------------
3384 // ---
|
3385 mark.hamzy 1.62 // - CIMNameSpace
|
3386 schuur 1.6 // ---
3387 // -------------------------------------
3388
|
3389 mark.hamzy 1.62 _nameSpace::_nameSpace ()
|
3390 mark.hamzy 1.20 {
|
3391 mark.hamzy 1.62 port_ = 0;
3392 hostName_ = System::getHostName ();
3393 nameSpace_ = "root/cimv2";
|
3394 mark.hamzy 1.66 fHttps = false;
|
3395 mark.hamzy 1.62 }
|
3396 mark.hamzy 1.20
|
3397 mark.hamzy 1.62 _nameSpace::_nameSpace (String hn)
3398 {
3399 port_ = 0;
3400 hostName_ = hn;
3401 nameSpace_ = "root/cimv2";
|
3402 mark.hamzy 1.66 fHttps = false;
|
3403 schuur 1.6 }
3404
|
3405 mark.hamzy 1.62 _nameSpace::_nameSpace (String hn, String ns)
|
3406 mark.hamzy 1.20 {
|
3407 mark.hamzy 1.62 port_ = 0;
3408 hostName_ = hn;
3409 nameSpace_ = ns;
|
3410 mark.hamzy 1.66 fHttps = false;
|
3411 schuur 1.6 }
3412
|
3413 mark.hamzy 1.62 int _nameSpace::port ()
|
3414 mark.hamzy 1.20 {
|
3415 mark.hamzy 1.62 if (port_)
3416 return port_;
|
3417 mark.hamzy 1.20
|
3418 mark.hamzy 1.62 port_ = 5988;
|
3419 mark.hamzy 1.20
|
3420 mark.hamzy 1.62 if (hostName_.subString (0,7) == "http://")
3421 {
|
3422 mark.hamzy 1.66 protocol_ = hostName_.subString (0,7);
|
3423 mark.hamzy 1.62 hostName_ = hostName_.subString (7);
3424 }
|
3425 mark.hamzy 1.66 else if (hostName_.subString (0,8) == "https://")
3426 {
3427 protocol_ = hostName_.subString (0,8);
3428 hostName_ = hostName_.subString (8);
3429 fHttps = true;
3430 }
|
3431 schuur 1.6
|
3432 mark.hamzy 1.62 Sint32 p = hostName_.reverseFind (':');
|
3433 mark.hamzy 1.20
|
3434 mark.hamzy 1.62 if (p >= 0)
|
3435 mark.hamzy 1.49 {
|
3436 mark.hamzy 1.62 if ((hostName_[p+1] >= '0') && (hostName_[p+1] <= '9'))
3437 port_ = atoi (hostName_.subString (p+1).getCString ());
3438
3439 hostName_.remove (p);
|
3440 mark.hamzy 1.49 }
3441
|
3442 mark.hamzy 1.62 return port_;
3443 }
|
3444 mark.hamzy 1.20
|
3445 mark.hamzy 1.62 String _nameSpace::hostName ()
3446 {
3447 port ();
3448 return hostName_;
|
3449 schuur 1.6 }
3450
|
3451 mark.hamzy 1.62 String _nameSpace::nameSpace ()
|
3452 mark.hamzy 1.20 {
|
3453 mark.hamzy 1.62 return nameSpace_;
3454 }
|
3455 mark.hamzy 1.20
|
3456 mark.hamzy 1.66 Boolean _nameSpace::isHttps ()
3457 {
3458 port ();
3459 return fHttps;
3460 }
3461
|
3462 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMNameSpace__1new
3463 (JNIEnv *jEnv, jobject jThs)
3464 {
3465 return DEBUG_ConvertCToJava (_nameSpace*, jlong, new _nameSpace ());
|
3466 schuur 1.6 }
3467
|
3468 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMNameSpace__1newHn
3469 (JNIEnv *jEnv, jobject jThs, jstring jHn)
|
3470 mark.hamzy 1.20 {
|
3471 mark.hamzy 1.62 const char *hn = jEnv->GetStringUTFChars (jHn, NULL);
3472 jlong cInst = DEBUG_ConvertCToJava (_nameSpace*, jlong, new _nameSpace (hn));
3473
3474 jEnv->ReleaseStringUTFChars (jHn, hn);
|
3475 mark.hamzy 1.20
|
3476 mark.hamzy 1.62 return cInst;
|
3477 schuur 1.6 }
3478
|
3479 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMNameSpace__1newHnNs
3480 (JNIEnv *jEnv, jobject jThs, jstring jHn, jstring jNs)
|
3481 mark.hamzy 1.20 {
|
3482 mark.hamzy 1.62 const char *hn = jEnv->GetStringUTFChars (jHn, NULL);
3483 const char *ns = jEnv->GetStringUTFChars (jNs, NULL);
3484 jlong cInst = DEBUG_ConvertCToJava (_nameSpace*, jlong, new _nameSpace (String (hn),String (ns)));
|
3485 mark.hamzy 1.20
|
3486 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jHn, hn);
3487 jEnv->ReleaseStringUTFChars (jNs, ns);
|
3488 mark.hamzy 1.27
|
3489 mark.hamzy 1.62 return cInst;
|
3490 schuur 1.6 }
3491
|
3492 mark.hamzy 1.62 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMNameSpace__1getNameSpace
3493 (JNIEnv *jEnv, jobject jThs, jlong jNs)
|
3494 mark.hamzy 1.20 {
|
3495 mark.hamzy 1.62 _nameSpace *cNs = DEBUG_ConvertJavaToC (jlong, _nameSpace*, jNs);
3496 const String &ns = cNs->nameSpace_;
3497 jstring str = jEnv->NewStringUTF (ns.getCString ());
|
3498 mark.hamzy 1.35
|
3499 mark.hamzy 1.62 return str;
3500 }
3501
3502 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMNameSpace__1getHost
3503 (JNIEnv *jEnv, jobject jThs, jlong jNs)
3504 {
3505 _nameSpace *cNs = DEBUG_ConvertJavaToC (jlong, _nameSpace*, jNs);
3506 const String &hn = cNs->hostName_;
3507 jstring str = jEnv->NewStringUTF (hn.getCString ());
3508
3509 return str;
3510 }
3511
3512 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMNameSpace__1setNameSpace
3513 (JNIEnv *jEnv, jobject jThs, jlong jNs, jstring jN)
3514 {
3515 _nameSpace *cNs = DEBUG_ConvertJavaToC (jlong, _nameSpace*, jNs);
3516 const char *str = jEnv->GetStringUTFChars (jN, NULL);
3517
3518 cNs->nameSpace_ = str;
3519
3520 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jN, str);
3521 }
3522
3523 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMNameSpace__1setHost
3524 (JNIEnv *jEnv, jobject jThs, jlong jNs, jstring jHn)
3525 {
3526 _nameSpace *cNs = DEBUG_ConvertJavaToC (jlong, _nameSpace*, jNs);
3527 const char *str = jEnv->GetStringUTFChars (jHn, NULL);
3528
3529 cNs->port_ = 0;
3530 cNs->hostName_ = str;
3531
3532 jEnv->ReleaseStringUTFChars (jHn, str);
3533 }
3534
3535 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMNameSpace__1finalize
3536 (JNIEnv *jEnv, jobject jThs, jlong jNs)
3537 {
3538 _nameSpace *cNs = DEBUG_ConvertJavaToC (jlong, _nameSpace*, jNs);
|
3539 mark.hamzy 1.35
|
3540 mark.hamzy 1.62 delete cNs;
|
3541 mark.hamzy 1.20
|
3542 mark.hamzy 1.62 DEBUG_ConvertCleanup (jlong, jNs);
|
3543 schuur 1.6 }
3544
|
3545 mark.hamzy 1.51
|
3546 schuur 1.6 // -------------------------------------
3547 // ---
|
3548 mark.hamzy 1.62 // - CIMObject
|
3549 schuur 1.1 // ---
3550 // -------------------------------------
3551
|
3552 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMObject__1newClass
3553 (JNIEnv *jEnv, jobject jThs, jlong jCc)
|
3554 mark.hamzy 1.20 {
|
3555 mark.hamzy 1.62 CIMClass *cCc = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCc);
|
3556 mark.hamzy 1.20
|
3557 mark.hamzy 1.62 try {
3558 CIMObject *cCo = new CIMObject (*cCc);
|
3559 schuur 1.1
|
3560 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMObject*, jlong, cCo);
3561 }
3562 Catch (jEnv);
|
3563 mark.hamzy 1.20
|
3564 mark.hamzy 1.62 return 0;
|
3565 schuur 1.5 }
3566
|
3567 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMObject__1newInstance
3568 (JNIEnv *jEnv, jobject jThs, jlong jCi)
|
3569 mark.hamzy 1.20 {
|
3570 mark.hamzy 1.62 CIMInstance *cCi = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jCi);
|
3571 mark.hamzy 1.27
|
3572 schuur 1.1 try {
|
3573 mark.hamzy 1.62 CIMObject *cCo = new CIMObject (*cCi);
|
3574 mark.hamzy 1.27
|
3575 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMObject*, jlong, cCo);
|
3576 schuur 1.1 }
|
3577 mark.hamzy 1.44 Catch (jEnv);
|
3578 mark.hamzy 1.20
|
3579 mark.hamzy 1.62 return 0;
3580 }
3581
3582 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMObject__1finalize
3583 (JNIEnv *jEnv, jobject jThs, jlong jInst)
3584 {
3585 CIMObject *co = DEBUG_ConvertJavaToC (jlong, CIMObject*, jInst);
3586
3587 delete co;
|
3588 mark.hamzy 1.27
|
3589 mark.hamzy 1.62 DEBUG_ConvertCleanup (jlong, jInst);
|
3590 schuur 1.1 }
3591
|
3592 mark.hamzy 1.62
3593 // -------------------------------------
3594 // ---
3595 // - CIMObjectPath
3596 // ---
3597 // -------------------------------------
3598
3599 CIMObjectPath* construct ()
|
3600 mark.hamzy 1.20 {
|
3601 mark.hamzy 1.62 CIMObjectPath *cop = new CIMObjectPath ();
3602 _nameSpace n;
3603
3604 cop->setNameSpace (n.nameSpace ());
3605 cop->setHost (n.hostName ());
3606
3607 return cop;
3608 }
|
3609 mark.hamzy 1.20
|
3610 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1new
3611 (JNIEnv *jEnv, jobject jThs)
3612 {
3613 return DEBUG_ConvertCToJava (CIMObjectPath*, jlong, construct ());
|
3614 schuur 1.1 }
3615
|
3616 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1newCn
3617 (JNIEnv *jEnv, jobject jThs, jstring jCn)
|
3618 mark.hamzy 1.20 {
|
3619 mark.hamzy 1.62 CIMObjectPath *cop = construct ();
3620 const char *str = jEnv->GetStringUTFChars (jCn, NULL);
3621
3622 if (str)
3623 cop->setClassName (str);
3624
3625 jEnv->ReleaseStringUTFChars (jCn, str);
|
3626 mark.hamzy 1.20
|
3627 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMObjectPath*, jlong, cop);
|
3628 schuur 1.1 }
3629
|
3630 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1newCnNs
3631 (JNIEnv *jEnv, jobject jThs, jstring jCn, jstring jNs)
|
3632 mark.hamzy 1.20 {
|
3633 mark.hamzy 1.62 CIMObjectPath *cop = construct ();
3634 const char *str1 = NULL;
3635 const char *str2 = NULL;
3636
3637 try {
3638 if (jCn)
3639 str1 = jEnv->GetStringUTFChars (jCn, NULL);
3640 if (jNs)
3641 str2 = jEnv->GetStringUTFChars (jNs, NULL);
3642 if (str1)
3643 cop->setClassName (str1);
3644 if (str2)
3645 cop->setNameSpace (str2);
3646 }
3647 Catch (jEnv);
3648
3649 if (str1)
3650 jEnv->ReleaseStringUTFChars (jCn, str1);
3651 if (str2)
3652 jEnv->ReleaseStringUTFChars (jNs, str2);
|
3653 mark.hamzy 1.20
|
3654 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMObjectPath*, jlong, cop);
3655 }
|
3656 mark.hamzy 1.20
|
3657 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1newCi
3658 (JNIEnv *jEnv, jobject jThs, jlong jInst)
3659 {
3660 CIMInstance *ci = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jInst);
3661 CIMObjectPath *cop = 0;
3662 _nameSpace n;
|
3663 mark.hamzy 1.20
|
3664 mark.hamzy 1.62 try
|
3665 mark.hamzy 1.56 {
|
3666 mark.hamzy 1.62 if (ci)
3667 {
3668 cop = new CIMObjectPath (ci->getPath ());
3669
3670 if (cop)
3671 {
3672 if (cop->getNameSpace ().isNull ())
3673 cop->setNameSpace (n.nameSpace ());
3674
3675 if (cop->getHost ().size () == 0)
3676 cop->setHost (n.hostName ());
3677 }
3678 }
3679 }
3680 Catch (jEnv);
3681
3682 return DEBUG_ConvertCToJava (CIMObjectPath*, jlong, cop);
3683 }
3684
3685 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1newCiNs
3686 (JNIEnv *jEnv, jobject jThs, jlong jInst, jstring jNamespace)
3687 mark.hamzy 1.62 {
3688 CIMInstance *ci = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jInst);
3689 CIMObjectPath *cop = 0;
3690 const char *pszNamespace = jEnv->GetStringUTFChars (jNamespace, NULL);
3691 CIMNamespaceName cnnNamespace;
3692 bool fNamespaceValid = false;
3693 _nameSpace n;
3694
3695 try
|
3696 mark.hamzy 1.56 {
|
3697 mark.hamzy 1.62 cnnNamespace = pszNamespace;
3698 fNamespaceValid = true;
|
3699 mark.hamzy 1.56 }
|
3700 mark.hamzy 1.62 catch (Exception e)
|
3701 mark.hamzy 1.56 {
3702 }
|
3703 mark.hamzy 1.62
3704 jEnv->ReleaseStringUTFChars (jNamespace, pszNamespace);
3705
3706 try
|
3707 mark.hamzy 1.56 {
|
3708 mark.hamzy 1.62 if (ci)
3709 {
3710 cop = new CIMObjectPath (ci->getPath ());
3711
3712 if (cop)
3713 {
3714 if (fNamespaceValid)
3715 {
3716 cop->setNameSpace (cnnNamespace);
3717 }
3718 else
3719 {
3720 if (cop->getNameSpace ().isNull ())
3721 cop->setNameSpace (n.nameSpace ());
3722 }
3723
3724 if (cop->getHost ().size () == 0)
3725 cop->setHost (n.hostName ());
3726 }
3727 }
|
3728 mark.hamzy 1.56 }
|
3729 mark.hamzy 1.62 Catch (jEnv);
|
3730 mark.hamzy 1.56
|
3731 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMObjectPath*, jlong, cop);
|
3732 schuur 1.1 }
3733
|
3734 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1finalize
3735 (JNIEnv *jEnv, jobject jThs, jlong jCop)
|
3736 mark.hamzy 1.20 {
|
3737 mark.hamzy 1.62 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
3738
3739 delete cop;
|
3740 mark.hamzy 1.20
|
3741 mark.hamzy 1.62 DEBUG_ConvertCleanup (jlong, jCop);
|
3742 schuur 1.5 }
3743
|
3744 mark.hamzy 1.62 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1getNameSpace
3745 (JNIEnv *jEnv, jobject jThs, jlong jCop)
|
3746 mark.hamzy 1.20 {
|
3747 mark.hamzy 1.62 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
3748 const String &ns = cop->getNameSpace ().getString ();
3749
3750 jstring str = jEnv->NewStringUTF (ns.getCString ());
|
3751 mark.hamzy 1.20
|
3752 schuur 1.1 return str;
3753 }
3754
|
3755 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1setNameSpace
3756 (JNIEnv *jEnv, jobject jThs, jlong jCop, jstring jName)
3757 {
3758 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
3759 const char *str = jEnv->GetStringUTFChars (jName,NULL);
3760
3761 cop->setNameSpace (CIMNamespaceName (str));
3762
3763 jEnv->ReleaseStringUTFChars (jName,str);
3764 }
3765
3766 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1getHost
3767 (JNIEnv *jEnv, jobject jThs, jlong jCop)
|
3768 mark.hamzy 1.20 {
|
3769 mark.hamzy 1.62 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
3770 const String &hn = cop->getHost ();
|
3771 mark.hamzy 1.20
|
3772 mark.hamzy 1.62 jstring str = jEnv->NewStringUTF (hn.getCString ());
|
3773 mark.hamzy 1.27
|
3774 mark.hamzy 1.62 return str;
|
3775 schuur 1.5 }
3776
|
3777 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1setHost
3778 (JNIEnv *jEnv, jobject jThs, jlong jCop, jstring jName)
|
3779 mark.hamzy 1.20 {
|
3780 mark.hamzy 1.62 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
3781 const char *str = jEnv->GetStringUTFChars (jName,NULL);
3782
3783 cop->setHost (String (str));
|
3784 mark.hamzy 1.20
|
3785 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jName,str);
|
3786 schuur 1.1 }
3787
|
3788 mark.hamzy 1.62 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1getObjectName
3789 (JNIEnv *jEnv, jobject jThs, jlong jCop)
|
3790 mark.hamzy 1.20 {
|
3791 mark.hamzy 1.62 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
3792 const String &cn = cop->getClassName ().getString ();
|
3793 mark.hamzy 1.20
|
3794 mark.hamzy 1.62 jstring str = jEnv->NewStringUTF (cn.getCString ());
|
3795 mark.hamzy 1.20
|
3796 schuur 1.1 return str;
3797 }
3798
|
3799 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1setObjectName
3800 (JNIEnv *jEnv, jobject jThs, jlong jCop, jstring jName)
|
3801 mark.hamzy 1.20 {
|
3802 mark.hamzy 1.62 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
3803 const char *str = jEnv->GetStringUTFChars (jName,NULL);
|
3804 mark.hamzy 1.35
|
3805 mark.hamzy 1.62 cop->setClassName (String (str));
|
3806 mark.hamzy 1.35
|
3807 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jName,str);
|
3808 schuur 1.1 }
3809
|
3810 mark.hamzy 1.62 JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1getKeys
3811 (JNIEnv *jEnv, jobject jThs, jlong jCop, jobject jVec)
|
3812 mark.hamzy 1.20 {
|
3813 mark.hamzy 1.62 JMPIjvm::cacheIDs (jEnv);
|
3814 mark.hamzy 1.20
|
3815 mark.hamzy 1.62 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
3816 const Array<CIMKeyBinding> &akb = cop->getKeyBindings ();
|
3817 mark.hamzy 1.20
|
3818 mark.hamzy 1.62 for (Uint32 i = 0, s = akb.size (); i < s; i++)
|
3819 mark.hamzy 1.35 {
|
3820 mark.hamzy 1.62 const String &n = akb[i].getName ().getString ();
3821 const String &v = akb[i].getValue ();
3822 CIMKeyBinding::Type t = akb[i].getType ();
3823 CIMValue *cv = 0;
3824
3825 switch (t)
3826 {
3827 case CIMKeyBinding::NUMERIC:
3828 cv = new CIMValue ((Sint32)atol (v.getCString ()));
3829 break;
3830 case CIMKeyBinding::STRING:
3831 cv = new CIMValue (v);
3832 break;
3833 case CIMKeyBinding::BOOLEAN:
3834 cv = new CIMValue ((Boolean) (v.getCString ()));
3835 break;
3836 case CIMKeyBinding::REFERENCE:
3837 cv = new CIMValue (CIMObjectPath (akb[i].getValue ()));
3838 break;
3839 default:
3840 throwCIMException (jEnv,"+++ unsupported type: ");
3841 mark.hamzy 1.62 }
|
3842 mark.hamzy 1.20
|
3843 mark.hamzy 1.62 CIMProperty *cp = 0;
|
3844 mark.hamzy 1.35
|
3845 mark.hamzy 1.62 if (t != CIMKeyBinding::REFERENCE)
3846 cp = new CIMProperty (n, *cv);
3847 else
3848 cp = new CIMProperty (n, *cv, 0, ((CIMObjectPath) akb[i].getValue ()).getClassName ());
|
3849 mark.hamzy 1.20
|
3850 mark.hamzy 1.62 jlong jCp = DEBUG_ConvertCToJava (CIMProperty*, jlong, cp);
3851 jobject prop = jEnv->NewObject (JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewJ,jCp);
|
3852 mark.hamzy 1.41
|
3853 mark.hamzy 1.62 jEnv->CallVoidMethod (jVec,JMPIjvm::jv.VectorAddElement,prop);
|
3854 mark.hamzy 1.35 }
|
3855 mark.hamzy 1.62
3856 return jVec;
|
3857 schuur 1.5 }
3858
|
3859 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1setKeys
3860 (JNIEnv *jEnv, jobject jThs, jlong jCop, jobject jVec)
|
3861 mark.hamzy 1.20 {
|
3862 mark.hamzy 1.62 JMPIjvm::cacheIDs (jEnv);
|
3863 mark.hamzy 1.20
|
3864 mark.hamzy 1.62 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
3865 Array<CIMKeyBinding> akb;
|
3866 schuur 1.1
|
3867 mark.hamzy 1.62 for (Uint32 i = 0, s = jEnv->CallIntMethod (jVec,JMPIjvm::jv.VectorSize); i < s; i++)
3868 {
3869 jobject o = jEnv->CallObjectMethod (jVec,JMPIjvm::jv.VectorElementAt, (i));
3870 jlong jCp = jEnv->CallLongMethod (o,JMPIjvm::jv.CIMPropertyCInst);
3871 CIMProperty *cp = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jCp);
|
3872 mark.hamzy 1.20
|
3873 mark.hamzy 1.62 akb.append (CIMKeyBinding (cp->getName (), cp->getValue ()));
3874 }
|
3875 mark.hamzy 1.20
|
3876 mark.hamzy 1.62 cop->setKeyBindings (akb);
|
3877 schuur 1.1 }
|
3878 schuur 1.5
|
3879 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1addKey
3880 (JNIEnv *jEnv, jobject jThs, jlong jCop, jstring jId, jlong jVal)
|
3881 mark.hamzy 1.39 {
|
3882 mark.hamzy 1.62 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
3883 const char *str = jEnv->GetStringUTFChars (jId, NULL);
3884 CIMValue *cv = DEBUG_ConvertJavaToC (jlong, CIMValue*, jVal);
3885 Array<CIMKeyBinding> keyBindings = cop->getKeyBindings ();
|
3886 mark.hamzy 1.39
|
3887 mark.hamzy 1.62 keyBindings.append (CIMKeyBinding (str,*cv));
3888 cop->setKeyBindings (Array<CIMKeyBinding> (keyBindings));
|
3889 mark.hamzy 1.39
|
3890 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jId, str);
|
3891 mark.hamzy 1.39 }
3892
|
3893 mark.hamzy 1.62 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1getKeyValue
3894 (JNIEnv *jEnv, jobject jThs, jlong jCop, jstring jStr)
|
3895 mark.hamzy 1.39 {
|
3896 mark.hamzy 1.62 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
3897 const Array<CIMKeyBinding> &akb = cop->getKeyBindings ();
3898 const char *strKeyName = jEnv->GetStringUTFChars (jStr,NULL);
3899 jstring retStr = NULL;
|
3900 mark.hamzy 1.39
|
3901 mark.hamzy 1.62 for (Uint32 i = 0,s = akb.size (); i<s; i++)
|
3902 mark.hamzy 1.39 {
|
3903 mark.hamzy 1.62 const String &n = akb[i].getName ().getString ();
3904
3905 if (n == String (strKeyName))
3906 {
3907 retStr = jEnv->NewStringUTF (akb[i].getValue ().getCString ());
3908 break;
3909 }
|
3910 mark.hamzy 1.39 }
3911
|
3912 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jStr,strKeyName);
|
3913 mark.hamzy 1.39
|
3914 mark.hamzy 1.62 return retStr;
|
3915 schuur 1.5 }
3916
|
3917 mark.hamzy 1.62 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1toString
3918 (JNIEnv *jEnv, jobject jThs, jlong jCop)
|
3919 mark.hamzy 1.20 {
|
3920 mark.hamzy 1.62 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
3921 const String &ns = cop->toString ();
|
3922 mark.hamzy 1.20
|
3923 mark.hamzy 1.62 jstring str = jEnv->NewStringUTF (ns.getCString ());
|
3924 mark.hamzy 1.20
|
3925 mark.hamzy 1.62 return str;
|
3926 schuur 1.5 }
3927
|
3928 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1clone
3929 (JNIEnv *jEnv, jobject jThs, jlong jCop)
|
3930 mark.hamzy 1.20 {
|
3931 mark.hamzy 1.62 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
3932 CIMObjectPath *copl = new CIMObjectPath (cop->getHost (), cop->getNameSpace (), cop->getClassName (), cop->getKeyBindings ());
|
3933 mark.hamzy 1.20
|
3934 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMObjectPath*, jlong, copl);
|
3935 schuur 1.5 }
3936
|
3937 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1set
3938 (JNIEnv *jEnv, jobject jThs, jstring jStr)
|
3939 mark.hamzy 1.20 {
|
3940 mark.hamzy 1.62 const char *strCop = jEnv->GetStringUTFChars (jStr,NULL);
3941 CIMObjectPath *cop = new CIMObjectPath ();
|
3942 mark.hamzy 1.20
|
3943 mark.hamzy 1.62 cop->set (String (strCop));
|
3944 mark.hamzy 1.24
|
3945 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jStr,strCop);
|
3946 mark.hamzy 1.24
|
3947 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMObjectPath*, jlong, cop);
|
3948 schuur 1.5 }
3949
3950
|
3951 schuur 1.1 // -------------------------------------
3952 // ---
|
3953 mark.hamzy 1.62 // - CIMOMHandle
|
3954 schuur 1.1 // ---
3955 // -------------------------------------
3956
|
3957 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1getClass
3958 (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop, jboolean lo,
3959 jboolean iq, jboolean ic, jobjectArray jPl)
|
3960 mark.hamzy 1.20 {
|
3961 mark.hamzy 1.62 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
3962 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
3963 CIMPropertyList pl;
3964 OperationContext ctx;
|
3965 mark.hamzy 1.20
|
3966 mark.hamzy 1.62 if (jPl)
3967 pl = getList (jEnv, jPl);
3968 else
3969 pl = CIMPropertyList ();
|
3970 mark.hamzy 1.20
|
3971 mark.hamzy 1.62 try {
3972 CIMClass cls = ch->getClass (ctx,
3973 cop->getNameSpace (),
3974 cop->getClassName (),
3975 (Boolean)lo,
3976 (Boolean)iq,
3977 (Boolean)ic,
3978 pl);
|
3979 schuur 1.5
|
3980 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMClass*, jlong, new CIMClass (cls));
3981 }
3982 Catch(jEnv);
|
3983 mark.hamzy 1.20
|
3984 mark.hamzy 1.62 return 0;
|
3985 schuur 1.1 }
3986
|
3987 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1deleteClass
3988 (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop)
|
3989 mark.hamzy 1.20 {
|
3990 mark.hamzy 1.62 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
3991 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
3992 OperationContext ctx;
3993
3994 try {
3995 ch->deleteClass (ctx,
3996 cop->getNameSpace (),
3997 cop->getClassName ());
3998 }
3999 Catch(jEnv);
|
4000 schuur 1.5 }
4001
|
4002 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1createClass
4003 (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop, jlong jCl)
|
4004 mark.hamzy 1.20 {
|
4005 mark.hamzy 1.62 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
4006 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
4007 CIMClass *cl = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCl);
4008 OperationContext ctx;
|
4009 mark.hamzy 1.20
|
4010 mark.hamzy 1.62 try {
4011 ch->createClass (ctx,
4012 cop->getNameSpace (),
4013 *cl);
4014 }
4015 Catch(jEnv);
|
4016 schuur 1.5 }
4017
|
4018 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1setClass
4019 (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop, jlong jCl)
|
4020 mark.hamzy 1.20 {
|
4021 mark.hamzy 1.62 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
4022 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
4023 CIMClass *cl = DEBUG_ConvertJavaToC (jlong, CIMClass*, jCl);
4024 OperationContext ctx;
|
4025 mark.hamzy 1.20
|
4026 mark.hamzy 1.62 try {
4027 ch->modifyClass (ctx,
4028 cop->getNameSpace (),
4029 *cl);
4030 }
4031 Catch(jEnv);
|
4032 schuur 1.5 }
4033
|
4034 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1enumerateClassNames
4035 (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop, jboolean deep)
|
4036 mark.hamzy 1.20 {
|
4037 mark.hamzy 1.62 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
4038 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
4039 CIMNamespaceName ns = cop->getNameSpace ();
4040 OperationContext ctx;
|
4041 mark.hamzy 1.51
|
4042 mark.hamzy 1.62 try {
4043 Array<CIMName> enm = ch->enumerateClassNames (ctx,
4044 cop->getNameSpace (),
4045 cop->getClassName (),
4046 (Boolean)deep);
4047 Array<CIMObjectPath> *enmop = new Array<CIMObjectPath> ();
|
4048 mark.hamzy 1.20
|
4049 mark.hamzy 1.62 for (int i = 0, m = enm.size (); i < m; i++)
4050 {
4051 enmop->append (CIMObjectPath (String::EMPTY,
4052 ns,
4053 enm[i]));
4054 }
|
4055 mark.hamzy 1.27
|
4056 mark.hamzy 1.62 return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jlong, enmop);
|
4057 mark.hamzy 1.51 }
|
4058 mark.hamzy 1.62 Catch(jEnv);
|
4059 mark.hamzy 1.20
|
4060 mark.hamzy 1.62 return 0;
|
4061 schuur 1.1 }
4062
|
4063 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1enumerateClasses
4064 (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop, jboolean deep,
4065 jboolean lo, jboolean iq, jboolean ic)
|
4066 mark.hamzy 1.20 {
|
4067 mark.hamzy 1.62 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
4068 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
4069 OperationContext ctx;
|
4070 mark.hamzy 1.20
|
4071 mark.hamzy 1.62 try {
4072 Array<CIMClass> en = ch->enumerateClasses (ctx,
4073 cop->getNameSpace (),
4074 cop->getClassName (),
4075 (Boolean)deep,
4076 (Boolean)lo,
4077 (Boolean)iq,
4078 (Boolean)ic);
|
4079 schuur 1.1
|
4080 mark.hamzy 1.62 return DEBUG_ConvertCToJava (Array<CIMClass>*, jlong, new Array<CIMClass> (en));
|
4081 mark.hamzy 1.51 }
|
4082 mark.hamzy 1.62 Catch (jEnv);
|
4083 mark.hamzy 1.51
|
4084 mark.hamzy 1.62 return 0;
|
4085 mark.hamzy 1.51 }
4086
|
4087 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1getInstance
4088 (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop, jboolean lo, jboolean iq, jboolean ic,
4089 jobjectArray jPl)
|
4090 mark.hamzy 1.51 {
|
4091 mark.hamzy 1.62 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
4092 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
4093 OperationContext ctx;
4094 CIMPropertyList pl;
4095
4096 if (jPl)
4097 pl = getList (jEnv,jPl);
4098 else
4099 pl = CIMPropertyList ();
4100
4101 try {
4102 CIMInstance *inst = new CIMInstance (ch->getInstance (ctx,
4103 cop->getNameSpace (),
4104 *cop,
4105 (Boolean)lo,
4106 (Boolean)iq,
4107 (Boolean)ic,
4108 pl));
|
4109 mark.hamzy 1.51
|
4110 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMInstance*, jlong, inst);
|
4111 mark.hamzy 1.51 }
|
4112 mark.hamzy 1.62 Catch (jEnv);
|
4113 mark.hamzy 1.20
|
4114 mark.hamzy 1.62 return 0;
|
4115 schuur 1.1 }
4116
|
4117 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1deleteInstance
4118 (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop)
|
4119 mark.hamzy 1.20 {
|
4120 mark.hamzy 1.62 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
4121 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
4122 OperationContext ctx;
|
4123 mark.hamzy 1.20
|
4124 mark.hamzy 1.62 try {
4125 ch->deleteInstance (ctx,cop->getNameSpace (),*cop);
4126 }
4127 Catch (jEnv);
|
4128 schuur 1.1 }
4129
|
4130 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1createInstance
4131 (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop, jlong jCi)
4132 {
4133 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
4134 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
4135 CIMInstance *ci = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jCi);
4136 OperationContext ctx;
|
4137 schuur 1.1
|
4138 mark.hamzy 1.62 try {
4139 ci->setPath (*cop);
|
4140 mark.hamzy 1.53
|
4141 mark.hamzy 1.62 CIMObjectPath obj = ch->createInstance (ctx,
4142 cop->getNameSpace (),
4143 *ci);
|
4144 mark.hamzy 1.53
|
4145 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMObjectPath*, jlong, new CIMObjectPath (obj));
|
4146 mark.hamzy 1.53 }
|
4147 mark.hamzy 1.62 Catch (jEnv);
|
4148 mark.hamzy 1.20
|
4149 mark.hamzy 1.62 return 0;
|
4150 schuur 1.1 }
4151
|
4152 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1modifyInstance
4153 (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop, jlong jCi,
4154 jboolean iq, jobjectArray jPl)
|
4155 mark.hamzy 1.20 {
|
4156 mark.hamzy 1.62 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
4157 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
4158 CIMInstance *ci = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jCi);
4159 CIMPropertyList pl = getList (jEnv, jPl);
4160 OperationContext ctx;
|
4161 mark.hamzy 1.20
|
4162 mark.hamzy 1.62 try {
4163 ci->setPath (*cop);
4164 ch->modifyInstance (ctx,
4165 cop->getNameSpace (),
4166 *ci,
4167 (Boolean)iq,
4168 pl);
4169 }
4170 Catch (jEnv);
|
4171 schuur 1.1 }
4172
|
4173 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1enumerateInstanceNames
4174 (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop, jboolean deep)
|
4175 mark.hamzy 1.20 {
|
4176 mark.hamzy 1.62 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
4177 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
4178 OperationContext ctx;
|
4179 mark.hamzy 1.20
|
4180 mark.hamzy 1.62 try {
4181 Array<CIMObjectPath> enm = ch->enumerateInstanceNames (ctx,
4182 cop->getNameSpace (),
4183 cop->getClassName ()); //, (Boolean)deep);
4184 return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jlong, new Array<CIMObjectPath> (enm));
4185 }
4186 Catch (jEnv);
|
4187 mark.hamzy 1.20
|
4188 mark.hamzy 1.62 return 0;
|
4189 schuur 1.1 }
4190
|
4191 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1enumerateInstances
4192 (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop, jboolean deep,
4193 jboolean lo, jboolean iq, jboolean ic, jobjectArray jPl)
|
4194 mark.hamzy 1.20 {
|
4195 mark.hamzy 1.62 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
4196 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
4197 CIMPropertyList pl;
4198 OperationContext ctx;
|
4199 mark.hamzy 1.20
|
4200 mark.hamzy 1.62 if (jPl)
4201 pl = getList (jEnv, jPl);
|
4202 mark.hamzy 1.20 else
|
4203 mark.hamzy 1.62 pl = CIMPropertyList ();
|
4204 mark.hamzy 1.20
|
4205 mark.hamzy 1.62 try {
4206 Array<CIMInstance> en = ch->enumerateInstances (ctx,
4207 cop->getNameSpace (),
4208 cop->getClassName (),
4209 (Boolean)deep,
4210 (Boolean)lo,
4211 (Boolean)iq,
4212 (Boolean)ic,
4213 pl);
|
4214 schuur 1.1
|
4215 mark.hamzy 1.62 return DEBUG_ConvertCToJava (Array<CIMInstance>*, jlong, new Array<CIMInstance> (en));
4216 }
4217 Catch (jEnv);
|
4218 mark.hamzy 1.20
|
4219 mark.hamzy 1.62 return 0;
|
4220 schuur 1.1 }
4221
|
4222 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1execQuery
4223 (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop, jstring jQuery, jstring jQl)
|
4224 mark.hamzy 1.20 {
|
4225 mark.hamzy 1.62 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
4226 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
4227 OperationContext ctx;
4228 const char *str = jEnv->GetStringUTFChars (jQuery,NULL);
4229 String query (str);
|
4230 mark.hamzy 1.20
|
4231 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jQuery,str);
|
4232 mark.hamzy 1.20
|
4233 mark.hamzy 1.62 str = jEnv->GetStringUTFChars (jQl, NULL);
|
4234 schuur 1.1
|
4235 mark.hamzy 1.62 String ql (str);
|
4236 mark.hamzy 1.20
|
4237 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jQl, str);
|
4238 schuur 1.1
|
4239 mark.hamzy 1.62 try {
4240 Array<CIMObject> enm = ch->execQuery (ctx,
4241 cop->getNameSpace (),
4242 ql,
4243 query);
4244 Array<CIMInstance> *enmInst = new Array<CIMInstance> ();
|
4245 mark.hamzy 1.20
|
4246 mark.hamzy 1.62 for (int i = 0,m = enm.size (); i<m; i++)
4247 {
4248 enmInst->append (CIMInstance (enm[i]));
4249 }
|
4250 schuur 1.1
|
4251 mark.hamzy 1.62 return DEBUG_ConvertCToJava (Array<CIMInstance>*, jlong, enmInst);
4252 }
4253 Catch (jEnv);
|
4254 mark.hamzy 1.20
|
4255 mark.hamzy 1.62 return 0;
|
4256 schuur 1.1 }
4257
|
4258 mark.hamzy 1.20
|
4259 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1getProperty
4260 (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop, jstring jN)
|
4261 mark.hamzy 1.20 {
|
4262 mark.hamzy 1.62 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
4263 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
4264 OperationContext ctx;
4265 const char *str = jEnv->GetStringUTFChars (jN, NULL);
4266 CIMName prop (str);
|
4267 mark.hamzy 1.20
|
4268 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jN, str);
|
4269 schuur 1.1
|
4270 mark.hamzy 1.62 try {
4271 CIMValue *cv = new CIMValue (ch->getProperty (ctx,
4272 cop->getNameSpace (),
4273 *cop,
4274 prop));
|
4275 mark.hamzy 1.35
|
4276 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
4277 }
4278 Catch (jEnv);
|
4279 mark.hamzy 1.35
|
4280 mark.hamzy 1.62 return 0;
|
4281 mark.hamzy 1.35 }
4282
|
4283 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1setProperty
4284 (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop, jstring jPn, jlong jV)
|
4285 mark.hamzy 1.20 {
|
4286 mark.hamzy 1.62 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
4287 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
4288 OperationContext ctx;
4289 CIMValue *val = DEBUG_ConvertJavaToC (jlong, CIMValue*, jV);
4290 const char *str = jEnv->GetStringUTFChars (jPn, NULL);
4291 CIMName pName (str);
|
4292 mark.hamzy 1.20
|
4293 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jPn, str);
|
4294 schuur 1.1
|
4295 mark.hamzy 1.62 try {
4296 ch->setProperty (ctx,
4297 cop->getNameSpace (),
4298 *cop,
4299 pName,
4300 *val);
4301 }
4302 Catch (jEnv);
|
4303 schuur 1.1 }
4304
|
4305 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1associatorNames
4306 (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop,
4307 jstring jAssocClass, jstring jResultClass, jstring jRole, jstring jResultRole)
|
4308 mark.hamzy 1.20 {
|
4309 mark.hamzy 1.62 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
4310 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
4311 OperationContext ctx;
4312 const char *str = jEnv->GetStringUTFChars (jAssocClass, NULL);
|
4313 mark.hamzy 1.20
|
4314 mark.hamzy 1.62 CIMName assocClass;
|
4315 mark.hamzy 1.56
|
4316 mark.hamzy 1.62 if ( str
4317 && *str
4318 )
|
4319 mark.hamzy 1.44 {
|
4320 mark.hamzy 1.62 if (CIMName::legal (str))
4321 {
4322 assocClass = str;
4323 }
4324 else
4325 {
4326 jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,
4327 JMPIjvm::jv.CIMExceptionNewISt,
4328 (jint)4, // CIM_ERR_INVALID_PARAMETER
4329 jEnv->NewStringUTF ("Invalid association class name"));
|
4330 mark.hamzy 1.56
|
4331 mark.hamzy 1.62 jEnv->Throw ((jthrowable)ev);
|
4332 mark.hamzy 1.56
|
4333 mark.hamzy 1.62 return 0;
4334 }
|
4335 schuur 1.1 }
|
4336 mark.hamzy 1.20
|
4337 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jAssocClass, str);
|
4338 mark.hamzy 1.35
|
4339 mark.hamzy 1.62 str = jEnv->GetStringUTFChars (jResultClass, NULL);
|
4340 schuur 1.1
|
4341 mark.hamzy 1.62 CIMName resultClass;
|
4342 mark.hamzy 1.20
|
4343 mark.hamzy 1.62 if ( str
4344 && *str
4345 )
|
4346 mark.hamzy 1.44 {
|
4347 mark.hamzy 1.62 if (CIMName::legal (str))
4348 {
4349 resultClass = str;
4350 }
4351 else
4352 {
4353 jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,
4354 JMPIjvm::jv.CIMExceptionNewISt,
4355 (jint)4, // CIM_ERR_INVALID_PARAMETER
4356 jEnv->NewStringUTF ("Invalid result class name"));
|
4357 mark.hamzy 1.56
|
4358 mark.hamzy 1.62 jEnv->Throw ((jthrowable)ev);
|
4359 mark.hamzy 1.56
|
4360 mark.hamzy 1.62 return 0;
4361 }
|
4362 schuur 1.1 }
|
4363 mark.hamzy 1.56
|
4364 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jResultClass, str);
4365
4366 str = jEnv->GetStringUTFChars (jRole, NULL);
|
4367 mark.hamzy 1.56
|
4368 mark.hamzy 1.62 String role (str);
|
4369 mark.hamzy 1.20
|
4370 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jRole, str);
|
4371 mark.hamzy 1.35
|
4372 mark.hamzy 1.62 str = jEnv->GetStringUTFChars (jResultRole, NULL);
|
4373 schuur 1.1
|
4374 mark.hamzy 1.62 String resultRole (str);
|
4375 mark.hamzy 1.20
|
4376 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jResultRole, str);
|
4377 mark.hamzy 1.56
|
4378 mark.hamzy 1.62 try {
4379 Array<CIMObjectPath> enm = ch->associatorNames (ctx,
4380 cop->getNameSpace (),
4381 *cop,
4382 assocClass,
4383 resultClass,
4384 role,
4385 resultRole);
|
4386 mark.hamzy 1.56
|
4387 mark.hamzy 1.62 return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jlong, new Array<CIMObjectPath> (enm));
|
4388 schuur 1.1 }
|
4389 mark.hamzy 1.62 Catch (jEnv);
|
4390 mark.hamzy 1.56
|
4391 mark.hamzy 1.62 return 0;
|
4392 schuur 1.1 }
4393
|
4394 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1associators
4395 (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop,
4396 jstring jAssocClass, jstring jResultClass, jstring jRole, jstring jResultRole,
4397 jboolean includeQualifiers, jboolean includeClassOrigin, jobjectArray jPl)
|
4398 mark.hamzy 1.20 {
|
4399 mark.hamzy 1.62 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
4400 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
4401 OperationContext ctx;
4402 CIMPropertyList pl = getList (jEnv, jPl);
4403 const char *str = jEnv->GetStringUTFChars (jAssocClass, NULL);
4404 CIMName assocClass;
|
4405 mark.hamzy 1.20
|
4406 mark.hamzy 1.62 if ( str
4407 && *str
4408 )
|
4409 mark.hamzy 1.44 {
|
4410 mark.hamzy 1.62 if (CIMName::legal (str))
4411 {
4412 assocClass = str;
4413 }
4414 else
4415 {
4416 jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,
4417 JMPIjvm::jv.CIMExceptionNewISt,
4418 (jint)4, // CIM_ERR_INVALID_PARAMETER
4419 jEnv->NewStringUTF ("Invalid association class name"));
|
4420 mark.hamzy 1.56
|
4421 mark.hamzy 1.62 jEnv->Throw ((jthrowable)ev);
|
4422 mark.hamzy 1.56
|
4423 mark.hamzy 1.62 return 0;
4424 }
|
4425 schuur 1.1 }
|
4426 mark.hamzy 1.56
|
4427 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jAssocClass, str);
|
4428 mark.hamzy 1.56
|
4429 mark.hamzy 1.62 str = jEnv->GetStringUTFChars (jResultClass, NULL);
|
4430 mark.hamzy 1.20
|
4431 mark.hamzy 1.62 CIMName resultClass;
|
4432 mark.hamzy 1.35
|
4433 mark.hamzy 1.62 if ( str
4434 && *str
4435 )
|
4436 mark.hamzy 1.44 {
|
4437 mark.hamzy 1.62 if (CIMName::legal (str))
4438 {
4439 resultClass = str;
4440 }
4441 else
4442 {
4443 jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,
4444 JMPIjvm::jv.CIMExceptionNewISt,
4445 (jint)4, // CIM_ERR_INVALID_PARAMETER
4446 jEnv->NewStringUTF ("Invalid result class name"));
|
4447 mark.hamzy 1.27
|
4448 mark.hamzy 1.62 jEnv->Throw ((jthrowable)ev);
|
4449 mark.hamzy 1.27
|
4450 mark.hamzy 1.62 return 0;
4451 }
|
4452 schuur 1.1 }
4453
|
4454 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jResultClass, str);
|
4455 mark.hamzy 1.20
|
4456 mark.hamzy 1.62 str = jEnv->GetStringUTFChars (jRole, NULL);
|
4457 schuur 1.1
|
4458 mark.hamzy 1.62 String role (str);
|
4459 mark.hamzy 1.20
|
4460 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jRole, str);
|
4461 mark.hamzy 1.56
|
4462 mark.hamzy 1.62 str = jEnv->GetStringUTFChars (jResultRole, NULL);
|
4463 mark.hamzy 1.20
|
4464 mark.hamzy 1.62 String resultRole (str);
|
4465 mark.hamzy 1.35
|
4466 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jResultRole, str);
|
4467 mark.hamzy 1.35
|
4468 mark.hamzy 1.62 try {
4469 Array<CIMObject> enm = ch->associators (ctx,
4470 cop->getNameSpace (),
4471 *cop,
4472 assocClass,
4473 resultClass,
4474 role,
4475 resultRole,
4476 (Boolean)includeQualifiers,
4477 (Boolean)includeClassOrigin,
4478 pl);
4479 Array<CIMInstance> *enmInst = new Array<CIMInstance> ();
|
4480 mark.hamzy 1.35
|
4481 mark.hamzy 1.62 for (int i = 0, m = enm.size (); i < m; i++)
4482 {
4483 enmInst->append (CIMInstance (enm[i]));
4484 }
|
4485 mark.hamzy 1.56
|
4486 mark.hamzy 1.62 return DEBUG_ConvertCToJava (Array<CIMInstance>*, jlong, enmInst);
4487 }
4488 Catch (jEnv);
|
4489 mark.hamzy 1.35
|
4490 mark.hamzy 1.62 return 0;
|
4491 mark.hamzy 1.35 }
4492
|
4493 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1referenceNames
4494 (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop,
4495 jstring jAssocClass, jstring jRole)
|
4496 mark.hamzy 1.35 {
|
4497 mark.hamzy 1.62 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
4498 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
4499 OperationContext ctx;
4500 const char *str = jEnv->GetStringUTFChars (jAssocClass, NULL);
4501 CIMName assocClass;
4502
4503 if ( str
4504 && *str
4505 )
4506 {
4507 if (CIMName::legal (str))
4508 {
4509 assocClass = str;
4510 }
4511 else
4512 {
4513 jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,
4514 JMPIjvm::jv.CIMExceptionNewISt,
4515 (jint)4, // CIM_ERR_INVALID_PARAMETER
4516 jEnv->NewStringUTF ("Invalid association class name"));
|
4517 mark.hamzy 1.35
|
4518 mark.hamzy 1.62 jEnv->Throw ((jthrowable)ev);
|
4519 mark.hamzy 1.56
|
4520 mark.hamzy 1.62 return 0;
4521 }
4522 }
|
4523 mark.hamzy 1.35
|
4524 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jAssocClass, str);
|
4525 mark.hamzy 1.35
|
4526 mark.hamzy 1.62 str = jEnv->GetStringUTFChars (jRole, NULL);
|
4527 schuur 1.1
|
4528 mark.hamzy 1.62 String role (str);
|
4529 mark.hamzy 1.20
|
4530 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jRole, str);
|
4531 mark.hamzy 1.56
|
4532 mark.hamzy 1.62 try {
4533 Array<CIMObjectPath> enm = ch->referenceNames (ctx,
4534 cop->getNameSpace (),
4535 *cop,
4536 assocClass,
4537 role);
|
4538 mark.hamzy 1.20
|
4539 mark.hamzy 1.62 return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jlong, new Array<CIMObjectPath> (enm));
4540 }
4541 Catch (jEnv);
|
4542 mark.hamzy 1.35
|
4543 mark.hamzy 1.62 return 0;
|
4544 mark.hamzy 1.35 }
4545
|
4546 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1references
4547 (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop,
4548 jstring jAssocClass, jstring jRole,
4549 jboolean includeQualifiers, jboolean includeClassOrigin, jobjectArray jPl)
|
4550 mark.hamzy 1.35 {
|
4551 mark.hamzy 1.62 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
4552 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
4553 OperationContext ctx;
4554 CIMPropertyList pl = getList (jEnv, jPl);
4555 const char *str = jEnv->GetStringUTFChars (jAssocClass, NULL);
4556 CIMName assocClass;
|
4557 mark.hamzy 1.35
|
4558 mark.hamzy 1.62 if ( str
4559 && *str
4560 )
|
4561 mark.hamzy 1.61 {
|
4562 mark.hamzy 1.62 if (CIMName::legal (str))
4563 {
4564 assocClass = str;
4565 }
4566 else
4567 {
4568 jobject ev = jEnv->NewObject (JMPIjvm::jv.CIMExceptionClassRef,
4569 JMPIjvm::jv.CIMExceptionNewISt,
4570 (jint)4, // CIM_ERR_INVALID_PARAMETER
4571 jEnv->NewStringUTF ("Invalid association class name"));
4572
4573 jEnv->Throw ((jthrowable)ev);
4574
4575 return 0;
4576 }
|
4577 mark.hamzy 1.61 }
|
4578 mark.hamzy 1.56
|
4579 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jAssocClass, str);
|
4580 mark.hamzy 1.35
|
4581 mark.hamzy 1.62 str = jEnv->GetStringUTFChars (jRole, NULL);
|
4582 mark.hamzy 1.35
|
4583 mark.hamzy 1.62 String role (str);
|
4584 mark.hamzy 1.35
|
4585 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jRole, str);
|
4586 mark.hamzy 1.35
|
4587 mark.hamzy 1.62 try {
4588 Array<CIMObject> enm = ch->references (ctx,
4589 cop->getNameSpace (),
4590 *cop,
4591 assocClass,
4592 role,
4593 (Boolean)includeQualifiers,
4594 (Boolean)includeClassOrigin,
4595 pl);
4596 Array<CIMInstance> *enmInst = new Array<CIMInstance> ();
|
4597 mark.hamzy 1.56
|
4598 mark.hamzy 1.62 for (int i = 0, m = enm.size (); i < m; i++)
4599 {
4600 enmInst->append (CIMInstance (enm[i]));
4601 }
|
4602 mark.hamzy 1.35
|
4603 mark.hamzy 1.62 return DEBUG_ConvertCToJava (Array<CIMInstance>*, jlong, enmInst);
4604 }
4605 Catch (jEnv);
|
4606 mark.hamzy 1.35
|
4607 mark.hamzy 1.62 return 0;
|
4608 mark.hamzy 1.35 }
4609
|
4610 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1invokeMethod
4611 (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop, jstring jMn, jobject jIn, jobject jOut)
|
4612 mark.hamzy 1.35 {
|
4613 mark.hamzy 1.62 JMPIjvm::cacheIDs (jEnv);
4614
4615 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
4616 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
4617 OperationContext ctx;
4618 const char *str = jEnv->GetStringUTFChars (jMn,NULL);
4619 CIMName method (str);
4620
4621 jEnv->ReleaseStringUTFChars (jMn,str);
4622
4623 Array<CIMParamValue> in;
4624 Array<CIMParamValue> out;
|
4625 mark.hamzy 1.35
|
4626 mark.hamzy 1.62 for (int i = 0, m = jEnv->CallIntMethod (jIn,JMPIjvm::jv.VectorSize); i < m; i++)
4627 {
4628 JMPIjvm::checkException (jEnv);
|
4629 mark.hamzy 1.56
|
4630 mark.hamzy 1.62 jobject jProp = jEnv->CallObjectMethod (jIn,JMPIjvm::jv.VectorElementAt,i);
|
4631 mark.hamzy 1.35
|
4632 mark.hamzy 1.62 JMPIjvm::checkException (jEnv);
|
4633 mark.hamzy 1.35
|
4634 mark.hamzy 1.62 jlong jp = jEnv->CallLongMethod (jProp,JMPIjvm::jv.CIMPropertyCInst);
4635 CIMProperty *p = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jp);
|
4636 schuur 1.1
|
4637 mark.hamzy 1.62 JMPIjvm::checkException (jEnv);
|
4638 mark.hamzy 1.35
|
4639 mark.hamzy 1.62 in.append (CIMParamValue (p->getName ().getString (),p->getValue ()));
4640 }
4641 try {
4642 CIMValue *val = new CIMValue (ch->invokeMethod (ctx,
4643 cop->getNameSpace (),
4644 *cop,
4645 method,
4646 in,
4647 out));
|
4648 mark.hamzy 1.20
|
4649 mark.hamzy 1.62 for (int i = 0,m = out.size (); i<m; i++)
4650 {
4651 const CIMParamValue &parm = out[i];
4652 const CIMValue v = parm.getValue ();
4653 CIMProperty *p = new CIMProperty (parm.getParameterName (),
4654 v,
4655 v.getArraySize ());
4656 jlong jp = DEBUG_ConvertCToJava (CIMProperty*, jlong, p);
4657 jobject prop = jEnv->NewObject (JMPIjvm::jv.CIMPropertyClassRef,
4658 JMPIjvm::jv.CIMPropertyNewJ,
4659 jp);
|
4660 schuur 1.1
|
4661 mark.hamzy 1.62 jEnv->CallVoidMethod (jOut, JMPIjvm::jv.VectorAddElement, prop);
4662 }
4663 return DEBUG_ConvertCToJava (CIMValue*, jlong, val);
4664 }
4665 Catch (jEnv);
|
4666 mark.hamzy 1.20
|
4667 mark.hamzy 1.62 return 0;
|
4668 schuur 1.1 }
4669
|
4670 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1invokeMethod24
4671 (JNIEnv *jEnv, jobject jThs, jlong jCh, jlong jCop, jstring jMn,
4672 jobjectArray jIn, jobjectArray jOut)
4673
|
4674 mark.hamzy 1.20 {
|
4675 mark.hamzy 1.44 JMPIjvm::cacheIDs (jEnv);
|
4676 mark.hamzy 1.30
|
4677 mark.hamzy 1.62 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
4678 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jCop);
4679 OperationContext ctx;
4680 const char *str = jEnv->GetStringUTFChars (jMn, NULL);
4681 CIMName method (str);
|
4682 mark.hamzy 1.20
|
4683 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jMn, str);
|
4684 mark.hamzy 1.20
|
4685 mark.hamzy 1.62 Array<CIMParamValue> in;
4686 Array<CIMParamValue> out;
|
4687 schuur 1.1
|
4688 mark.hamzy 1.62 if (jIn)
|
4689 mark.hamzy 1.35 {
|
4690 mark.hamzy 1.62 for (int i = 0, m = jEnv->GetArrayLength (jIn); i < m; i++)
|
4691 mark.hamzy 1.35 {
|
4692 mark.hamzy 1.62 JMPIjvm::checkException (jEnv);
|
4693 mark.hamzy 1.56
|
4694 mark.hamzy 1.62 jobject jArg = jEnv->GetObjectArrayElement (jIn,i);
|
4695 mark.hamzy 1.56
|
4696 mark.hamzy 1.62 JMPIjvm::checkException (jEnv);
|
4697 mark.hamzy 1.56
|
4698 mark.hamzy 1.62 jlong jp = jEnv->CallLongMethod (jArg,JMPIjvm::jv.CIMArgumentCInst);
4699 CIMParamValue *p = DEBUG_ConvertJavaToC (jlong, CIMParamValue*, jp);
|
4700 mark.hamzy 1.56
|
4701 mark.hamzy 1.62 JMPIjvm::checkException (jEnv);
|
4702 mark.hamzy 1.56
|
4703 mark.hamzy 1.62 in.append (*p);
|
4704 mark.hamzy 1.35 }
|
4705 mark.hamzy 1.62 }
4706 try {
4707 CIMValue *val = new CIMValue (ch->invokeMethod (ctx,
4708 cop->getNameSpace (),
4709 *cop,
4710 method,
4711 in,
4712 out));
4713
4714 if (jOut)
|
4715 mark.hamzy 1.56 {
|
4716 mark.hamzy 1.62 for (int i = 0, m = out.size (), o = jEnv->GetArrayLength (jOut); i < m && i< o; i++)
|
4717 mark.hamzy 1.35 {
|
4718 mark.hamzy 1.62 CIMParamValue *parm = new CIMParamValue (out[i]);
4719 jlong jParm = DEBUG_ConvertCToJava (CIMParamValue*, jlong, parm);
|
4720 mark.hamzy 1.35
|
4721 mark.hamzy 1.62 jEnv->SetObjectArrayElement (jOut,i,
4722 jEnv->NewObject (JMPIjvm::jv.CIMArgumentClassRef,JMPIjvm::jv.CIMArgumentNewJ,jParm));
|
4723 schuur 1.1 }
|
4724 mark.hamzy 1.35 }
|
4725 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMValue*, jlong, val);
|
4726 schuur 1.1 }
|
4727 mark.hamzy 1.62 Catch (jEnv);
4728
4729 return 0;
4730 }
4731
4732 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent
4733 (JNIEnv *jEnv, jobject jThs, jlong jCh, jstring jName, jstring jNs, jlong jInd)
4734 {
4735 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
4736 CIMInstance *ind = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jInd);
4737 const char *str = jEnv->GetStringUTFChars (jName, NULL);
4738 String name (str);
|
4739 mark.hamzy 1.35
|
4740 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jName, str);
|
4741 mark.hamzy 1.35
|
4742 mark.hamzy 1.62 str = jEnv->GetStringUTFChars (jNs, NULL);
|
4743 mark.hamzy 1.35
|
4744 mark.hamzy 1.62 String ns (str);
|
4745 mark.hamzy 1.35
|
4746 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jNs, str);
|
4747 mark.hamzy 1.35
|
4748 mark.hamzy 1.62 CIMObjectPath ref (ind->getPath ());
|
4749 mark.hamzy 1.35
|
4750 mark.hamzy 1.62 ref.setNameSpace (ns);
4751 DDD (PEGASUS_STD (cerr)<<"--- Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent () ref = "<<ref.toString ()<<PEGASUS_STD (endl));
4752 DDD (PEGASUS_STD (cerr)<<"--- Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent () ind = "<<ind->getPath ().toString ()<<PEGASUS_STD (endl));
4753 ind->setPath (ref);
4754 DDD (PEGASUS_STD (cerr)<<"--- Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent () ind = "<<ind->getPath ().toString ()<<PEGASUS_STD (endl));
|
4755 mark.hamzy 1.35
|
4756 mark.hamzy 1.62 JMPIProviderManager::indProvRecord *prec = NULL;
4757 String sPathString = ind->getPath ().toString ();
4758 OperationContext *context = NULL;
4759 bool fResult = false;
|
4760 mark.hamzy 1.35
|
4761 mark.hamzy 1.62 {
4762 AutoMutex lock (JMPIProviderManager::mutexProvTab);
|
4763 mark.hamzy 1.35
|
4764 mark.hamzy 1.62 fResult = JMPIProviderManager::provTab.lookup (name, prec);
|
4765 mark.hamzy 1.35
|
4766 mark.hamzy 1.62 DDD (PEGASUS_STD (cerr)<<"--- Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent () fResult = "<<fResult<<", name = "<<name<<PEGASUS_STD (endl));
4767 }
|
4768 mark.hamzy 1.35
|
4769 mark.hamzy 1.62 if (fResult)
4770 {
4771 if (prec->enabled)
4772 {
4773 try
4774 {
4775 prec->handler->deliver (*prec->ctx, *ind);
4776 }
4777 Catch (jEnv);
|
4778 mark.hamzy 1.35 }
|
4779 mark.hamzy 1.62 }
4780 else
4781 {
4782 DDD (PEGASUS_STD (cerr)<<"--- Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent () provider name \""<<name<<"\" not found"<<PEGASUS_STD (endl));
4783 }
4784 }
|
4785 mark.hamzy 1.35
|
4786 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1finalize
4787 (JNIEnv *jEnv, jobject jThs, jlong jCh)
4788 {
4789 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jlong, CIMOMHandle*, jCh);
|
4790 mark.hamzy 1.35
|
4791 mark.hamzy 1.62 delete ch;
|
4792 mark.hamzy 1.35
|
4793 mark.hamzy 1.62 DEBUG_ConvertCleanup (jlong, jCh);
4794 }
|
4795 mark.hamzy 1.35
4796
|
4797 mark.hamzy 1.62 // -------------------------------------
4798 // ---
|
4799 mark.hamzy 1.67 // - CIMParameter
4800 // ---
4801 // -------------------------------------
4802
4803 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMParameter__1getName
4804 (JNIEnv *jEnv, jobject jThs, jlong jCp)
4805 {
4806 CIMParameter *cp = DEBUG_ConvertJavaToC (jlong, CIMParameter*, jCp);
4807 jstring rv = 0;
4808
4809 if (cp)
4810 {
4811 try
4812 {
4813 CIMName name = cp->getName ();
4814
4815 rv = jEnv->NewStringUTF (name.getString ().getCString ());
4816 }
4817 Catch (jEnv);
4818 }
4819
4820 mark.hamzy 1.67 return rv;
4821 }
4822
4823 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMParameter__1setName
4824 (JNIEnv *jEnv, jobject jThs, jlong jCp, jstring jName)
4825 {
4826 CIMParameter *cp = DEBUG_ConvertJavaToC (jlong, CIMParameter*, jCp);
4827
4828 if (cp && jName)
4829 {
4830 try
4831 {
4832 const char *cstrName = jEnv->GetStringUTFChars (jName, NULL);
4833
4834 CIMName name (cstrName);
4835
4836 cp->setName (name);
4837
4838 jEnv->ReleaseStringUTFChars (jName, cstrName);
4839 }
4840 Catch (jEnv);
4841 mark.hamzy 1.67 }
4842 }
4843
4844 JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMParameter__1isArray
4845 (JNIEnv *jEnv, jobject jThs, jlong jCp)
4846 {
4847 CIMParameter *cp = DEBUG_ConvertJavaToC (jlong, CIMParameter*, jCp);
4848 jboolean rv = 0;
4849
4850 if (cp)
4851 {
4852 try
4853 {
4854 rv = cp->isArray ();
4855 }
4856 Catch (jEnv);
4857 }
4858
4859 return rv;
4860 }
4861
4862 mark.hamzy 1.67 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMParameter__1getArraySize
4863 (JNIEnv *jEnv, jobject jThs, jlong jCp)
4864 {
4865 CIMParameter *cp = DEBUG_ConvertJavaToC (jlong, CIMParameter*, jCp);
4866 jint rv = 0;
4867
4868 if (cp)
4869 {
4870 try
4871 {
4872 rv = cp->getArraySize ();
4873 }
4874 Catch (jEnv);
4875 }
4876
4877 return rv;
4878 }
4879
4880 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMParameter__1getReferenceClassName
4881 (JNIEnv *jEnv, jobject jThs, jlong jCp)
4882 {
4883 mark.hamzy 1.67 CIMParameter *cp = DEBUG_ConvertJavaToC (jlong, CIMParameter*, jCp);
4884 jstring rv = 0;
4885
4886 if (cp)
4887 {
4888 try
4889 {
4890 CIMName name = cp->getReferenceClassName ();
4891
4892 rv = jEnv->NewStringUTF (name.getString ().getCString ());
4893 }
4894 Catch (jEnv);
4895 }
4896
4897 return rv;
4898 }
4899
4900 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMParameter__1getType
4901 (JNIEnv *jEnv, jobject jThs, jlong jCp)
4902 {
4903 CIMParameter *cp = DEBUG_ConvertJavaToC (jlong, CIMParameter*, jCp);
4904 mark.hamzy 1.67 jlong rv = 0;
4905
4906 if (cp)
4907 {
4908 try
4909 {
4910 CIMType ct = cp->getType ();
4911 bool fSuccess = false;
4912 String ref = cp->getReferenceClassName ().getString ();
4913 int iJType = 0;
4914 _dataType *type = 0;
4915
4916 iJType = _dataType::convertCTypeToJavaType (ct, &fSuccess);
4917
4918 if (fSuccess)
4919 {
4920 type = new _dataType (iJType,
4921 cp->getArraySize (),
4922 false,
4923 false,
4924 cp->isArray (),
4925 mark.hamzy 1.67 ref,
4926 true);
4927
4928 rv = DEBUG_ConvertCToJava (_dataType*, jlong, type);
4929 }
4930 }
4931 Catch (jEnv);
4932 }
4933
4934 return rv;
4935 }
4936
4937 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMParameter__1finalize
4938 (JNIEnv *jEnv, jobject jThs, jlong jCp)
4939 {
4940 CIMParameter *cp = DEBUG_ConvertJavaToC (jlong, CIMParameter*, jCp);
4941
4942 delete cp;
4943
4944 DEBUG_ConvertCleanup (jlong, jCp);
4945 }
4946 mark.hamzy 1.67
4947
4948 // -------------------------------------
4949 // ---
|
4950 mark.hamzy 1.62 // - CIMProperty
4951 // ---
4952 // -------------------------------------
|
4953 mark.hamzy 1.35
|
4954 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMProperty__1getValue
4955 (JNIEnv *jEnv, jobject jThs, jlong jP)
4956 {
4957 CIMProperty *cp = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jP);
4958 CIMValue *cv = new CIMValue (cp->getValue ());
|
4959 mark.hamzy 1.35
|
4960 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
4961 }
|
4962 mark.hamzy 1.35
|
4963 mark.hamzy 1.62 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMProperty__1getName
4964 (JNIEnv *jEnv, jobject jThs, jlong jP)
4965 {
4966 CIMProperty *cp = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jP);
4967 const String &n = cp->getName ().getString ();
4968 jstring str = jEnv->NewStringUTF (n.getCString ());
4969
4970 return str;
4971 }
4972
4973 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMProperty__1setName
4974 (JNIEnv *jEnv, jobject jThs, jlong jP, jstring jN)
4975 {
4976 CIMProperty *cp = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jP);
4977 const char *str = jEnv->GetStringUTFChars (jN,NULL);
|
4978 mark.hamzy 1.35
|
4979 mark.hamzy 1.62 cp->setName (CIMName (str));
|
4980 mark.hamzy 1.35
|
4981 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jN,str);
4982 }
|
4983 mark.hamzy 1.35
|
4984 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMProperty__1property
4985 (JNIEnv *jEnv, jobject jThs, jstring jN, jlong jV)
4986 {
4987 CIMValue *cv = DEBUG_ConvertJavaToC (jlong, CIMValue*, jV);
4988 const char *str = jEnv->GetStringUTFChars (jN, NULL);
4989 CIMProperty *cp = 0;
4990 jlong jCp = 0;
|
4991 mark.hamzy 1.35
|
4992 mark.hamzy 1.62 try {
4993 if (cv->getType ()!= CIMTYPE_REFERENCE)
4994 {
4995 cp = new CIMProperty (String (str),*cv);
|
4996 mark.hamzy 1.35 }
|
4997 mark.hamzy 1.62 else
|
4998 mark.hamzy 1.35 {
|
4999 mark.hamzy 1.62 if (!cv->isArray ())
5000 {
5001 CIMObjectPath cop;
|
5002 mark.hamzy 1.35
|
5003 mark.hamzy 1.62 cv->get (cop);
5004 cp = new CIMProperty (String (str),*cv,0, cop.getClassName ());
5005 }
5006 else
5007 {
5008 throwCIMException (jEnv,"+++ unsupported type in CIMProperty.property");
5009 }
5010 }
|
5011 mark.hamzy 1.35
|
5012 mark.hamzy 1.62 jCp = DEBUG_ConvertCToJava (CIMProperty*, jlong, cp);
5013 }
5014 Catch (jEnv);
|
5015 mark.hamzy 1.35
|
5016 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jN, str);
|
5017 mark.hamzy 1.56
|
5018 mark.hamzy 1.62 return jCp;
5019 }
|
5020 mark.hamzy 1.56
|
5021 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMProperty__1new
5022 (JNIEnv *jEnv, jobject jThs, jstring jN, jlong jV)
5023 {
5024 CIMProperty *p = new CIMProperty (CIMName (),CIMValue ());
|
5025 mark.hamzy 1.56
|
5026 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMProperty*, jlong, p);
5027 }
|
5028 mark.hamzy 1.35
|
5029 mark.hamzy 1.62 JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMProperty__1isReference
5030 (JNIEnv *jEnv, jobject jThs, jlong jP)
5031 {
5032 CIMProperty *cp = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jP);
|
5033 mark.hamzy 1.35
|
5034 mark.hamzy 1.62 return (jboolean) (cp->getType () == CIMTYPE_REFERENCE);
5035 }
|
5036 mark.hamzy 1.35
|
5037 mark.hamzy 1.62 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMProperty__1getRefClassName
5038 (JNIEnv *jEnv, jobject jThs, jlong jP)
5039 {
5040 CIMProperty *cp = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jP);
5041 const String &n = cp->getReferenceClassName ().getString ();
|
5042 mark.hamzy 1.35
|
5043 mark.hamzy 1.62 jstring str = jEnv->NewStringUTF (n.getCString ());
|
5044 mark.hamzy 1.35
|
5045 mark.hamzy 1.62 return str;
5046 }
|
5047 mark.hamzy 1.35
|
5048 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMProperty__1getType
5049 (JNIEnv *jEnv, jobject jThs, jlong jP)
5050 {
|
5051 mark.hamzy 1.67 CIMProperty *cp = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jP);
5052 String ref = cp->getReferenceClassName ().getString ();
5053 bool fSuccess = false;
5054 int iJType = 0;
5055 _dataType *type = 0;
|
5056 mark.hamzy 1.35
|
5057 mark.hamzy 1.62 iJType = _dataType::convertCTypeToJavaType (cp->getType (), &fSuccess);
|
5058 mark.hamzy 1.35
|
5059 mark.hamzy 1.62 if (fSuccess)
5060 {
5061 type = new _dataType (iJType,
5062 cp->getArraySize (),
5063 ref.size () ? true : false,
5064 false,
5065 cp->isArray (),
5066 ref,
5067 true);
5068 }
|
5069 mark.hamzy 1.35
|
5070 mark.hamzy 1.62 return DEBUG_ConvertCToJava (_dataType*, jlong, type);
5071 }
|
5072 mark.hamzy 1.35
|
5073 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMProperty__1setType
5074 (JNIEnv *jEnv, jobject jThs, jlong jP, jlong jDt)
5075 {
5076 CIMProperty *cp = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jP);
5077 _dataType *dt = DEBUG_ConvertJavaToC (jlong, _dataType*, jDt);
5078 CIMValue val;
5079 bool fSuccess = false;
5080 CIMType cType = CIMTYPE_BOOLEAN;
|
5081 mark.hamzy 1.35
|
5082 mark.hamzy 1.62 cType = _dataType::convertJavaTypeToCType (dt->_type, &fSuccess);
|
5083 mark.hamzy 1.35
|
5084 mark.hamzy 1.62 if (fSuccess)
5085 {
5086 val.setNullValue (cType, dt->_array);
|
5087 mark.hamzy 1.35
|
5088 mark.hamzy 1.62 CIMProperty *np = new CIMProperty (cp->getName (), val);
|
5089 mark.hamzy 1.35
|
5090 mark.hamzy 1.62 delete cp;
|
5091 mark.hamzy 1.35
|
5092 mark.hamzy 1.62 DEBUG_ConvertCleanup (jlong, jP);
|
5093 mark.hamzy 1.35
|
5094 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMProperty*, jlong, np);
5095 }
5096 else
5097 {
5098 return DEBUG_ConvertCToJava (CIMProperty*, jlong, cp);
5099 }
5100 }
|
5101 mark.hamzy 1.35
|
5102 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMProperty__1setValue
5103 (JNIEnv *jEnv, jobject jThs, jlong jP,jlong jV)
5104 {
5105 CIMProperty *cp = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jP);
5106 CIMValue *cv = DEBUG_ConvertJavaToC (jlong, CIMValue*, jV);
|
5107 mark.hamzy 1.35
|
5108 mark.hamzy 1.62 cp->setValue (*cv);
5109 }
|
5110 mark.hamzy 1.35
|
5111 mark.hamzy 1.62 JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMProperty__1isArray
5112 (JNIEnv *jEnv, jobject jThs, jlong jP)
5113 {
5114 CIMProperty *cp = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jP);
|
5115 mark.hamzy 1.35
|
5116 mark.hamzy 1.62 return (jboolean)cp->isArray ();
|
5117 schuur 1.1 }
5118
|
5119 mark.hamzy 1.62 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMProperty__1getIdentifier
5120 (JNIEnv *jEnv, jobject jThs, jlong jP)
|
5121 mark.hamzy 1.20 {
|
5122 mark.hamzy 1.62 CIMProperty *cp = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jP);
5123 const String &n = cp->getName ().getString ();
5124 jstring str = jEnv->NewStringUTF (n.getCString ());
|
5125 mark.hamzy 1.20
|
5126 mark.hamzy 1.62 return str;
|
5127 schuur 1.1 }
5128
|
5129 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMProperty__1addValue
5130 (JNIEnv *jEnv, jobject jThs, jlong jP, jlong jV)
|
5131 mark.hamzy 1.44 {
|
5132 mark.hamzy 1.62 CIMProperty *cp = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jP);
5133 CIMValue *cvin = DEBUG_ConvertJavaToC (jlong, CIMValue*, jV);
5134 CIMValue cv = cp->getValue ();
|
5135 schuur 1.1
|
5136 mark.hamzy 1.62 if (cvin->isNull ())
5137 throwCIMException (jEnv,"+++ null cvin value ");
5138 if (!cv.isArray ())
5139 throwCIMException (jEnv,"+++ not an array ");
5140 if (cvin->getType ()!= cv.getType ())
5141 throwCIMException (jEnv,"+++ type mismatch ");
|
5142 schuur 1.1
|
5143 mark.hamzy 1.62 CIMType type = cv.getType ();
|
5144 schuur 1.1
|
5145 mark.hamzy 1.62 switch (type)
5146 {
5147 case CIMTYPE_BOOLEAN:
5148 {
5149 Boolean bo;
5150 cvin->get (bo);
5151 Array<Boolean> boarr;
5152 cv.get (boarr);
5153 boarr.append (bo);
5154 cv.set (boarr);
5155 break;
5156 }
5157 case CIMTYPE_UINT8:
5158 {
5159 Uint8 u8;
5160 cvin->get (u8);
5161 Array<Uint8> u8arr;
5162 cv.get (u8arr);
5163 u8arr.append (u8);
5164 cv.set (u8arr);
5165 break;
5166 mark.hamzy 1.62 }
5167 case CIMTYPE_SINT8:
5168 {
5169 Sint8 s8;
5170 cvin->get (s8);
5171 Array<Sint8> s8arr;
5172 cv.get (s8arr);
5173 s8arr.append (s8);
5174 cv.set (s8arr);
5175 break;
5176 }
5177 case CIMTYPE_UINT16:
5178 {
5179 Uint16 u16;
5180 cvin->get (u16);
5181 Array<Uint16> u16arr;
5182 cv.get (u16arr);
5183 u16arr.append (u16);
5184 cv.set (u16arr);
5185 break;
5186 }
5187 mark.hamzy 1.62 case CIMTYPE_SINT16:
5188 {
5189 Sint16 s16;
5190 cvin->get (s16);
5191 Array<Sint16> s16arr;
5192 cv.get (s16arr);
5193 s16arr.append (s16);
5194 cv.set (s16arr);
5195 break;
5196 }
5197 case CIMTYPE_UINT32:
5198 {
5199 Uint32 u32;
5200 cvin->get (u32);
5201 Array<Uint32> u32arr;
5202 cv.get (u32arr);
5203 u32arr.append (u32);
5204 cv.set (u32arr);
5205 break;
5206 }
5207 case CIMTYPE_SINT32:
5208 mark.hamzy 1.62 {
5209 Sint32 s32;
5210 cvin->get (s32);
5211 Array<Sint32> s32arr;
5212 cv.get (s32arr);
5213 s32arr.append (s32);
5214 cv.set (s32arr);
5215 break;
5216 }
5217 case CIMTYPE_UINT64:
5218 {
5219 Uint64 u64;
5220 cvin->get (u64);
5221 Array<Uint64> u64arr;
5222 cv.get (u64arr);
5223 u64arr.append (u64);
5224 cv.set (u64arr);
5225 break;
5226 }
5227 case CIMTYPE_SINT64:
5228 {
5229 mark.hamzy 1.62 Sint64 s64;
5230 cvin->get (s64);
5231 Array<Sint64> s64arr;
5232 cv.get (s64arr);
5233 s64arr.append (s64);
5234 cv.set (s64arr);
5235 break;
5236 }
5237 case CIMTYPE_REAL32:
5238 {
5239 Real32 f;
5240 cvin->get (f);
5241 Array<Real32> farr;
5242 cv.get (farr);
5243 farr.append (f);
5244 cv.set (farr);
5245 break;
5246 }
5247 case CIMTYPE_REAL64:
5248 {
5249 Real64 d;
5250 mark.hamzy 1.62 cvin->get (d);
5251 Array<Real64> darr;
5252 cv.get (darr);
5253 darr.append (d);
5254 cv.set (darr);
5255 break;
5256 }
5257 case CIMTYPE_CHAR16:
5258 {
5259 Char16 c16;
5260 cvin->get (c16);
5261 Array<Char16> c16arr;
5262 cv.get (c16arr);
5263 c16arr.append (c16);
5264 cv.set (c16arr);
5265 break;
5266 }
5267 case CIMTYPE_STRING:
5268 {
5269 String str;
5270 cvin->get (str);
5271 mark.hamzy 1.62 Array<String> strarr;
5272 cv.get (strarr);
5273 strarr.append (str);
5274 cv.set (strarr);
5275 break;
5276 }
5277 case CIMTYPE_DATETIME:
5278 {
5279 CIMDateTime dt;
5280 cvin->get (dt);
5281 Array<CIMDateTime> dtarr;
5282 cv.get (dtarr);
5283 dtarr.append (dt);
5284 cv.set (dtarr);
5285 break;
5286 }
5287 case CIMTYPE_REFERENCE:
5288 {
5289 CIMObjectPath ref;
5290 cvin->get (ref);
5291 Array<CIMObjectPath> refarr;
5292 mark.hamzy 1.62 cv.get (refarr);
5293 refarr.append (ref);
5294 cv.set (refarr);
5295 break;
5296 }
5297 case CIMTYPE_OBJECT:
5298 {
5299 CIMObject obj;
5300 cvin->get (obj);
5301 Array<CIMObject> objarr;
5302 cv.get (objarr);
5303 objarr.append (obj);
5304 cv.set (objarr);
5305 break;
5306 }
5307 default:
|
5308 mark.hamzy 1.44 {
|
5309 mark.hamzy 1.62 throwCIMException (jEnv,"+++ unsupported type ");
|
5310 schuur 1.1 }
5311 }
|
5312 mark.hamzy 1.56
|
5313 mark.hamzy 1.62 cp->setValue (cv);
|
5314 schuur 1.1 }
5315
|
5316 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMProperty__1addQualifier
5317 (JNIEnv *jEnv, jobject jThs, jlong jP, jlong jQ)
|
5318 mark.hamzy 1.44 {
|
5319 mark.hamzy 1.62 CIMProperty *cp = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jP);
5320 CIMQualifier *cq = DEBUG_ConvertJavaToC (jlong, CIMQualifier*, jQ);
|
5321 schuur 1.1
|
5322 mark.hamzy 1.62 cp->addQualifier (*cq);
|
5323 schuur 1.1 }
5324
|
5325 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMProperty__1finalize
5326 (JNIEnv *jEnv, jobject jThs, jlong jP)
|
5327 mark.hamzy 1.20 {
|
5328 mark.hamzy 1.62 CIMProperty *cp = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jP);
|
5329 schuur 1.1
|
5330 mark.hamzy 1.62 delete cp;
|
5331 mark.hamzy 1.20
|
5332 mark.hamzy 1.62 DEBUG_ConvertCleanup (jlong, jP);
|
5333 schuur 1.1 }
5334
|
5335 mark.hamzy 1.62 /*
5336 * Class: org_pegasus_jmpi_CIMProperty
5337 * Method: _findQualifier
5338 * Signature: (Ljava/lang/String;)I
5339 */
5340 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMProperty__1findQualifier
5341 (JNIEnv *jEnv, jobject jThs, jlong jP, jstring jQualifier)
|
5342 mark.hamzy 1.20 {
|
5343 mark.hamzy 1.62 CIMProperty *cp = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jP);
5344 const char *str = jEnv->GetStringUTFChars (jQualifier, NULL);
5345 Uint32 index = PEG_NOT_FOUND;
|
5346 mark.hamzy 1.20
|
5347 mark.hamzy 1.62 try
5348 {
5349 index = cp->findQualifier (CIMName (str));
|
5350 mark.hamzy 1.20
|
5351 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jQualifier, str);
5352 }
5353 Catch (jEnv);
|
5354 schuur 1.1
|
5355 mark.hamzy 1.62 return index;
|
5356 schuur 1.1 }
5357
|
5358 mark.hamzy 1.62 /*
5359 * Class: org_pegasus_jmpi_CIMProperty
5360 * Method: _getQualifier
5361 * Signature: (I)I
5362 */
5363 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMProperty__1getQualifier
5364 (JNIEnv *jEnv, jobject jThs, jlong jP, jint jIndex)
|
5365 mark.hamzy 1.20 {
|
5366 mark.hamzy 1.62 CIMProperty *cp = DEBUG_ConvertJavaToC (jlong, CIMProperty*, jP);
5367 CIMQualifier *cq = NULL;
5368 CIMQualifier qualifier;
|
5369 mark.hamzy 1.20
|
5370 mark.hamzy 1.62 try
5371 {
5372 qualifier = cp->getQualifier ((Uint32)jIndex);
5373 cq = new CIMQualifier (qualifier);
5374 }
5375 Catch (jEnv);
|
5376 schuur 1.1
|
5377 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMQualifier *, jlong, cq);
|
5378 schuur 1.1 }
5379
|
5380 mark.hamzy 1.22
|
5381 schuur 1.1 // -------------------------------------
5382 // ---
|
5383 mark.hamzy 1.62 // - CIMQualifier
|
5384 schuur 1.1 // ---
5385 // -------------------------------------
5386
|
5387 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMQualifier__1new
5388 (JNIEnv *jEnv, jobject jThs, jstring jN)
|
5389 mark.hamzy 1.20 {
|
5390 mark.hamzy 1.62 const char *str = jEnv->GetStringUTFChars (jN,NULL);
5391 CIMQualifier *qual = new CIMQualifier (CIMName (str),CIMValue ());
|
5392 mark.hamzy 1.20
|
5393 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jN,str);
|
5394 schuur 1.4
|
5395 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMQualifier*, jlong, qual);
|
5396 schuur 1.4 }
5397
|
5398 mark.hamzy 1.62 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMQualifier__1getName
5399 (JNIEnv *jEnv, jobject jThs, jlong jQ)
|
5400 mark.hamzy 1.20 {
|
5401 mark.hamzy 1.62 CIMQualifier *cq = DEBUG_ConvertJavaToC (jlong, CIMQualifier*, jQ);
5402 const String &n = cq->getName ().getString ();
5403 jstring str = jEnv->NewStringUTF (n.getCString ());
|
5404 mark.hamzy 1.20
|
5405 mark.hamzy 1.62 return str;
|
5406 schuur 1.1 }
5407
|
5408 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMQualifier__1getValue
5409 (JNIEnv *jEnv, jobject jThs, jlong jQ)
|
5410 mark.hamzy 1.20 {
|
5411 mark.hamzy 1.62 CIMQualifier *cq = DEBUG_ConvertJavaToC (jlong, CIMQualifier*, jQ);
5412 CIMValue *cv = new CIMValue (cq->getValue ());
|
5413 mark.hamzy 1.20
|
5414 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
|
5415 schuur 1.1 }
5416
|
5417 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMQualifier__1setValue
5418 (JNIEnv *jEnv, jobject jThs, jlong jQ,jlong jV)
|
5419 mark.hamzy 1.20 {
|
5420 mark.hamzy 1.62 CIMQualifier *cq = DEBUG_ConvertJavaToC (jlong, CIMQualifier*, jQ);
5421 CIMValue *cv = DEBUG_ConvertJavaToC (jlong, CIMValue*, jV);
|
5422 schuur 1.1
|
5423 mark.hamzy 1.62 cq->setValue (*cv);
|
5424 schuur 1.1 }
5425
|
5426 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMQualifier__1finalize
5427 (JNIEnv *jEnv, jobject jThs, jlong jQ)
|
5428 mark.hamzy 1.20 {
|
5429 mark.hamzy 1.62 CIMQualifier *cq = DEBUG_ConvertJavaToC (jlong, CIMQualifier*, jQ);
|
5430 mark.hamzy 1.20
|
5431 mark.hamzy 1.62 delete cq;
|
5432 schuur 1.1
|
5433 mark.hamzy 1.62 DEBUG_ConvertCleanup (jlong, jQ);
|
5434 schuur 1.5 }
5435
5436
|
5437 schuur 1.1 // -------------------------------------
5438 // ---
|
5439 mark.hamzy 1.62 // - CIMQualifierType
|
5440 schuur 1.1 // ---
5441 // -------------------------------------
5442
|
5443 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMQualifierType__1new
5444 (JNIEnv *jEnv, jobject jThs)
|
5445 mark.hamzy 1.44 {
|
5446 mark.hamzy 1.62 CIMQualifierDecl *qual = new CIMQualifierDecl ();
|
5447 mark.hamzy 1.30
|
5448 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMQualifierDecl*, jlong, qual);
|
5449 schuur 1.5 }
5450
|
5451 mark.hamzy 1.62 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMQualifierType__1getName
5452 (JNIEnv *jEnv, jobject jThs, jlong jQ)
|
5453 mark.hamzy 1.20 {
|
5454 mark.hamzy 1.62 CIMQualifierDecl *qt = DEBUG_ConvertJavaToC (jlong, CIMQualifierDecl*, jQ);
5455 const String &n = qt->getName ().getString ();
5456 jstring str = jEnv->NewStringUTF (n.getCString ());
|
5457 schuur 1.5
|
5458 mark.hamzy 1.62 return str;
|
5459 schuur 1.1 }
5460
|
5461 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMQualifierType__1setName
5462 (JNIEnv *jEnv, jobject jThs, jlong jQ, jstring jN)
|
5463 mark.hamzy 1.20 {
|
5464 mark.hamzy 1.62 CIMQualifierDecl *qt = DEBUG_ConvertJavaToC (jlong, CIMQualifierDecl*, jQ);
5465 const char *str = jEnv->GetStringUTFChars (jN, NULL);
5466 jlong jret = 0;
|
5467 mark.hamzy 1.54
|
5468 mark.hamzy 1.62 if (qt->isUninitialized ())
|
5469 mark.hamzy 1.54 {
|
5470 mark.hamzy 1.62 CIMQualifierDecl *nqt = new CIMQualifierDecl (CIMName (str), CIMValue (), CIMScope ());
|
5471 mark.hamzy 1.54
|
5472 mark.hamzy 1.62 jret = DEBUG_ConvertCToJava (CIMQualifierDecl*, jlong, nqt);
5473 }
5474 else
5475 {
5476 qt->setName (CIMName (str));
|
5477 mark.hamzy 1.20
|
5478 mark.hamzy 1.62 CIMQualifierDecl *nqt = new CIMQualifierDecl (*qt);
|
5479 mark.hamzy 1.54
|
5480 mark.hamzy 1.62 jret = DEBUG_ConvertCToJava (CIMQualifierDecl*, jlong, nqt);
|
5481 schuur 1.1 }
|
5482 mark.hamzy 1.20
|
5483 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jN, str);
5484
5485 return jret;
|
5486 schuur 1.1 }
|
5487 schuur 1.3
|
5488 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMQualifierType__1setValue
5489 (JNIEnv *jEnv, jobject jThs, jlong jQ,jlong jV)
|
5490 mark.hamzy 1.20 {
|
5491 mark.hamzy 1.62 CIMQualifierDecl *qt = DEBUG_ConvertJavaToC (jlong, CIMQualifierDecl*, jQ);
5492 CIMValue *cv = DEBUG_ConvertJavaToC (jlong, CIMValue*, jV);
|
5493 mark.hamzy 1.20
|
5494 mark.hamzy 1.62 qt->setValue (*cv);
|
5495 schuur 1.3 }
5496
|
5497 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMQualifierType__1finalize
5498 (JNIEnv *jEnv, jobject jThs, jlong jQ)
|
5499 mark.hamzy 1.20 {
|
5500 mark.hamzy 1.62 CIMQualifierDecl *qt = DEBUG_ConvertJavaToC (jlong, CIMQualifierDecl*, jQ);
5501
5502 delete qt;
|
5503 schuur 1.3
|
5504 mark.hamzy 1.62 DEBUG_ConvertCleanup (jlong, jQ);
|
5505 schuur 1.3 }
5506
|
5507 mark.hamzy 1.62 // -------------------------------------
5508 // ---
5509 // - CIMValue
5510 // ---
5511 // -------------------------------------
5512
5513 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1byte
5514 (JNIEnv *jEnv, jobject jThs, jbyte jb, jboolean notSigned)
|
5515 mark.hamzy 1.20 {
|
5516 mark.hamzy 1.62 CIMValue *cv = NULL;
|
5517 schuur 1.3
|
5518 mark.hamzy 1.62 if (notSigned)
5519 cv = new CIMValue ((Uint8)jb);
5520 else
5521 cv = new CIMValue ((Sint8)jb);
|
5522 mark.hamzy 1.56
|
5523 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
|
5524 schuur 1.1 }
|
5525 schuur 1.3
|
5526 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1short
5527 (JNIEnv *jEnv, jobject jThs, jshort js, jboolean notSigned)
|
5528 mark.hamzy 1.20 {
|
5529 mark.hamzy 1.62 CIMValue *cv = NULL;
5530
5531 if (notSigned)
5532 cv = new CIMValue ((Uint16)js);
5533 else
5534 cv = new CIMValue( (Sint16)js);
|
5535 mark.hamzy 1.20
|
5536 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
5537 }
|
5538 mark.hamzy 1.56
|
5539 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1makeInt
5540 (JNIEnv *jEnv, jobject jThs, jlong ji, jboolean notSigned)
5541 {
5542 CIMValue *cv = NULL;
|
5543 mark.hamzy 1.56
|
5544 mark.hamzy 1.62 if (notSigned)
5545 cv = new CIMValue ((Uint32)ji);
5546 else
5547 cv = new CIMValue ((Sint32)ji);
|
5548 mark.hamzy 1.20
|
5549 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
|
5550 schuur 1.1 }
5551
|
5552 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1long
5553 (JNIEnv *jEnv, jobject jThs, jlong jl, jboolean notSigned)
|
5554 mark.hamzy 1.20 {
|
5555 mark.hamzy 1.62 CIMValue *cv = NULL;
|
5556 mark.hamzy 1.20
|
5557 mark.hamzy 1.62 if (notSigned)
5558 cv = new CIMValue ((Uint64)jl);
5559 else
5560 cv = new CIMValue ((Sint64)jl);
|
5561 mark.hamzy 1.56
|
5562 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
5563 }
|
5564 mark.hamzy 1.56
|
5565 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1string
5566 (JNIEnv *jEnv, jobject jThs, jstring jS)
5567 {
5568 const char *str = jEnv->GetStringUTFChars (jS,NULL);
5569 CIMValue *cv = new CIMValue (String (str));
|
5570 mark.hamzy 1.56
|
5571 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jS,str);
|
5572 mark.hamzy 1.20
|
5573 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
|
5574 schuur 1.3 }
5575
|
5576 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1boolean
5577 (JNIEnv *jEnv, jobject jThs, jboolean jB)
|
5578 mark.hamzy 1.20 {
|
5579 mark.hamzy 1.62 CIMValue *cv = new CIMValue ((Boolean)jB);
5580
5581 return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
5582 }
|
5583 mark.hamzy 1.20
|
5584 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1float
5585 (JNIEnv *jEnv, jobject jThs, jfloat jF)
5586 {
5587 CIMValue *cv = new CIMValue (jF);
|
5588 mark.hamzy 1.24
|
5589 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
5590 }
|
5591 mark.hamzy 1.24
|
5592 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1double
5593 (JNIEnv *jEnv, jobject jThs, jdouble jD)
5594 {
5595 CIMValue *cv = new CIMValue (jD);
|
5596 mark.hamzy 1.20
|
5597 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
|
5598 schuur 1.6 }
5599
|
5600 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1cop
5601 (JNIEnv *jEnv, jobject jThs, jlong jR)
|
5602 mark.hamzy 1.20 {
|
5603 mark.hamzy 1.62 CIMObjectPath *ref = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jR);
5604 CIMValue *cv = new CIMValue (*ref);
|
5605 schuur 1.5
|
5606 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
5607 }
|
5608 mark.hamzy 1.24
|
5609 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1datetime
5610 (JNIEnv *jEnv, jobject jThs, jlong jDT)
5611 {
5612 CIMDateTime *dt = DEBUG_ConvertJavaToC (jlong, CIMDateTime*, jDT);
5613 CIMValue *cv = new CIMValue (*dt);
|
5614 mark.hamzy 1.56
|
5615 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
5616 }
|
5617 mark.hamzy 1.24
|
5618 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1char16
5619 (JNIEnv *jEnv, jobject jThs, jchar jChar16)
5620 {
5621 Char16 c16 (jChar16);
5622 CIMValue *cv = new CIMValue (c16);
|
5623 mark.hamzy 1.20
|
5624 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
|
5625 schuur 1.1 }
5626
|
5627 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1object
5628 (JNIEnv *jEnv, jobject jThs, jlong jO)
|
5629 mark.hamzy 1.20 {
|
5630 mark.hamzy 1.62 CIMObject *co = DEBUG_ConvertJavaToC (jlong, CIMObject*, jO);
5631 CIMValue *cv = new CIMValue (*co);
|
5632 mark.hamzy 1.20
|
5633 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
|
5634 schuur 1.3 }
5635
|
5636 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1byteArray
5637 (JNIEnv *jEnv, jobject jThs, jshortArray jshortA, jboolean notSigned)
|
5638 mark.hamzy 1.20 {
|
5639 mark.hamzy 1.62 CIMValue *cv = NULL;
5640 jboolean b;
5641 jsize len = jEnv->GetArrayLength (jshortA);
5642 jshort *jsA = jEnv->GetShortArrayElements (jshortA, &b);
5643
5644 if (notSigned)
5645 {
5646 Array<Uint8> u8;
|
5647 mark.hamzy 1.20
|
5648 mark.hamzy 1.62 for (jsize i = 0; i < len; i++)
5649 u8.append ((Uint8)jsA[i]);
|
5650 mark.hamzy 1.56
|
5651 mark.hamzy 1.62 cv = new CIMValue (u8);
5652 }
5653 else
5654 {
5655 Array<Sint8> s8;
|
5656 mark.hamzy 1.56
|
5657 mark.hamzy 1.62 for (jsize i = 0; i < len; i++)
5658 s8.append ((Sint8)jsA[i]);
|
5659 mark.hamzy 1.56
|
5660 mark.hamzy 1.62 cv = new CIMValue (s8);
|
5661 schuur 1.1 }
|
5662 mark.hamzy 1.20
|
5663 mark.hamzy 1.62 jEnv->ReleaseShortArrayElements (jshortA, jsA, len);
5664
5665 return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
|
5666 schuur 1.1 }
|
5667 schuur 1.3
|
5668 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1shortArray
5669 (JNIEnv *jEnv, jobject jThs, jintArray jintA, jboolean notSigned)
|
5670 mark.hamzy 1.20 {
|
5671 mark.hamzy 1.62 CIMValue *cv = NULL;
5672 jboolean b;
5673 jsize len = jEnv->GetArrayLength (jintA);
5674 jint *jiA = jEnv->GetIntArrayElements (jintA, &b);
|
5675 mark.hamzy 1.20
|
5676 mark.hamzy 1.62 if (notSigned)
5677 {
5678 Array<Uint16> u16;
|
5679 mark.hamzy 1.56
|
5680 mark.hamzy 1.62 for (jsize i = 0; i < len; i++)
5681 u16.append ((Uint16)jiA[i]);
|
5682 mark.hamzy 1.56
|
5683 mark.hamzy 1.62 cv = new CIMValue (u16);
|
5684 schuur 1.1 }
|
5685 mark.hamzy 1.62 else
5686 {
5687 Array<Sint16> s16;
|
5688 schuur 1.3
|
5689 mark.hamzy 1.62 for (jsize i = 0; i < len; i++)
5690 s16.append ((Sint16)jiA[i]);
|
5691 mark.hamzy 1.20
|
5692 mark.hamzy 1.62 cv = new CIMValue (s16);
5693 }
|
5694 mark.hamzy 1.56
|
5695 mark.hamzy 1.62 jEnv->ReleaseIntArrayElements (jintA, jiA, len);
|
5696 mark.hamzy 1.56
|
5697 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
|
5698 schuur 1.3 }
5699
|
5700 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1intArray
5701 (JNIEnv *jEnv, jobject jThs, jlongArray jlongA, jboolean notSigned)
|
5702 mark.hamzy 1.20 {
|
5703 mark.hamzy 1.62 CIMValue *cv = NULL;
5704 jboolean b;
5705 jsize len = jEnv->GetArrayLength (jlongA);
5706 jlong *jlA = jEnv->GetLongArrayElements (jlongA, &b);
5707
5708 if (notSigned)
5709 {
5710 Array<Uint32> u32;
5711
5712 for (jsize i = 0; i < len; i++)
5713 u32.append ((Uint32)jlA[i]);
|
5714 mark.hamzy 1.20
|
5715 mark.hamzy 1.62 cv = new CIMValue (u32);
5716 }
5717 else
5718 {
5719 Array<Sint32> s32;
|
5720 mark.hamzy 1.56
|
5721 mark.hamzy 1.62 for (jsize i = 0; i < len; i++)
5722 s32.append ((Sint32)jlA[i]);
|
5723 mark.hamzy 1.56
|
5724 mark.hamzy 1.62 cv = new CIMValue (s32);
|
5725 schuur 1.3 }
|
5726 mark.hamzy 1.20
|
5727 mark.hamzy 1.62 jEnv->ReleaseLongArrayElements (jlongA, jlA, len);
5728
5729 return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
|
5730 schuur 1.5 }
5731
|
5732 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1longArray
5733 (JNIEnv *jEnv, jobject jThs, jlongArray jlongA, jboolean notSigned)
|
5734 mark.hamzy 1.20 {
|
5735 mark.hamzy 1.62 CIMValue *cv = NULL;
5736 jboolean b;
5737 jsize len = jEnv->GetArrayLength (jlongA);
5738 jlong *jlA = jEnv->GetLongArrayElements (jlongA, &b);
|
5739 mark.hamzy 1.20
|
5740 mark.hamzy 1.62 if (notSigned)
5741 {
5742 Array<Uint64> u64;
|
5743 mark.hamzy 1.56
|
5744 mark.hamzy 1.62 for (jsize i = 0; i < len; i++)
5745 u64.append ((Uint64)jlA[i]);
|
5746 mark.hamzy 1.56
|
5747 mark.hamzy 1.62 cv = new CIMValue (u64);
|
5748 schuur 1.3 }
|
5749 mark.hamzy 1.62 else
5750 {
5751 Array<Sint64> s64;
|
5752 mark.hamzy 1.20
|
5753 mark.hamzy 1.62 for (jsize i = 0; i < len; i++)
5754 s64.append ((Sint64)jlA[i]);
|
5755 schuur 1.3
|
5756 mark.hamzy 1.62 cv = new CIMValue (s64);
5757 }
|
5758 mark.hamzy 1.20
|
5759 mark.hamzy 1.62 jEnv->ReleaseLongArrayElements (jlongA, jlA, len);
|
5760 mark.hamzy 1.56
|
5761 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
|
5762 schuur 1.5 }
5763
|
5764 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1stringArray
5765 (JNIEnv *jEnv, jobject jThs, jobjectArray jstringA)
|
5766 mark.hamzy 1.20 {
|
5767 mark.hamzy 1.62 CIMValue *cv = NULL;
5768 jsize len = jEnv->GetArrayLength (jstringA);
5769 Array<String> strA;
5770
5771 for (jsize i = 0;i < len; i++)
5772 {
5773 jstring jsA = (jstring)jEnv->GetObjectArrayElement (jstringA, i);
5774 const char *str = jEnv->GetStringUTFChars (jsA, NULL);
|
5775 mark.hamzy 1.20
|
5776 mark.hamzy 1.62 strA.append (String (str));
|
5777 mark.hamzy 1.56
|
5778 mark.hamzy 1.62 jEnv->ReleaseStringUTFChars (jsA, str);
|
5779 schuur 1.5 }
|
5780 mark.hamzy 1.62
5781 cv = new CIMValue (strA);
5782
5783 return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
|
5784 schuur 1.5 }
5785
|
5786 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1booleanArray
5787 (JNIEnv *jEnv, jobject jThs, jbooleanArray jboolA)
|
5788 mark.hamzy 1.20 {
|
5789 mark.hamzy 1.62 CIMValue *cv = NULL;
5790 jboolean b;
5791 jsize len = jEnv->GetArrayLength (jboolA);
5792 jboolean *jbA = jEnv->GetBooleanArrayElements (jboolA, &b);
5793 Array<Boolean> bA;
|
5794 mark.hamzy 1.20
|
5795 mark.hamzy 1.62 for (jsize i = 0; i < len; i++)
5796 bA.append ((Boolean)jbA[i]);
|
5797 mark.hamzy 1.27
|
5798 mark.hamzy 1.62 cv = new CIMValue (bA);
|
5799 mark.hamzy 1.27
|
5800 mark.hamzy 1.62 jEnv->ReleaseBooleanArrayElements (jboolA, jbA, len);
|
5801 mark.hamzy 1.20
|
5802 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
|
5803 schuur 1.3 }
|
5804 schuur 1.5
|
5805 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1floatArray
5806 (JNIEnv *jEnv, jobject jThs, jfloatArray jfloatA)
|
5807 mark.hamzy 1.20 {
|
5808 mark.hamzy 1.62 CIMValue *cv = NULL;
5809 jboolean b;
5810 jsize len = jEnv->GetArrayLength (jfloatA);
5811 jfloat *jfA = jEnv->GetFloatArrayElements (jfloatA, &b);
5812 Array<float> fA;
5813
5814 for (jsize i = 0; i< len; i++)
5815 fA.append ((float)jfA[i]);
|
5816 mark.hamzy 1.20
|
5817 mark.hamzy 1.62 cv = new CIMValue (fA);
|
5818 mark.hamzy 1.56
|
5819 mark.hamzy 1.62 jEnv->ReleaseFloatArrayElements (jfloatA, jfA, len);
|
5820 mark.hamzy 1.27
|
5821 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
|
5822 schuur 1.3 }
5823
|
5824 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1doubleArray
5825 (JNIEnv *jEnv, jobject jThs, jdoubleArray jdoubleA)
|
5826 mark.hamzy 1.20 {
|
5827 mark.hamzy 1.62 CIMValue *cv = NULL;
5828 jboolean b;
5829 jsize len = jEnv->GetArrayLength (jdoubleA);
5830 jdouble *jdA = jEnv->GetDoubleArrayElements (jdoubleA, &b);
5831 Array<double> dA;
|
5832 mark.hamzy 1.30
|
5833 mark.hamzy 1.62 for (jsize i = 0; i < len; i++)
5834 dA.append ((double)jdA[i]);
|
5835 mark.hamzy 1.20
|
5836 mark.hamzy 1.62 cv = new CIMValue (dA);
|
5837 mark.hamzy 1.56
|
5838 mark.hamzy 1.62 jEnv->ReleaseDoubleArrayElements (jdoubleA, jdA, len);
|
5839 mark.hamzy 1.20
|
5840 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
5841 }
|
5842 mark.hamzy 1.20
|
5843 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1copArray
5844 (JNIEnv *jEnv, jobject jThs, jlongArray jlongA)
5845 {
5846 CIMValue *cv = NULL;
5847 jboolean b;
5848 jsize len = jEnv->GetArrayLength (jlongA);
5849 jlong *jiA = jEnv->GetLongArrayElements (jlongA, &b);
5850 Array<CIMObjectPath> cA;
|
5851 mark.hamzy 1.20
|
5852 mark.hamzy 1.62 for (jsize i = 0; i < len; i++)
5853 {
5854 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jlong, CIMObjectPath*, jiA[i]);
5855 cA.append (*cop);
|
5856 schuur 1.3 }
|
5857 mark.hamzy 1.27
|
5858 mark.hamzy 1.62 cv = new CIMValue (cA);
|
5859 mark.hamzy 1.27
|
5860 mark.hamzy 1.62 jEnv->ReleaseLongArrayElements (jlongA, jiA, len);
|
5861 schuur 1.3
|
5862 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
5863 }
|
5864 mark.hamzy 1.20
|
5865 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1datetimeArray
5866 (JNIEnv *jEnv, jobject jThs, jlongArray jlongA)
5867 {
5868 CIMValue *cv = NULL;
5869 jboolean b;
5870 jsize len = jEnv->GetArrayLength (jlongA);
5871 jlong *jiA = jEnv->GetLongArrayElements (jlongA, &b);
5872 Array<CIMDateTime> cA;
|
5873 mark.hamzy 1.27
|
5874 mark.hamzy 1.62 for (jsize i = 0; i < len; i++)
5875 {
5876 CIMDateTime *cdt = DEBUG_ConvertJavaToC (jlong, CIMDateTime*, jiA[i]);
5877 cA.append (*cdt);
|
5878 mark.hamzy 1.20 }
5879
|
5880 mark.hamzy 1.62 cv = new CIMValue (cA);
5881
5882 jEnv->ReleaseLongArrayElements (jlongA, jiA, len);
|
5883 mark.hamzy 1.27
|
5884 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
|
5885 schuur 1.3 }
5886
|
5887 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1objectArray
5888 (JNIEnv *jEnv, jobject jThs, jlongArray jlongA)
|
5889 mark.hamzy 1.20 {
|
5890 mark.hamzy 1.62 CIMValue *cv = NULL;
5891 jboolean b;
5892 jsize len = jEnv->GetArrayLength (jlongA);
5893 jlong *jiA = jEnv->GetLongArrayElements (jlongA, &b);
5894 Array<CIMObject> cA;
|
5895 mark.hamzy 1.30
|
5896 mark.hamzy 1.62 for (jsize i = 0; i < len; i++)
|
5897 mark.hamzy 1.43 {
|
5898 mark.hamzy 1.62 CIMObject *co = DEBUG_ConvertJavaToC (jlong, CIMObject*, jiA[i]);
5899 cA.append (*co);
5900 }
|
5901 mark.hamzy 1.20
|
5902 mark.hamzy 1.62 cv = new CIMValue (cA);
|
5903 mark.hamzy 1.56
|
5904 mark.hamzy 1.62 jEnv->ReleaseLongArrayElements (jlongA, jiA, len);
|
5905 mark.hamzy 1.20
|
5906 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
5907 }
|
5908 mark.hamzy 1.20
|
5909 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_CIMValue__1char16Array
5910 (JNIEnv *jEnv, jobject jThs, jcharArray jcharA)
5911 {
5912 CIMValue *cv = NULL;
5913 jboolean b;
5914 jsize len = jEnv->GetArrayLength (jcharA);
5915 jchar *jcA = jEnv->GetCharArrayElements (jcharA, &b);
5916 Array<Char16> cA;
|
5917 mark.hamzy 1.20
|
5918 mark.hamzy 1.62 for (jsize i = 0; i < len; i++)
5919 cA.append (Char16 (jcA[i]));
|
5920 mark.hamzy 1.56
|
5921 mark.hamzy 1.62 cv = new CIMValue (cA);
|
5922 schuur 1.7
|
5923 mark.hamzy 1.62 jEnv->ReleaseCharArrayElements (jcharA, jcA, len);
|
5924 mark.hamzy 1.43
|
5925 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMValue*, jlong, cv);
|
5926 schuur 1.6 }
5927
|
5928 mark.hamzy 1.62 JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_CIMValue__1getValue
5929 (JNIEnv *jEnv, jobject jThs, jlong jV)
|
5930 mark.hamzy 1.20 {
|
5931 mark.hamzy 1.62 JMPIjvm::cacheIDs (jEnv);
|
5932 schuur 1.3
|
5933 mark.hamzy 1.62 CIMValue *cv = DEBUG_ConvertJavaToC (jlong, CIMValue*, jV);
|
5934 mark.hamzy 1.16
|
5935 mark.hamzy 1.62 if (cv->isNull ())
5936 return NULL;
|
5937 mark.hamzy 1.16
|
5938 mark.hamzy 1.62 CIMType type = cv->getType ();
|
5939 mark.hamzy 1.27
|
5940 mark.hamzy 1.62 if (!cv->isArray ())
5941 {
5942 switch (type)
5943 {
5944 case CIMTYPE_BOOLEAN:
5945 {
5946 Boolean bo;
5947 cv->get (bo);
5948 return jEnv->NewObject (JMPIjvm::jv.BooleanClassRef,
5949 JMPIjvm::jv.BooleanNewZ,
5950 (jboolean)bo);
5951 }
5952 case CIMTYPE_SINT8:
5953 {
5954 Sint8 s8;
5955 cv->get (s8);
5956 return jEnv->NewObject (JMPIjvm::jv.ByteClassRef,
5957 JMPIjvm::jv.ByteNewB,
5958 (jbyte)s8);
5959 }
5960 case CIMTYPE_UINT8:
5961 mark.hamzy 1.62 {
5962 Uint8 u8;
5963 cv->get (u8);
5964 return jEnv->NewObject (JMPIjvm::jv.UnsignedInt8ClassRef,
5965 JMPIjvm::jv.UnsignedInt8NewS,
5966 (jshort)u8);
5967 }
5968 case CIMTYPE_SINT16:
5969 {
5970 Sint16 s16;
5971 cv->get (s16);
5972 return jEnv->NewObject (JMPIjvm::jv.ShortClassRef,
5973 JMPIjvm::jv.ShortNewS,
5974 (jshort)s16);
5975 }
5976 case CIMTYPE_UINT16:
5977 {
5978 Uint16 u16;
5979 cv->get (u16);
5980 return jEnv->NewObject (JMPIjvm::jv.UnsignedInt16ClassRef,
5981 JMPIjvm::jv.UnsignedInt16NewI,
5982 mark.hamzy 1.62 (jint)u16);
5983 }
5984 case CIMTYPE_SINT32:
5985 {
5986 Sint32 s32;
5987 cv->get (s32);
5988 return jEnv->NewObject (JMPIjvm::jv.IntegerClassRef,
5989 JMPIjvm::jv.IntegerNewI,
5990 (jint)s32);
5991 }
5992 case CIMTYPE_UINT32:
5993 {
5994 Uint32 u32;
5995 cv->get (u32);
5996 return jEnv->NewObject (JMPIjvm::jv.UnsignedInt32ClassRef,
5997 JMPIjvm::jv.UnsignedInt32NewJ,
5998 (jlong)u32);
5999 }
6000 case CIMTYPE_SINT64:
6001 {
6002 Sint64 s64;
6003 mark.hamzy 1.62 cv->get (s64);
6004 return jEnv->NewObject (JMPIjvm::jv.LongClassRef,
6005 JMPIjvm::jv.LongNewJ,
6006 (jlong)s64);
6007 }
6008 case CIMTYPE_UINT64:
6009 {
6010 Uint64 u64;
|
6011 mark.hamzy 1.56
|
6012 mark.hamzy 1.62 cv->get (u64);
|
6013 mark.hamzy 1.56
|
6014 mark.hamzy 1.62 std::ostringstream oss;
6015 jstring jString = 0;
6016 jobject jBIG = 0;
|
6017 mark.hamzy 1.20
|
6018 mark.hamzy 1.62 oss << u64 << ends;
|
6019 schuur 1.3
|
6020 mark.hamzy 1.62 jString = jEnv->NewStringUTF (oss.str ().c_str ());
|
6021 mark.hamzy 1.44
|
6022 mark.hamzy 1.62 if (jString)
6023 {
6024 jBIG = jEnv->NewObject (JMPIjvm::jv.UnsignedInt64ClassRef,
6025 JMPIjvm::jv.UnsignedInt64NewStr,
6026 jString);
6027 }
|
6028 mark.hamzy 1.44
|
6029 mark.hamzy 1.62 return jEnv->NewObject (JMPIjvm::jv.UnsignedInt64ClassRef,
6030 JMPIjvm::jv.UnsignedInt64NewBi,
6031 jBIG);
6032 }
6033 case CIMTYPE_REAL32:
6034 {
6035 float f;
6036 cv->get (f);
6037 return jEnv->NewObject (JMPIjvm::jv.FloatClassRef,
6038 JMPIjvm::jv.FloatNewF,
6039 (jfloat)f);
6040 }
6041 case CIMTYPE_REAL64:
6042 {
6043 double d;
6044 cv->get (d);
6045 return jEnv->NewObject (JMPIjvm::jv.DoubleClassRef,
6046 JMPIjvm::jv.DoubleNewD,
6047 (jdouble)d);
6048 }
6049 case CIMTYPE_STRING:
6050 mark.hamzy 1.62 {
6051 String s;
6052 cv->get (s);
6053 return jEnv->NewStringUTF (s.getCString ());
6054 }
6055 case CIMTYPE_REFERENCE:
6056 {
6057 CIMObjectPath ref;
6058 cv->get (ref);
6059 jlong jOp = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, new CIMObjectPath (ref));
6060 return jEnv->NewObject (JMPIjvm::jv.CIMObjectPathClassRef,
6061 JMPIjvm::jv.CIMObjectPathNewJ,
6062 jOp);
6063 }
6064 case CIMTYPE_CHAR16:
6065 {
6066 Char16 c16;
6067 cv->get (c16);
6068 return jEnv->NewObject (JMPIjvm::jv.CharacterClassRef,
6069 JMPIjvm::jv.CharacterNewC,
6070 (jchar)c16);
6071 mark.hamzy 1.62 }
6072 case CIMTYPE_DATETIME:
|
6073 mark.hamzy 1.44 {
|
6074 mark.hamzy 1.62 CIMDateTime dt;
6075 cv->get (dt);
6076 jlong jDT = DEBUG_ConvertCToJava (CIMDateTime*, jlong, new CIMDateTime (dt));
6077 return jEnv->NewObject (JMPIjvm::jv.CIMDateTimeClassRef,
6078 JMPIjvm::jv.CIMDateTimeNewJ,
6079 jDT);
|
6080 mark.hamzy 1.44 }
|
6081 mark.hamzy 1.62 case CIMTYPE_OBJECT:
|
6082 mark.hamzy 1.44 {
|
6083 mark.hamzy 1.62 CIMObject co;
6084 cv->get (co);
6085 if (co.isClass ())
6086 {
6087 jlong jCC = DEBUG_ConvertCToJava (CIMClass*, jlong, new CIMClass (co));
|
6088 mark.hamzy 1.44
|
6089 mark.hamzy 1.62 return jEnv->NewObject (JMPIjvm::jv.CIMObjectClassRef,
6090 JMPIjvm::jv.CIMObjectNewJZ,
6091 jCC,
6092 (jboolean)true);
6093 }
6094 else
6095 {
6096 jlong jCI = DEBUG_ConvertCToJava (CIMInstance*, jlong, new CIMInstance (co));
|
6097 mark.hamzy 1.44
|
6098 mark.hamzy 1.62 return jEnv->NewObject (JMPIjvm::jv.CIMObjectClassRef,
6099 JMPIjvm::jv.CIMObjectNewJZ,
6100 jCI,
6101 (jboolean)false);
6102 }
6103 }
6104 default:
6105 throwCIMException (jEnv,"+++ unsupported type: ");
|
6106 mark.hamzy 1.44 }
6107 }
|
6108 mark.hamzy 1.62 else
|
6109 mark.hamzy 1.44 {
|
6110 mark.hamzy 1.62 switch (type)
|
6111 mark.hamzy 1.44 {
|
6112 mark.hamzy 1.62 case CIMTYPE_BOOLEAN:
|
6113 mark.hamzy 1.44 {
|
6114 mark.hamzy 1.62 Array<Boolean> bo;
6115
6116 cv->get (bo);
|
6117 mark.hamzy 1.44
|
6118 mark.hamzy 1.62 int s = bo.size ();
6119 jobjectArray jbooleanA = (jobjectArray)jEnv->NewObjectArray (s,
6120 JMPIjvm::jv.BooleanClassRef,
6121 0);
|
6122 mark.hamzy 1.44
|
6123 mark.hamzy 1.62 for (int i = 0; i < s; i++)
6124 jEnv->SetObjectArrayElement (jbooleanA,
6125 i,
6126 jEnv->NewObject (JMPIjvm::jv.BooleanClassRef,
6127 JMPIjvm::jv.BooleanNewZ,
6128 (jboolean)bo[i]));
6129 return jbooleanA;
|
6130 mark.hamzy 1.44 }
|
6131 mark.hamzy 1.62 case CIMTYPE_SINT8:
6132 {
6133 Array<Sint8> s8;
|
6134 schuur 1.3
|
6135 mark.hamzy 1.62 cv->get (s8);
|
6136 mark.hamzy 1.20
|
6137 mark.hamzy 1.62 int s = s8.size ();
6138 jobjectArray jbyteA = (jobjectArray)jEnv->NewObjectArray (s,
6139 JMPIjvm::jv.ByteClassRef,
6140 0);
|
6141 mark.hamzy 1.20
|
6142 mark.hamzy 1.62 for (int i = 0; i < s; i++)
6143 jEnv->SetObjectArrayElement (jbyteA,
6144 i,
6145 jEnv->NewObject (JMPIjvm::jv.ByteClassRef,
6146 JMPIjvm::jv.ByteNewB,
6147 (jbyte)s8[i]));
6148 return jbyteA;
6149 }
6150 case CIMTYPE_UINT8:
6151 {
6152 Array<Uint8> u8;
|
6153 mark.hamzy 1.20
|
6154 mark.hamzy 1.62 cv->get (u8);
|
6155 mark.hamzy 1.20
|
6156 mark.hamzy 1.62 int s = u8.size ();
6157 jobjectArray jshortA = (jobjectArray)jEnv->NewObjectArray (s,
6158 JMPIjvm::jv.UnsignedInt8ClassRef,
6159 0);
6160 for (int i = 0; i < s; i++)
6161 jEnv->SetObjectArrayElement (jshortA,
6162 i,
6163 jEnv->NewObject (JMPIjvm::jv.UnsignedInt8ClassRef,
6164 JMPIjvm::jv.UnsignedInt8NewS,
6165 (jshort)u8[i]));
6166 return jshortA;
6167 }
6168 case CIMTYPE_SINT16:
6169 {
6170 Array<Sint16> s16;
|
6171 mark.hamzy 1.20
|
6172 mark.hamzy 1.62 cv->get (s16);
|
6173 mark.hamzy 1.20
|
6174 mark.hamzy 1.62 int s = s16.size ();
6175 jobjectArray jshortA = (jobjectArray)jEnv->NewObjectArray (s,
6176 JMPIjvm::jv.ShortClassRef,
6177 0);
|
6178 schuur 1.3
|
6179 mark.hamzy 1.62 for (int i = 0; i < s; i++)
6180 jEnv->SetObjectArrayElement (jshortA,
6181 i,
6182 jEnv->NewObject (JMPIjvm::jv.ShortClassRef,
6183 JMPIjvm::jv.ShortNewS,
6184 (jshort)s16[i]));
6185 return jshortA;
6186 }
6187 case CIMTYPE_UINT16:
6188 {
6189 Array<Uint16> u16;
|
6190 mark.hamzy 1.44
|
6191 mark.hamzy 1.62 cv->get (u16);
|
6192 mark.hamzy 1.20
|
6193 mark.hamzy 1.62 int s = u16.size ();
6194 jobjectArray jintA = (jobjectArray)jEnv->NewObjectArray (s,
6195 JMPIjvm::jv.UnsignedInt16ClassRef,
6196 0);
|
6197 schuur 1.3
|
6198 mark.hamzy 1.62 for (int i = 0; i < s; i++)
6199 jEnv->SetObjectArrayElement (jintA,
6200 i,
6201 jEnv->NewObject (JMPIjvm::jv.UnsignedInt16ClassRef,
6202 JMPIjvm::jv.UnsignedInt16NewI,
6203 (jint)u16[i]));
6204 return jintA;
|
6205 mark.hamzy 1.44 }
|
6206 mark.hamzy 1.62 case CIMTYPE_SINT32:
|
6207 mark.hamzy 1.44 {
|
6208 mark.hamzy 1.62 Array<Sint32> s32;
6209
6210 cv->get (s32);
|
6211 mark.hamzy 1.20
|
6212 mark.hamzy 1.62 int s = s32.size ();
6213 jobjectArray jintA = (jobjectArray)jEnv->NewObjectArray (s,
6214 JMPIjvm::jv.IntegerClassRef,
6215 0);
|
6216 mark.hamzy 1.20
|
6217 mark.hamzy 1.62 for (int i = 0; i < s; i++)
6218 jEnv->SetObjectArrayElement (jintA,
6219 i,
6220 jEnv->NewObject (JMPIjvm::jv.IntegerClassRef,
6221 JMPIjvm::jv.IntegerNewI,
6222 (jint)s32[i]));
6223 return jintA;
|
6224 mark.hamzy 1.44 }
|
6225 mark.hamzy 1.62 case CIMTYPE_UINT32:
6226 {
6227 Array<Uint32> u32;
|
6228 mark.hamzy 1.20
|
6229 mark.hamzy 1.62 cv->get (u32);
|
6230 mark.hamzy 1.20
|
6231 mark.hamzy 1.62 int s = u32.size ();
6232 jobjectArray jlongA = (jobjectArray)jEnv->NewObjectArray (s,
6233 JMPIjvm::jv.UnsignedInt32ClassRef,
6234 0);
|
6235 mark.hamzy 1.20
|
6236 mark.hamzy 1.62 for (int i = 0; i < s; i++)
6237 jEnv->SetObjectArrayElement (jlongA,
6238 i,
6239 jEnv->NewObject (JMPIjvm::jv.UnsignedInt32ClassRef,
6240 JMPIjvm::jv.UnsignedInt32NewJ,
6241 (jlong)u32[i]));
6242 return jlongA;
|
6243 mark.hamzy 1.44 }
|
6244 mark.hamzy 1.62 case CIMTYPE_SINT64:
|
6245 mark.hamzy 1.44 {
|
6246 mark.hamzy 1.62 Array<Sint64> s64;
6247
6248 cv->get (s64);
|
6249 mark.hamzy 1.44
|
6250 mark.hamzy 1.62 int s = s64.size ();
6251 jobjectArray jlongA = (jobjectArray)jEnv->NewObjectArray (s,
6252 JMPIjvm::jv.LongClassRef,
6253 0);
|
6254 mark.hamzy 1.44
|
6255 mark.hamzy 1.62 for (int i = 0; i < s; i++)
6256 jEnv->SetObjectArrayElement (jlongA,
6257 i,
6258 jEnv->NewObject (JMPIjvm::jv.LongClassRef,
6259 JMPIjvm::jv.LongNewJ,
6260 (jlong)s64[i]));
6261 return jlongA;
|
6262 mark.hamzy 1.44 }
|
6263 mark.hamzy 1.62 case CIMTYPE_UINT64:
6264 {
6265 Array<Uint64> u64;
|
6266 mark.hamzy 1.44
|
6267 mark.hamzy 1.62 cv->get (u64);
|
6268 mark.hamzy 1.44
|
6269 mark.hamzy 1.62 int s = u64.size ();
6270 jobjectArray ju64A = (jobjectArray)jEnv->NewObjectArray (s,
6271 JMPIjvm::jv.UnsignedInt64ClassRef,
6272 0);
|
6273 mark.hamzy 1.44
|
6274 mark.hamzy 1.62 for (int i = 0; i < s; i++)
6275 {
6276 std::ostringstream oss;
6277 jstring jString = 0;
6278 jobject jBIG = 0;
|
6279 mark.hamzy 1.44
|
6280 mark.hamzy 1.62 oss << u64[i] << ends;
|
6281 mark.hamzy 1.44
|
6282 mark.hamzy 1.62 jString = jEnv->NewStringUTF (oss.str ().c_str ());
|
6283 mark.hamzy 1.44
|
6284 mark.hamzy 1.62 if (jString)
6285 {
6286 jBIG = jEnv->NewObject (JMPIjvm::jv.UnsignedInt64ClassRef,
6287 JMPIjvm::jv.UnsignedInt64NewStr,
6288 jString);
6289 }
|
6290 mark.hamzy 1.44
|
6291 mark.hamzy 1.62 if (jBIG)
6292 {
6293 jEnv->SetObjectArrayElement (ju64A,
6294 i,
6295 jEnv->NewObject (JMPIjvm::jv.UnsignedInt64ClassRef,
6296 JMPIjvm::jv.UnsignedInt64NewBi,
6297 jBIG));
6298 }
6299 }
6300 return ju64A;
6301 }
6302 case CIMTYPE_REAL32:
6303 {
6304 Array<Real32> r32;
|
6305 schuur 1.3
|
6306 mark.hamzy 1.62 cv->get (r32);
|
6307 mark.hamzy 1.44
|
6308 mark.hamzy 1.62 int s = r32.size ();
6309 jobjectArray jfloatA = (jobjectArray)jEnv->NewObjectArray (s,
6310 JMPIjvm::jv.FloatClassRef,
6311 0);
|
6312 mark.hamzy 1.44
|
6313 mark.hamzy 1.62 for (int i = 0; i < s; i++)
6314 jEnv->SetObjectArrayElement (jfloatA,
6315 i,
6316 jEnv->NewObject (JMPIjvm::jv.FloatClassRef,
6317 JMPIjvm::jv.FloatNewF,
6318 (jfloat)r32[i]));
6319 return jfloatA;
6320 }
6321 case CIMTYPE_REAL64:
|
6322 mark.hamzy 1.44 {
|
6323 mark.hamzy 1.62 Array<Real64> r64;
|
6324 mark.hamzy 1.44
|
6325 mark.hamzy 1.62 cv->get (r64);
|
6326 mark.hamzy 1.20
|
6327 mark.hamzy 1.62 int s = r64.size ();
6328 jobjectArray jdoubleA = (jobjectArray)jEnv->NewObjectArray (s,
6329 JMPIjvm::jv.DoubleClassRef,
6330 0);
|
6331 schuur 1.3
|
6332 mark.hamzy 1.62 for (int i = 0; i < s; i++)
6333 jEnv->SetObjectArrayElement (jdoubleA,
6334 i,
6335 jEnv->NewObject (JMPIjvm::jv.DoubleClassRef,
6336 JMPIjvm::jv.DoubleNewD,
6337 (jdouble)r64[i]));
6338 return jdoubleA;
|
6339 mark.hamzy 1.44 }
|
6340 mark.hamzy 1.62 case CIMTYPE_STRING:
|
6341 mark.hamzy 1.44 {
|
6342 mark.hamzy 1.62 Array<String> str;
6343
6344 cv->get (str);
|
6345 mark.hamzy 1.44
|
6346 mark.hamzy 1.62 int s = str.size ();
6347 jobjectArray jstringA = (jobjectArray)jEnv->NewObjectArray (s,
6348 JMPIjvm::jv.StringClassRef,
6349 0);
|
6350 mark.hamzy 1.44
|
6351 mark.hamzy 1.62 for (int i = 0; i < s; i++)
6352 jEnv->SetObjectArrayElement (jstringA,
6353 i,
6354 jEnv->NewStringUTF (str[i].getCString ()));
6355 return jstringA;
|
6356 mark.hamzy 1.44 }
|
6357 mark.hamzy 1.62 case CIMTYPE_REFERENCE:
6358 {
6359 Array<CIMObjectPath> ref;
|
6360 mark.hamzy 1.44
|
6361 mark.hamzy 1.62 cv->get (ref);
|
6362 schuur 1.3
|
6363 mark.hamzy 1.62 int s = ref.size ();
6364 jobjectArray jrefA = (jobjectArray)jEnv->NewObjectArray (s,
6365 JMPIjvm::jv.CIMObjectPathClassRef,
6366 0);
|
6367 mark.hamzy 1.20
|
6368 mark.hamzy 1.62 for (int i = 0; i < s; i++)
6369 {
6370 jlong jOP = DEBUG_ConvertCToJava (CIMObjectPath*, jlong, new CIMObjectPath (ref[i]));
|
6371 mark.hamzy 1.20
|
6372 mark.hamzy 1.62 jEnv->SetObjectArrayElement (jrefA,
6373 i,
6374 jEnv->NewObject (JMPIjvm::jv.CIMObjectPathClassRef,
6375 JMPIjvm::jv.CIMObjectPathNewJ,
6376 jOP));
6377 }
6378 return jrefA;
6379 }
6380 case CIMTYPE_CHAR16:
6381 {
6382 Array<Char16> c16;
|
6383 schuur 1.3
|
6384 mark.hamzy 1.62 cv->get (c16);
|
6385 mark.hamzy 1.44
|
6386 mark.hamzy 1.62 int s = c16.size ();
6387 jobjectArray jc16A = (jobjectArray)jEnv->NewObjectArray (s,
6388 JMPIjvm::jv.CharacterClassRef,
6389 0);
|
6390 mark.hamzy 1.44
|
6391 mark.hamzy 1.62 for (int i = 0; i < s; i++)
6392 jEnv->SetObjectArrayElement (jc16A,
6393 i,
6394 jEnv->NewObject (JMPIjvm::jv.CharacterClassRef,
6395 JMPIjvm::jv.CharacterNewC,
6396 (jchar)c16[i]));
|
6397 mark.hamzy 1.44
|
6398 mark.hamzy 1.62 return jc16A;
|
6399 mark.hamzy 1.44 }
|
6400 mark.hamzy 1.62 case CIMTYPE_DATETIME:
|
6401 mark.hamzy 1.44 {
|
6402 mark.hamzy 1.62 Array<CIMDateTime> dt;
6403
6404 cv->get (dt);
6405
6406 int s = dt.size ();
6407 jobjectArray jdtA = (jobjectArray)jEnv->NewObjectArray (s,
6408 JMPIjvm::jv.CIMDateTimeClassRef,
6409 0);
|
6410 mark.hamzy 1.44
|
6411 mark.hamzy 1.62 for (int i = 0; i < s; i++)
6412 {
6413 jlong jDT = DEBUG_ConvertCToJava (CIMDateTime*, jlong, new CIMDateTime (dt[i]));
|
6414 mark.hamzy 1.44
|
6415 mark.hamzy 1.62 jEnv->SetObjectArrayElement (jdtA,
6416 i,
6417 jEnv->NewObject (JMPIjvm::jv.CIMDateTimeClassRef,
6418 JMPIjvm::jv.CIMDateTimeNewJ,
6419 jDT));
6420 }
6421 return jdtA;
|
6422 mark.hamzy 1.44 }
|
6423 mark.hamzy 1.62 case CIMTYPE_OBJECT:
6424 {
6425 Array<CIMObject> co;
|
6426 schuur 1.3
|
6427 mark.hamzy 1.62 cv->get (co);
|
6428 mark.hamzy 1.20
|
6429 mark.hamzy 1.62 int s = co.size ();
6430 jobjectArray jcoA = (jobjectArray)jEnv->NewObjectArray (s,
6431 JMPIjvm::jv.CIMObjectClassRef,
6432 0);
|
6433 mark.hamzy 1.20
|
6434 mark.hamzy 1.62 for (int i = 0; i < s; i++)
6435 {
6436 if (co[i].isClass ())
6437 {
6438 jlong jCC = DEBUG_ConvertCToJava (CIMClass*, jlong, new CIMClass (co[i]));
|
6439 schuur 1.3
|
6440 mark.hamzy 1.62 jEnv->SetObjectArrayElement (jcoA,
6441 i,
6442 jEnv->NewObject (JMPIjvm::jv.CIMObjectClassRef,
6443 JMPIjvm::jv.CIMObjectNewJZ,
6444 jCC,
6445 (jboolean)true));
6446 }
6447 else
6448 {
6449 jlong jCI = DEBUG_ConvertCToJava (CIMInstance*, jlong, new CIMInstance (co[i]));
|
6450 mark.hamzy 1.56
|
6451 mark.hamzy 1.62 jEnv->SetObjectArrayElement (jcoA,
6452 i,
6453 jEnv->NewObject (JMPIjvm::jv.CIMObjectClassRef,
6454 JMPIjvm::jv.CIMObjectNewJZ,
6455 jCI,
6456 (jboolean)false));
6457 }
6458 }
6459 return jcoA;
6460 }
6461 default:
6462 throwCIMException (jEnv,"+++ unsupported type: ");
|
6463 schuur 1.3 }
6464 }
|
6465 mark.hamzy 1.20
|
6466 mark.hamzy 1.62 return NULL;
|
6467 schuur 1.5 }
6468
|
6469 mark.hamzy 1.62 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1getType
6470 (JNIEnv *jEnv, jobject jThs, jlong jP)
|
6471 mark.hamzy 1.44 {
|
6472 mark.hamzy 1.62 CIMValue *cv = DEBUG_ConvertJavaToC (jlong, CIMValue*, jP);
6473 bool fSuccess = false;
|
6474 mark.hamzy 1.63 jint jiJType = 0;
|
6475 mark.hamzy 1.62
|
6476 mark.hamzy 1.63 jiJType = _dataType::convertCTypeToJavaType (cv->getType (), &fSuccess);
|
6477 mark.hamzy 1.56
|
6478 mark.hamzy 1.63 return jiJType;
|
6479 mark.hamzy 1.62 }
|
6480 schuur 1.6
|
6481 mark.hamzy 1.62 JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMValue__1isArray
6482 (JNIEnv *jEnv, jobject jThs, jlong jP)
6483 {
6484 CIMValue *cv = DEBUG_ConvertJavaToC (jlong, CIMValue*, jP);
|
6485 mark.hamzy 1.44
|
6486 mark.hamzy 1.62 return (jboolean)cv->isArray ();
6487 }
|
6488 mark.hamzy 1.56
|
6489 mark.hamzy 1.62 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMValue__1toString
6490 (JNIEnv *jEnv, jobject jThs, jlong jV)
6491 {
6492 CIMValue *cv = DEBUG_ConvertJavaToC (jlong, CIMValue*, jV);
|
6493 mark.hamzy 1.56
|
6494 mark.hamzy 1.62 return (jstring)jEnv->NewStringUTF (cv->toString ().getCString ());
|
6495 schuur 1.6 }
6496
|
6497 mark.hamzy 1.62 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMValue__1finalize
6498 (JNIEnv *jEnv, jobject jThs, jlong jV)
|
6499 mark.hamzy 1.20 {
|
6500 mark.hamzy 1.62 CIMValue *cv = DEBUG_ConvertJavaToC (jlong, CIMValue*, jV);
6501
6502 delete cv;
|
6503 schuur 1.5
|
6504 mark.hamzy 1.62 DEBUG_ConvertCleanup (jlong, jV);
6505 }
|
6506 schuur 1.6
6507
|
6508 mark.hamzy 1.62 // -------------------------------------
6509 // ---
6510 // - ClassEnumeration
6511 // ---
6512 // -------------------------------------
|
6513 schuur 1.5
|
6514 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_ClassEnumeration__1getClass
6515 (JNIEnv *jEnv, jobject jThs, jlong jEnum, jint pos)
6516 {
6517 Array<CIMClass> *enm = DEBUG_ConvertJavaToC (jlong, Array<CIMClass>*, jEnum);
|
6518 schuur 1.5
|
6519 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMClass*, jlong, new CIMClass ((*enm)[pos]));
|
6520 schuur 1.5 }
6521
|
6522 mark.hamzy 1.62 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_ClassEnumeration__1size
6523 (JNIEnv *jEnv, jobject jThs, jlong jEnum)
|
6524 mark.hamzy 1.20 {
|
6525 mark.hamzy 1.62 Array<CIMClass> *enm = DEBUG_ConvertJavaToC (jlong, Array<CIMClass>*, jEnum);
|
6526 mark.hamzy 1.30
|
6527 mark.hamzy 1.62 return enm->size ();
6528 }
|
6529 schuur 1.6
|
6530 mark.hamzy 1.56
|
6531 mark.hamzy 1.62 // -------------------------------------
6532 // ---
6533 // - InstEnumeration
6534 // ---
6535 // -------------------------------------
|
6536 mark.hamzy 1.56
|
6537 mark.hamzy 1.62 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_InstEnumeration__1getInstance
6538 (JNIEnv *jEnv, jobject jThs, jlong jEnum, jint pos)
6539 {
6540 Array<CIMInstance> *enm = DEBUG_ConvertJavaToC (jlong, Array<CIMInstance>*, jEnum);
|
6541 mark.hamzy 1.56
|
6542 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMInstance*, jlong, new CIMInstance ((*enm)[pos]));
|
6543 schuur 1.5 }
6544
|
6545 mark.hamzy 1.62 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_InstEnumeration__1size
6546 (JNIEnv *jEnv, jobject jThs, jlong jEnum)
|
6547 mark.hamzy 1.20 {
|
6548 mark.hamzy 1.62 Array<CIMInstance> *enm = DEBUG_ConvertJavaToC (jlong, Array<CIMInstance>*, jEnum);
|
6549 schuur 1.6
|
6550 mark.hamzy 1.62 return enm->size ();
6551 }
|
6552 mark.hamzy 1.20
|
6553 mark.hamzy 1.62 // -------------------------------------
6554 // ---
6555 // - JMPIQueryExp
6556 // ---
6557 // -------------------------------------
|
6558 schuur 1.6
|
6559 mark.hamzy 1.62 /*
6560 * Class: org_pegasus_jmpi_JMPIQueryExp
6561 * Method: _applyInstance
6562 * Signature: (II)Z
6563 */
6564 JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_JMPIQueryExp__1applyInstance
6565 (JNIEnv *jEnv, jobject jThs, jlong jWQLStmt, jlong jciInstance)
6566 {
6567 WQLSelectStatement *wql_stmt = DEBUG_ConvertJavaToC (jlong, WQLSelectStatement*, jWQLStmt);
6568 CIMInstance *ci = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jciInstance);
|
6569 schuur 1.6
|
6570 mark.hamzy 1.62 if ( !wql_stmt
6571 || !ci
6572 )
6573 {
6574 return 0;
6575 }
|
6576 mark.hamzy 1.56
|
6577 mark.hamzy 1.62 try
6578 {
6579 return wql_stmt->evaluate (*ci);
|
6580 schuur 1.6 }
|
6581 mark.hamzy 1.62 catch (const Exception &e)
6582 {
6583 cerr << "Java_org_pegasus_jmpi_JMPIQueryExp__1applyInstance: Caught: " << e.getMessage () << endl;
|
6584 mark.hamzy 1.24
|
6585 mark.hamzy 1.62 return false;
6586 }
|
6587 mark.hamzy 1.24 }
6588
|
6589 mark.hamzy 1.62
|
6590 mark.hamzy 1.38 // -------------------------------------
6591 // ---
|
6592 mark.hamzy 1.62 // - JMPISelectList
|
6593 mark.hamzy 1.38 // ---
6594 // -------------------------------------
6595
|
6596 mark.hamzy 1.62 /*
6597 * Class: org_pegasus_jmpi_JMPISelectList
6598 * Method: _applyInstance
6599 * Signature: (II)I
6600 */
6601 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_JMPISelectList__1applyInstance
6602 (JNIEnv *jEnv, jobject jThs, jlong jWQLStmt, jlong jciInstance)
|
6603 mark.hamzy 1.35 {
|
6604 mark.hamzy 1.62 WQLSelectStatement *wql_stmt = DEBUG_ConvertJavaToC (jlong, WQLSelectStatement*, jWQLStmt);
6605 CIMInstance *ci = DEBUG_ConvertJavaToC (jlong, CIMInstance*, jciInstance);
6606 CIMInstance *ciRet = 0;
6607
6608 if ( !wql_stmt
6609 || !ci
6610 )
6611 {
6612 return 0;
6613 }
6614
6615 ciRet = new CIMInstance (ci->clone ());
|
6616 mark.hamzy 1.35
|
6617 mark.hamzy 1.62 if (ciRet)
6618 {
6619 try
6620 {
6621 wql_stmt->applyProjection (*ciRet, false);
6622 }
6623 catch (const Exception &e)
6624 {
6625 cerr << "Java_org_pegasus_jmpi_JMPISelectList__1applyInstance: Caught: " << e.getMessage () << endl;
|
6626 mark.hamzy 1.35
|
6627 mark.hamzy 1.62 return 0;
6628 }
|
6629 mark.hamzy 1.35 }
6630
|
6631 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMInstance *, jlong, ciRet);
|
6632 mark.hamzy 1.35 }
6633
|
6634 mark.hamzy 1.62 /*
6635 * Class: org_pegasus_jmpi_JMPISelectList
6636 * Method: _applyClass
6637 * Signature: (II)I
6638 */
6639 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_JMPISelectList__1applyClass
6640 (JNIEnv *jEnv, jobject jThs, jlong jWQLStmt, jlong jciClass)
|
6641 mark.hamzy 1.35 {
|
6642 mark.hamzy 1.62 WQLSelectStatement *wql_stmt = DEBUG_ConvertJavaToC (jlong, WQLSelectStatement*, jWQLStmt);
6643 CIMClass *cc = DEBUG_ConvertJavaToC (jlong, CIMClass*, jciClass);
6644 CIMClass *ccRet = NULL;
6645
6646 if (!wql_stmt)
6647 {
6648 return 0;
6649 }
6650
6651 if (cc)
6652 {
6653 CIMObject co (cc->clone ());
6654
6655 try
6656 {
6657 wql_stmt->applyProjection (co, false);
6658 }
6659 catch (const Exception &e)
6660 {
6661 cerr << "Java_org_pegasus_jmpi_JMPISelectList__1applyClass: Caught: " << e.getMessage () << endl;
6662
6663 mark.hamzy 1.62 return 0;
6664 }
|
6665 mark.hamzy 1.35
|
6666 mark.hamzy 1.62 ccRet = new CIMClass (co);
|
6667 mark.hamzy 1.35
|
6668 mark.hamzy 1.62 return DEBUG_ConvertCToJava (CIMClass *, jlong, ccRet);
|
6669 mark.hamzy 1.35 }
6670
6671 return 0;
6672 }
6673
6674
|
6675 mark.hamzy 1.38 // -------------------------------------
6676 // ---
6677 // - OperationContext
6678 // ---
6679 // -------------------------------------
6680
|
6681 mark.hamzy 1.36 /*
6682 * Class: OperationContext
6683 * Method: _get
6684 * Signature: (ILjava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
6685 */
6686 JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_OperationContext__1get
|
6687 mark.hamzy 1.61 (JNIEnv *jEnv, jobject jThs, jlong jInst, jstring jContainer, jstring jKey)
|
6688 mark.hamzy 1.36 {
|
6689 mark.hamzy 1.61 OperationContext *poc = DEBUG_ConvertJavaToC (jlong, OperationContext*, jInst);
|
6690 mark.hamzy 1.36 jobject jRet = 0;
6691
6692 if (!poc)
6693 {
6694 return jRet;
6695 }
6696
6697 const char *pszContainer = jEnv->GetStringUTFChars (jContainer, NULL);
6698 const char *pszKey = jEnv->GetStringUTFChars (jKey, NULL);
6699 String container (pszContainer);
6700 String key (pszKey);
6701
6702 ///printf ("container: %s\n", pszContainer);
6703 ///printf ("key: %s\n", pszKey);
6704
6705 try {
6706 if (container == "IdentityContainer")
6707 {
6708 IdentityContainer ic = poc->get (IdentityContainer::NAME);
6709
6710 /////////printf ("ic\n");
6711 mark.hamzy 1.36
6712 if (key == "userName")
6713 {
6714 String userName = ic.getUserName ();
6715
6716 ////////////printf ("userName: %s\n", (const char*)userName.getCString ());
6717
6718 jRet = jEnv->NewStringUTF ((const char*)userName.getCString ());
6719 }
6720 }
6721 else if (container == "SubscriptionInstanceContainer")
6722 {
6723 SubscriptionInstanceContainer sic = poc->get (SubscriptionInstanceContainer::NAME);
6724
6725 if (key == "subscriptionInstance")
6726 {
6727 CIMInstance ci = sic.getInstance ();
|
6728 mark.hamzy 1.61 jlong jciRef = DEBUG_ConvertCToJava (CIMInstance*, jlong, new CIMInstance (ci));
|
6729 mark.hamzy 1.36
6730 jRet = jEnv->NewObject (JMPIjvm::jv.CIMInstanceClassRef,
|
6731 mark.hamzy 1.61 JMPIjvm::jv.CIMInstanceNewJ,
|
6732 mark.hamzy 1.36 jciRef);
6733 }
6734 }
6735 else if (container == "SubscriptionInstanceNamesContainer")
6736 {
6737 SubscriptionInstanceNamesContainer sinc = poc->get (SubscriptionInstanceNamesContainer::NAME);
6738
6739 if (key == "subscriptionInstanceNames")
6740 {
6741 Array<CIMObjectPath> copa = sinc.getInstanceNames ();
6742 jobjectArray jcopa = 0;
6743 int jcopaLength = copa.size ();
6744
|
6745 mark.hamzy 1.48 jcopa = (jobjectArray)jEnv->NewObjectArray (jcopaLength,
6746 JMPIjvm::jv.CIMObjectPathClassRef,
6747 0);
|
6748 mark.hamzy 1.36
6749 for (int i = 0; i < jcopaLength; i++)
6750 {
6751 jEnv->SetObjectArrayElement (jcopa,
6752 i,
6753 jEnv->NewObject (JMPIjvm::jv.CIMObjectPathClassRef,
|
6754 mark.hamzy 1.61 JMPIjvm::jv.CIMObjectPathNewJ,
|
6755 mark.hamzy 1.36 new CIMObjectPath (copa[i])));
6756 }
6757
6758 jRet = (jobject)jcopa;
6759 }
6760 }
6761 else if (container == "SubscriptionFilterConditionContainer")
6762 {
6763 SubscriptionFilterConditionContainer sfcc = poc->get (SubscriptionFilterConditionContainer::NAME);
6764
6765 /////////printf ("sfcc\n");
6766
6767 if (key == "filterCondition")
6768 {
6769 String filterCondition = sfcc.getFilterCondition ();
6770
6771 ////////////printf ("filterCondition: %s\n", (const char*)filterCondition.getCString ());
6772
6773 jRet = jEnv->NewStringUTF ((const char*)filterCondition.getCString ());
6774 }
6775 else if (key == "queryLanguage")
6776 mark.hamzy 1.36 {
6777 String queryLanguage = sfcc.getQueryLanguage ();
6778
6779 jRet = jEnv->NewStringUTF ((const char*)queryLanguage.getCString ());
6780 }
6781 }
6782 else if (container == "SubscriptionFilterQueryContainer")
6783 {
6784 SubscriptionFilterQueryContainer sfqc = poc->get (SubscriptionFilterQueryContainer::NAME);
6785
6786 if (key == "filterQuery")
6787 {
6788 String filterQuery = sfqc.getFilterQuery ();
6789
6790 jRet = jEnv->NewStringUTF ((const char*)filterQuery.getCString ());
6791 }
6792 else if (key == "queryLanguage")
6793 {
6794 String queryLanguage = sfqc.getQueryLanguage ();
6795
6796 jRet = jEnv->NewStringUTF ((const char*)queryLanguage.getCString ());
6797 mark.hamzy 1.36 }
6798 else if (key == "sourceNameSpace")
6799 {
6800 CIMNamespaceName cimNameSpaceName = sfqc.getSourceNameSpace ();
6801 String nameSpaceName = cimNameSpaceName.getString ();
6802
6803 jRet = jEnv->NewStringUTF ((const char*)nameSpaceName.getCString ());
6804 }
6805 }
6806 else if (container == "SnmpTrapOidContainer")
6807 {
6808 SnmpTrapOidContainer stoc = poc->get (SnmpTrapOidContainer::NAME);
6809
6810 if (key == "snmpTrapOid")
6811 {
6812 String snmpTrapOid = stoc.getSnmpTrapOid ();
6813
6814 jRet = jEnv->NewStringUTF ((const char*)snmpTrapOid.getCString ());
6815 }
6816 }
6817 }
|
6818 mark.hamzy 1.44 Catch (jEnv);
|
6819 mark.hamzy 1.36
6820 ///printf ("jRet: %08X\n", (int)jRet);
6821
6822 jEnv->ReleaseStringUTFChars (jContainer, pszContainer);
6823 jEnv->ReleaseStringUTFChars (jKey, pszKey);
6824
6825 return jRet;
6826 }
6827
|
6828 mark.hamzy 1.62
6829 // -------------------------------------
6830 // ---
6831 // - PathEnumeration
6832 // ---
6833 // -------------------------------------
6834
6835 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_PathEnumeration__1getObjectPath
6836 (JNIEnv *jEnv, jobject jThs, jlong jEnum, jint pos)
6837 {
6838 Array<CIMObjectPath> *enm = DEBUG_ConvertJavaToC (jlong, Array<CIMObjectPath>*, jEnum);
6839
6840 return DEBUG_ConvertCToJava (CIMObjectPath*, jlong, new CIMObjectPath ((*enm)[pos]));
6841 }
6842
6843 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_PathEnumeration__1size
6844 (JNIEnv *jEnv, jobject jThs, jlong jEnum)
6845 {
6846 Array<CIMObjectPath> *enm = DEBUG_ConvertJavaToC (jlong, Array<CIMObjectPath>*, jEnum);
6847
6848 return enm->size ();
6849 mark.hamzy 1.62 }
6850
6851
6852 // -------------------------------------
6853 // ---
6854 // - QualEnumeration
6855 // ---
6856 // -------------------------------------
6857
6858 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_QualEnumeration__1getQualifierType
6859 (JNIEnv *jEnv, jobject jThs, jlong jEnum, jint pos)
6860 {
6861 Array<CIMQualifierDecl> *enm = DEBUG_ConvertJavaToC (jlong, Array<CIMQualifierDecl>*, jEnum);
6862
6863 return DEBUG_ConvertCToJava (CIMQualifierDecl*, jlong, new CIMQualifierDecl ((*enm)[pos]));
6864 }
6865
6866 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_QualEnumeration__1size
6867 (JNIEnv *jEnv, jobject jThs, jlong jEnum)
6868 {
6869 Array<CIMQualifierDecl> *enm = DEBUG_ConvertJavaToC (jlong, Array<CIMQualifierDecl>*, jEnum);
6870 mark.hamzy 1.62
6871 return enm->size ();
6872 }
6873
6874
|
6875 mark.hamzy 1.38 // -------------------------------------
6876 // ---
6877 // - SelectExp
6878 // ---
6879 // -------------------------------------
6880
6881 /*
6882 * Class: org_pegasus_jmpi_SelectExp
6883 * Method: _finalize
6884 * Signature: (I)V
6885 */
6886 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_SelectExp__1finalize
|
6887 mark.hamzy 1.61 (JNIEnv *jEnv, jobject jThs, jlong jWQLStmt)
|
6888 mark.hamzy 1.38 {
|
6889 mark.hamzy 1.61 WQLSelectStatement *wql_stmt = DEBUG_ConvertJavaToC (jlong, WQLSelectStatement*, jWQLStmt);
|
6890 mark.hamzy 1.38
|
6891 mark.hamzy 1.42 delete wql_stmt;
|
6892 mark.hamzy 1.38
|
6893 mark.hamzy 1.61 DEBUG_ConvertCleanup (jlong, jWQLStmt);
|
6894 mark.hamzy 1.38 }
6895
6896 /*
6897 * Class: org_pegasus_jmpi_SelectExp
6898 * Method: _newSelectExp
6899 * Signature: (Ljava/lang/String;)I
6900 */
|
6901 mark.hamzy 1.61 JNIEXPORT jlong JNICALL Java_org_pegasus_jmpi_SelectExp__1newSelectExp
|
6902 mark.hamzy 1.38 (JNIEnv *jEnv, jobject jThs, jstring jQuery)
6903 {
6904 const char *pszQuery = jEnv->GetStringUTFChars (jQuery, NULL);
|
6905 mark.hamzy 1.42 WQLSelectStatement *wql_stmt = NULL;
|
6906 mark.hamzy 1.38 String queryLanguage (CALL_SIGN_WQL);
6907 String query (pszQuery);
6908
|
6909 mark.hamzy 1.42 wql_stmt = new WQLSelectStatement (queryLanguage, query);
|
6910 mark.hamzy 1.61 DDD (PEGASUS_STD (cout)<<"--- Java_org_pegasus_jmpi_SelectExp__1newSelectExp: wql_stmt = "<<PEGASUS_STD (hex)<< (long)wql_stmt<<PEGASUS_STD (dec)<<PEGASUS_STD (endl));
|
6911 mark.hamzy 1.42
6912 try
6913 {
6914 WQLParser::parse (query, *wql_stmt);
6915 }
6916 catch (const Exception &e)
6917 {
6918 cerr << "Java_org_pegasus_jmpi_SelectExp__1newSelectExp: Caught: " << e.getMessage () << endl;
6919 }
|
6920 mark.hamzy 1.38
6921 jEnv->ReleaseStringUTFChars (jQuery, pszQuery);
6922
|
6923 mark.hamzy 1.61 return DEBUG_ConvertCToJava (WQLSelectStatement *, jlong, wql_stmt);
|
6924 mark.hamzy 1.38 }
6925
6926 /*
6927 * Class: org_pegasus_jmpi_SelectExp
6928 * Method: _getSelectString
6929 * Signature: (I)Ljava/lang/String;
6930 */
6931 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_SelectExp__1getSelectString
|
6932 mark.hamzy 1.61 (JNIEnv *jEnv, jobject jThs, jlong jWQLStmt)
|
6933 mark.hamzy 1.38 {
|
6934 mark.hamzy 1.61 WQLSelectStatement *wql_stmt = DEBUG_ConvertJavaToC (jlong, WQLSelectStatement*, jWQLStmt);
|
6935 mark.hamzy 1.42 String cond;
6936
6937 if (wql_stmt)
6938 {
6939 try
6940 {
6941 cond = wql_stmt->getQuery ();
6942 }
6943 catch (const Exception &e)
6944 {
6945 cerr << "Java_org_pegasus_jmpi_SelectExp__1getSelectString: Caught: " << e.getMessage () << endl;
6946
6947 cond = "";
6948 }
6949 }
6950 else
6951 {
6952 cond = "";
6953 }
|
6954 mark.hamzy 1.38
|
6955 mark.hamzy 1.42 return (jstring)jEnv->NewStringUTF (cond.getCString ());
|
6956 mark.hamzy 1.38 }
6957
|
6958 schuur 1.5 } // extern "C"
|
6959 schuur 1.1
6960 PEGASUS_NAMESPACE_END
|