1 karl 1.12 //%2005////////////////////////////////////////////////////////////////////////
|
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 schuur 1.1 //
12 // Permission is hereby granted, free of charge, to any person obtaining a copy
13 // of this software and associated documentation files (the "Software"), to
14 // deal in the Software without restriction, including without limitation the
15 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
16 // sell copies of the Software, and to permit persons to whom the Software is
17 // furnished to do so, subject to the following conditions:
|
18 david.dillard 1.15 //
|
19 schuur 1.1 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
20 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
21 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
22 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
23 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
24 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
25 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27 //
28 //==============================================================================
29 //
30 // Author: Adrian Schuur, schuur@de.ibm.com
31 //
32 // Modified By: Adrian Dutta
33 // Andy Viciu
34 // Magda Vacarelu
|
35 david.dillard 1.15 // David Dillard, VERITAS Software Corp.
36 // (david.dillard@veritas.com)
|
37 mark.hamzy 1.24 // Mark Hamzy, hamzy@us.ibm.com
|
38 schuur 1.1 //
39 //%/////////////////////////////////////////////////////////////////////////////
40
41
42 #include "JMPIImpl.h"
43
|
44 konrad.r 1.14 #if defined(PEGASUS_PLATFORM_WIN32_IX86_MSVC)
45 #include <Pegasus/Common/DynamicLibrary.h>
46 #else
|
47 schuur 1.1 #include <dlfcn.h>
|
48 konrad.r 1.14 #endif
|
49 schuur 1.1 #include <iostream>
|
50 mark.hamzy 1.16 #include <sstream>
|
51 schuur 1.1
52 #include <Pegasus/Common/Config.h>
53 #include <Pegasus/Common/System.h>
54 #include <Pegasus/Common/CIMClass.h>
55 #include <Pegasus/Common/CIMInstance.h>
56 #include <Pegasus/Common/CIMObjectPath.h>
57 #include <Pegasus/Common/CIMProperty.h>
58 #include <Pegasus/Common/CIMType.h>
59 #include <Pegasus/Common/OperationContext.h>
60 #include <Pegasus/Provider/CIMOMHandle.h>
61 #include <Pegasus/Client/CIMClient.h>
|
62 schuur 1.3 #include <Pegasus/ProviderManager2/JMPI/JMPIProviderManager.h>
|
63 schuur 1.1
64 PEGASUS_USING_STD;
65 PEGASUS_NAMESPACE_BEGIN
66
67 JavaVM *JMPIjvm::jvm=NULL;
68 JvmVector JMPIjvm::jv;
|
69 schuur 1.2 int JMPIjvm::trace=0;
|
70 schuur 1.1
|
71 mark.hamzy 1.26 #ifdef PEGASUS_DEBUG
|
72 mark.hamzy 1.16 #define DDD(x) if (JMPIjvm::trace) x;
|
73 mark.hamzy 1.26 #else
74 #define DDD(x)
75 #endif
|
76 mark.hamzy 1.16
|
77 mark.hamzy 1.20 #include "Convert.h"
78
|
79 mark.hamzy 1.17 JMPIjvm::ClassTable JMPIjvm::_classTable;
80 JMPIjvm::ObjectTable JMPIjvm::_objectTable;
81
|
82 schuur 1.1 typedef struct {
83 int clsIndex;
84 const char * methodName;
85 const char * signature;
86 } METHOD_STRUCT;
87
88 const char* classNames[]={
|
89 mark.hamzy 1.26 /*00*/ "java/util/Vector" ,
90 /*01*/ "java/lang/Boolean",
91 /*02*/ "java/lang/Byte",
92 /*03*/ "java/lang/Short",
93 /*04*/ "java/lang/Integer",
94 /*05*/ "java/lang/Long",
95 /*06*/ "java/lang/Float",
96 /*07*/ "java/lang/Double",
97 /*08*/ "org/pegasus/jmpi/UnsignedInt8",
98 /*09*/ "org/pegasus/jmpi/UnsignedInt16",
99 /*10*/ "org/pegasus/jmpi/UnsignedInt32",
100 /*11*/ "org/pegasus/jmpi/UnsignedInt64",
101 /*12*/ "org/pegasus/jmpi/CIMObjectPath",
102 /*13*/ "org/pegasus/jmpi/CIMException",
103 /*14*/ "java/math/BigInteger",
104 /*15*/ "org/pegasus/jmpi/CIMProperty",
105 /*16*/ "org/pegasus/jmpi/CIMOMHandle",
106 /*17*/ "org/pegasus/jmpi/CIMClass",
107 /*18*/ "org/pegasus/jmpi/CIMInstance",
108 /*19*/ "org/pegasus/jmpi/CIMValue",
109 /*20*/ "java/lang/Object",
110 mark.hamzy 1.26 /*21*/ "java/lang/Throwable",
111 /*22*/ "java/lang/String",
112 /*23*/ "org/pegasus/jmpi/JarClassLoader",
113 /*24*/ "org/pegasus/jmpi/CIMDateTime",
114 /*25*/ "org/pegasus/jmpi/SelectExp",
115 /*26*/ "org/pegasus/jmpi/CIMQualifier",
116 /*27*/ "org/pegasus/jmpi/CIMQualifierType",
117 /*28*/ "org/pegasus/jmpi/CIMFlavor",
118 /*29*/ "org/pegasus/jmpi/CIMArgument",
119 /*30*/ "org/pegasus/jmpi/CIMInstanceException",
|
120 schuur 1.1 };
121
122 const METHOD_STRUCT instanceMethodNames[]={
|
123 mark.hamzy 1.26 /*00*/ { 0, "<init>", "()V" },
124 /*01*/ { 1, "<init>", "(Z)V" },
125 /*02*/ { 2, "<init>", "(B)V" },
126 /*03*/ { 3, "<init>", "(S)V" },
127 /*04*/ { 4, "<init>", "(I)V" },
128 /*05*/ { 5, "<init>", "(J)V" }, // ???
129 /*06*/ { 6, "<init>", "(F)V" },
130 /*07*/ { 7, "<init>", "(D)V" },
131 /*08*/ { 8, "<init>", "(S)V" },
132 /*09*/ { 9, "<init>", "(I)V" },
133 /*10*/ { 10, "<init>", "(J)V" },
134 /*11*/ { 11, "<init>", "(Ljava/math/BigInteger;)V" },
135 /*12*/ { 12, "<init>", "(I)V" },
136 /*13*/ { 13, "<init>", "(Ljava/lang/String;)V" },
137 /*14*/ { 15, "<init>", "(I)V" },
138 /*15*/ { 0, "addElement", "(Ljava/lang/Object;)V" },
139 /*16*/ { 0, "elementAt", "(I)Ljava/lang/Object;" },
140 /*17*/ { 16, "<init>", "(ILjava/lang/String;)V" },
141 /*18*/ { 13, "<init>", "(I)V" },
142 /*19*/ { 17, "<init>", "(I)V" },
143 /*20*/ { 18, "<init>", "(I)V" },
144 mark.hamzy 1.26 /*21*/ { 12, "cInst", "()I" },
145 /*22*/ { 18, "cInst", "()I" },
146 /*23*/ { 17, "cInst", "()I" },
147 /*24*/ { 20, "toString", "()Ljava/lang/String;" },
148 /*25*/ { 21, "getMessage", "()Ljava/lang/String;" },
149 /*26*/ { 13, "getID", "()Ljava/lang/String;" },
150 /*27*/ { 0, "size", "()I" },
151 /*28*/ { 15, "cInst", "()I" },
152 /*29*/ { 16, "getClass", "(Lorg/pegasus/jmpi/CIMObjectPath;Z)Lorg/pegasus/jmpi/CIMClass;" },
153 /*30*/ { 0, "removeElementAt", "(I)V" },
154 /*31*/ { 19, "cInst", "()I" },
155 /*32*/ { 13, "<init>", "(ILjava/lang/String;)V" },
156 /*33*/ { 13, "getCode", "()I" },
157 /*34*/ { 24, "<init>", "(I)V" },
158 /*35*/ { 25, "<init>", "(I)V" },
159 /*36*/ { 26, "<init>", "(I)V" },
160 /*37*/ { 28, "<init>", "(I)V" },
161 /*38*/ { 28, "getFlavor", "()I" },
162 /*49*/ { 29, "cInst", "()I" },
163 /*40*/ { 29, "<init>", "(I)V" },
164 /*41*/ { 13, "<init>", "()V" },
165 mark.hamzy 1.26 /*42*/ { 13, "<init>", "(Ljava/lang/String;Ljava/lang/Object;)V" },
166 /*43*/ { 13, "<init>", "(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V" },
167 /*44*/ { 13, "<init>", "(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V" },
168 /*45*/ { 19, "<init>", "(I)V" },
|
169 schuur 1.1 };
170
171 const METHOD_STRUCT staticMethodNames[]={
|
172 mark.hamzy 1.26 /*00*/ { 14, "valueOf", "(J)Ljava/math/BigInteger;" },
173 /*01*/ { 23, "load", "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Class;" },
|
174 schuur 1.1 };
175
176 static int methodInitDone=0;
177
|
178 mark.hamzy 1.26 jclass classRefs[sizeof(classNames)/sizeof(classNames[0])];
179 jmethodID instanceMethodIDs[sizeof(instanceMethodNames)/sizeof(instanceMethodNames[0])];
180 jmethodID staticMethodIDs[sizeof(staticMethodNames)/sizeof(staticMethodNames[0])];
|
181 mark.hamzy 1.20
|
182 mark.hamzy 1.26 jclass JMPIjvm::getGlobalClassRef(JNIEnv *env, const char* name)
183 {
|
184 schuur 1.1 jclass localRefCls=env->FindClass(name);
|
185 mark.hamzy 1.16
|
186 mark.hamzy 1.18 DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getGlobalClassRef: localRefCls = "<<PEGASUS_STD(hex)<<(int)localRefCls<<PEGASUS_STD(dec)<<", name = "<<name<<PEGASUS_STD(endl));
|
187 mark.hamzy 1.16
188 if (localRefCls==NULL)
189 return JNI_FALSE;
190
|
191 schuur 1.1 jclass globalRefCls=(jclass) env->NewGlobalRef(localRefCls);
|
192 mark.hamzy 1.16
|
193 schuur 1.1 env->DeleteLocalRef(localRefCls);
|
194 mark.hamzy 1.16
|
195 schuur 1.1 return globalRefCls;
196 }
197
|
198 mark.hamzy 1.26 JMPIjvm::JMPIjvm()
199 {
|
200 schuur 1.1 initJVM();
201 }
202
|
203 mark.hamzy 1.26 JMPIjvm::~JMPIjvm()
204 {
|
205 schuur 1.1 }
206
|
207 mark.hamzy 1.26 int JMPIjvm::cacheIDs(JNIEnv *env)
208 {
|
209 mark.hamzy 1.16 DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): enter"<<PEGASUS_STD(endl));
210
211 if (methodInitDone==1)
212 return JNI_TRUE;
213 if (methodInitDone==-1)
214 return JNI_FALSE;
|
215 schuur 1.1
216 methodInitDone=-1;
|
217 mark.hamzy 1.16
|
218 mark.hamzy 1.26 for (unsigned i=0; i<(sizeof(classNames)/sizeof(classNames[0])); i++) {
|
219 mark.hamzy 1.16 //////DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): Trying "<<classNames[i]<<PEGASUS_STD(endl));
220 if ((classRefs[i]=getGlobalClassRef(env,classNames[i]))==NULL)
221 {
222 DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): Error: Count not find global class ref for "<<classNames[i]<<PEGASUS_STD(endl));
223
224 return JNI_FALSE;
225 }
|
226 schuur 1.1 }
|
227 schuur 1.7
|
228 mark.hamzy 1.26 for (unsigned j=0; j<(sizeof(instanceMethodNames)/sizeof(instanceMethodNames[0])); j++) {
|
229 mark.hamzy 1.16 //////DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): Trying "<<j<<": "<<classNames[instanceMethodNames[j].clsIndex]<<": "<<instanceMethodNames[j].methodName<<PEGASUS_STD(endl));
230 if ((instanceMethodIDs[j]=env->GetMethodID(classRefs[instanceMethodNames[j].clsIndex],
231 instanceMethodNames[j].methodName,instanceMethodNames[j].signature))==NULL)
232 {
233 DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): Error could not get method id for "<<classNames[instanceMethodNames[j].clsIndex]<<": "<<instanceMethodNames[j].methodName<<PEGASUS_STD(endl));
|
234 schuur 1.1 return 0;
|
235 mark.hamzy 1.17 }
|
236 mark.hamzy 1.16 }
|
237 schuur 1.1
|
238 mark.hamzy 1.26 for (unsigned k=0; k<(sizeof(staticMethodNames)/sizeof(staticMethodNames[0])); k++) {
|
239 mark.hamzy 1.16 //////DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): Trying "<<k<<": "<<classNames[staticMethodNames[k].clsIndex]<<": "<<staticMethodNames[k].methodName<<PEGASUS_STD(endl));
240 if ((staticMethodIDs[k]=env->GetStaticMethodID(classRefs[staticMethodNames[k].clsIndex],
241 staticMethodNames[k].methodName,staticMethodNames[k].signature))==NULL)
242 {
243 DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): Error could not get method id for "<<classNames[staticMethodNames[k].clsIndex]<<": "<<staticMethodNames[k].methodName<<PEGASUS_STD(endl));
244 return 0;
245 }
246 }
247
248 DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::cacheIDs(): exit"<<PEGASUS_STD(endl));
249
|
250 schuur 1.1 methodInitDone=1;
|
251 mark.hamzy 1.16
|
252 schuur 1.1 return JNI_TRUE;
253 }
254
|
255 mark.hamzy 1.26 static void throwCIMException(JNIEnv *env,char *e)
256 {
257 env->ThrowNew(JMPIjvm::jv.CIMExceptionClassRef,e);
|
258 schuur 1.1 }
259
|
260 schuur 1.3 int JMPIjvm::destroyJVM()
261 {
|
262 mark.hamzy 1.16 DDD(PEGASUS_STD(cerr)<<"--- JPIjvm::destroyJVM()"<<PEGASUS_STD(endl));
263
|
264 mark.hamzy 1.26 #ifdef JAVA_DESTROY_VM_WORKS
|
265 schuur 1.3 if (jvm!=NULL) {
266 JvmVector *jv;
|
267 mark.hamzy 1.26
|
268 schuur 1.3 attachThread(&jv);
269 jvm->DestroyJavaVM();
|
270 mark.hamzy 1.26
271 jvm = NULL;
272
|
273 schuur 1.3 return 0;
274 }
|
275 mark.hamzy 1.26 #endif
|
276 mark.hamzy 1.16
|
277 schuur 1.3 return -1;
278 }
279
|
280 schuur 1.1 int JMPIjvm::initJVM()
281 {
282 JavaVMInitArgs vm_args;
283 jint res;
|
284 mark.hamzy 1.16 char *envstring;
|
285 schuur 1.1 JNIEnv *env;
|
286 mark.hamzy 1.16 JavaVMOption *poptions = 0;
287 int maxoption = 0;
288 Array<std::string> JNIoptions;
289 static const char *aENVoptions[][2] = {
290 { "CLASSPATH", "-Djava.class.path=" },
291 { "PEGASUS_JMPI_MAX_HEAP", "-Xmx" },
292 { "PEGASUS_JMPI_INITIAL_HEAP", "-Xms" },
293 { "PEGASUS_JMPI_JAVA_THREAD_STACK_SIZE", "-Xss" }
294 };
295 std::ostringstream oss;
|
296 schuur 1.9
297 #ifdef PEGASUS_DEBUG
|
298 mark.hamzy 1.16 if (getenv("PEGASUS_JMPI_TRACE")) JMPIjvm::trace=1;
299 else JMPIjvm::trace=0;
|
300 schuur 1.9 #else
|
301 mark.hamzy 1.16 JMPIjvm::trace=0;
|
302 schuur 1.9 #endif
|
303 schuur 1.2
|
304 mark.hamzy 1.16 DDD(PEGASUS_STD(cout) << "--- JMPIjvm::initJVM()" << PEGASUS_STD(endl));
305
|
306 schuur 1.1 jv.initRc=0;
307
|
308 mark.hamzy 1.16 envstring=getenv("CLASSPATH");
309 if (envstring==NULL) {
310 jv.initRc=1;
311
312 DDD(PEGASUS_STD(cerr) << "--- JMPIjvm::initJVM(): No CLASSPATH environment variable found" << PEGASUS_STD(endl));
313
314 return -1;
315 }
316
|
317 mark.hamzy 1.20 ///JNIoptions.append ("-Djava.compiler=NONE");
318 ///maxoption++;
319
|
320 mark.hamzy 1.16 for (Uint32 i = 0; i < (int)(sizeof (aENVoptions)/sizeof (aENVoptions[0])); i++)
321 {
322 const char *name = aENVoptions[i][0];
323
324 envstring = getenv (name);
325 if (envstring)
326 {
327 maxoption++;
328
329 oss.str ("");
330 oss << aENVoptions[i][1] << envstring;
331
332 JNIoptions.append (oss.str ());
333
334 DDD(PEGASUS_STD(cout) << "--- JMPIjvm::initJVM(): " << name << " found! Specifying \"" << oss.str () << "\"" << PEGASUS_STD(endl));
335 }
336 }
337
338 poptions = (JavaVMOption *)calloc (maxoption, sizeof (JavaVMOption));
339 if (!poptions)
340 {
|
341 schuur 1.1 jv.initRc=1;
|
342 mark.hamzy 1.16
343 DDD(PEGASUS_STD(cerr) << "--- JMPIjvm::initJVM(): Could not allocate " << maxoption << " structures of size " << sizeof (JavaVMOption) << PEGASUS_STD(endl));
344
|
345 schuur 1.1 return -1;
346 }
347
|
348 mark.hamzy 1.16 for (Uint32 i=0; i < JNIoptions.size(); i++)
349 {
350 poptions[i].optionString = (char *)JNIoptions[i].c_str ();
351
352 DDD(PEGASUS_STD(cout) << "--- JMPIjvm::initJVM(): Setting option " << i << " to \"" << poptions[i].optionString << "\"" << PEGASUS_STD(endl));
353 }
354
|
355 schuur 1.1 vm_args.version=0x00010002;
|
356 mark.hamzy 1.16 vm_args.options=poptions;
357 vm_args.nOptions=maxoption;
|
358 schuur 1.1 vm_args.ignoreUnrecognized=JNI_TRUE;
359
360 res=JNI_CreateJavaVM(&jvm,(void**)&env,&vm_args);
|
361 mark.hamzy 1.16
362 if (poptions)
363 {
364 free (poptions);
365 }
366
|
367 schuur 1.1 if (res!=0) {
|
368 mark.hamzy 1.16 DDD(PEGASUS_STD(cerr) << "--- JMPIjvm::initJVM(): Can not create Java VM"<<PEGASUS_STD(endl));
369
|
370 schuur 1.1 exit(1);
371 }
372 jv.jvm=jvm;
373 jv.env=env;
374
375 if (cacheIDs(env)==1) {
376 jv.classRefs=classRefs;
377 jv.instMethodIDs=instanceMethodIDs;
|
378 mark.hamzy 1.26 jv.staticMethodIDs=staticMethodIDs;
|
379 schuur 1.1 }
380
381 if (env->ExceptionOccurred()) {
382 env->ExceptionDescribe();
383 exit(1);
384 }
385
386 return res;
387 }
388
389 JNIEnv* JMPIjvm::attachThread(JvmVector **jvp) {
390 JNIEnv* env;
391 if (jvm==NULL) initJVM();
392 jvm->AttachCurrentThread((void**)&env,NULL);
393 *jvp=&jv;
394 return env;
395 }
396
|
397 mark.hamzy 1.26 void JMPIjvm::detachThread()
398 {
|
399 schuur 1.1 jvm->DetachCurrentThread();
400 }
401
402 jobject JMPIjvm::getProvider(JNIEnv *env, String jar, String cln,
403 const char *cn, jclass *cls)
404 {
|
405 mark.hamzy 1.17 jobject gProv=NULL;
406 jclass scls=NULL;
|
407 mark.hamzy 1.16
|
408 mark.hamzy 1.18 DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: jar = "<<jar<<", cln = "<<cln<<", cn = "<<cn<<", cls = "<<cls<<PEGASUS_STD(endl));
|
409 mark.hamzy 1.17
410 _objectTable.lookup(cln,gProv);
411 _classTable.lookup(cln,scls);
|
412 mark.hamzy 1.18 DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: gProv = "<<PEGASUS_STD(hex)<<(int)gProv<<", scls = "<<(int)scls<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
|
413 mark.hamzy 1.16
|
414 schuur 1.1 if (gProv) {
415 *cls=scls;
416 return gProv;
417 }
418
419 /*
|
420 mark.hamzy 1.16 DDD(PEGASUS_STD(cout)<<"--- jar: "<<jar<<PEGASUS_STD(endl));
421 DDD(PEGASUS_STD(cout)<<"--- cln: "<<cln<<PEGASUS_STD(endl));
|
422 schuur 1.1
423 jstring jjar=env->NewStringUTF((const char*)jar.getCString());
424 jstring jcln=env->NewStringUTF((const char*)cln.getCString());
425
|
426 mark.hamzy 1.26 jclass jcls=(jclass)env->CallStaticObjectMethod(JMPIjvm::jv.JarClassLoaderRef,jv.JarClassLoaderLoad,
|
427 schuur 1.1 jjar,jcln);
428 if (env->ExceptionCheck()) {
429 env->ExceptionDescribe();
|
430 mark.hamzy 1.16 PEGASUS_STD(cerr)<<"--- Unable to instantiate provider "<<cn<<PEGASUS_STD(endl);
431 ////////return NULL;
|
432 schuur 1.1 }
433 */
434
435 scls=getGlobalClassRef(env,(const char*)cln.getCString());
436 if (env->ExceptionCheck()) {
|
437 mark.hamzy 1.18 DDD(PEGASUS_STD(cerr)<<"--- JMPIjvm::getProvider: Provider "<<cn<<" not found"<<PEGASUS_STD(endl));
|
438 mark.hamzy 1.16 DDD(env->ExceptionDescribe());
439
|
440 schuur 1.1 return NULL;
441 }
|
442 mark.hamzy 1.17 *cls=scls;
443
444 if (scls)
445 {
|
446 mark.hamzy 1.18 DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: scls = "<<PEGASUS_STD(hex)<<(int)scls<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
|
447 mark.hamzy 1.17 _classTable.insert(cln,scls);
448 }
|
449 schuur 1.1
450 jmethodID id=env->GetMethodID(*cls,"<init>","()V");
451 jobject lProv=env->NewObject(*cls,id);
452 gProv=(jobject)env->NewGlobalRef(lProv);
453 if (env->ExceptionCheck()) {
|
454 mark.hamzy 1.16 DDD(PEGASUS_STD(cerr)<<"--- Unable to instantiate provider "<<cn<<PEGASUS_STD(endl));
|
455 schuur 1.1 return NULL;
456 }
|
457 mark.hamzy 1.17
458 if (gProv)
459 {
|
460 mark.hamzy 1.18 DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: gProv = "<<PEGASUS_STD(hex)<<(int)gProv<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
|
461 mark.hamzy 1.17 _objectTable.insert(cln,gProv);
462 }
463
|
464 schuur 1.1 return gProv;
465 }
466
467 jobject JMPIjvm::getProvider(JNIEnv *env, const char *cn, jclass *cls)
468 {
|
469 mark.hamzy 1.17 String cln = cn;
470 jobject gProv=NULL;
471 jclass scls=NULL;
|
472 mark.hamzy 1.16
|
473 mark.hamzy 1.18 DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: cn = "<<cn<<", cls = "<<cls<<PEGASUS_STD(endl));
|
474 mark.hamzy 1.17
475 _objectTable.lookup(cln,gProv);
476 _classTable.lookup(cln,scls);
|
477 mark.hamzy 1.18 DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: gProv = "<<PEGASUS_STD(hex)<<(int)gProv<<", scls = "<<(int)scls<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
|
478 mark.hamzy 1.16
|
479 schuur 1.1 if (gProv) {
480 *cls=scls;
481 return gProv;
482 }
483
484 scls=getGlobalClassRef(env,cn);
485 if (env->ExceptionCheck()) {
|
486 mark.hamzy 1.18 DDD(PEGASUS_STD(cerr)<<"--- JMPIjvm::getProvider: Provider "<<cn<<" not found"<<PEGASUS_STD(endl));
|
487 mark.hamzy 1.16 DDD(env->ExceptionDescribe());
488
|
489 schuur 1.1 return NULL;
490 }
|
491 mark.hamzy 1.17 *cls=scls;
492
493 if (scls)
494 {
|
495 mark.hamzy 1.18 DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: scls = "<<PEGASUS_STD(hex)<<(int)scls<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
|
496 mark.hamzy 1.17 _classTable.insert(cln,scls);
497 }
|
498 schuur 1.1
499 jmethodID id=env->GetMethodID(*cls,"<init>","()V");
500 jobject lProv=env->NewObject(*cls,id);
501 gProv=(jobject)env->NewGlobalRef(lProv);
502 if (env->ExceptionCheck()) {
|
503 mark.hamzy 1.16 DDD(PEGASUS_STD(cerr)<<"--- Unable to instantiate provider "<<cn<<PEGASUS_STD(endl));
|
504 schuur 1.1 return NULL;
505 }
|
506 mark.hamzy 1.17
507 if (gProv)
508 {
|
509 mark.hamzy 1.18 DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::getProvider: gProv = "<<PEGASUS_STD(hex)<<(int)gProv<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
|
510 mark.hamzy 1.17 _objectTable.insert(cln,gProv);
511 }
512
|
513 schuur 1.1 return gProv;
514 }
515
516 void JMPIjvm::checkException(JNIEnv *env)
517 {
518 if (env->ExceptionCheck()) {
|
519 schuur 1.7 jstring jMsg=NULL,jId=NULL;
520 int code;
521 const char *cp;
522 String msg=String::EMPTY,id=String::EMPTY;
523
|
524 schuur 1.1 jthrowable err=env->ExceptionOccurred();
|
525 mark.hamzy 1.16 DDD(env->ExceptionDescribe());
|
526 schuur 1.7 if (env->IsInstanceOf(err,JMPIjvm::jv.CIMExceptionClassRef)) {
527 env->ExceptionClear();
528 if (err) {
529 jMsg=(jstring)env->CallObjectMethod(err,JMPIjvm::jv.ThrowableGetMessage);
530 code=(int)env->CallIntMethod(err,JMPIjvm::jv.CIMExceptionGetCode);
531 jId=(jstring)env->CallObjectMethod(err,JMPIjvm::jv.CIMExceptionGetID);
532 if (jId) {
533 cp=env->GetStringUTFChars(jId,NULL);
534 id=String(cp);
535 env->ReleaseStringUTFChars(jId,cp);
536 }
537
538 if (jMsg) {
539 cp=env->GetStringUTFChars(jMsg,NULL);
540 msg=String(cp);
541 env->ReleaseStringUTFChars(jMsg,cp);
542 }
|
543 mark.hamzy 1.16
544 DDD(PEGASUS_STD(cerr)<<"--- throwing Pegasus exception: "<<code<<" "<<id<<" ("<<msg<<")"<<PEGASUS_STD(endl));
545
|
546 schuur 1.7 throw CIMException((CIMStatusCode)code,id+" ("+msg+")");
|
547 mark.hamzy 1.17 }
|
548 schuur 1.7 }
549 else {
550 env->ExceptionDescribe();
551 exit(13);
|
552 schuur 1.1 }
|
553 schuur 1.7 }
|
554 schuur 1.2 }
|
555 schuur 1.1
556 /**************************************************************************
557 * name - NewPlatformString
558 * description - Returns a new Java string object for the specified
559 * platform string.
560 * parameters - env
561 * s Platform encoded string
562 * returns - Java string object pointer or null (0)
563 **************************************************************************/
564 jstring JMPIjvm::NewPlatformString(JNIEnv *env, char *s)
565 {
566 size_t len = strlen(s);
567 jclass cls;
568 jmethodID mid;
569 jbyteArray ary;
570
571 NULL_CHECK0(cls = (*env).FindClass("java/lang/String"));
572 NULL_CHECK0(mid = (*env).GetMethodID(cls, "<init>", "([B)V"));
573 ary = (*env).NewByteArray((jsize)len);
574 if (ary != 0) {
575 jstring str = 0;
576 schuur 1.1 (*env).SetByteArrayRegion(ary, 0, (jsize)len,
577 (jbyte *)s);
578 if (!(*env).ExceptionOccurred()) {
579 str = (jstring)(*env).NewObject(cls, mid, ary);
580 }
581 (*env).DeleteLocalRef(ary);
582 return str;
583 }
584 return 0;
585 }
586
587
588 /**************************************************************************
589 * name - NewPlatformStringArray
590 * description - Returns a new array of Java string objects for the specified
591 * array of platform strings.
592 * parameters - env
593 * strv Platform encoded string array
594 * strc Number of strings in strv
595 * returns - Java string array object pointer
596 **************************************************************************/
597 schuur 1.1 jobjectArray JMPIjvm::NewPlatformStringArray(JNIEnv *env, char **strv, int strc)
598 {
599 jarray cls;
600 jarray ary;
601 int i;
602
603 NULL_CHECK0(cls = (jarray)(*env).FindClass("java/lang/String"));
604 NULL_CHECK0(ary = (*env).NewObjectArray(strc, (jclass)cls, 0));
605 for (i = 0; i < strc; i++) {
606 jstring str = NewPlatformString(env, *strv++);
607 NULL_CHECK0(str);
608 (*env).SetObjectArrayElement((jobjectArray)ary, i, str);
609 (*env).DeleteLocalRef(str);
610 }
611 return (jobjectArray)ary;
612 }
613
614
615
616
617
618 schuur 1.1 extern "C" {
619
620
621 void throwCimException(JNIEnv *jEnv, CIMException & e) {
622 JMPIjvm::cacheIDs(jEnv);
|
623 mark.hamzy 1.26 jobject ev=jEnv->NewObject(JMPIjvm::jv.CIMExceptionClassRef,JMPIjvm::jv.CIMExceptionNewI,(jint)e.getCode());
|
624 schuur 1.1 jEnv->Throw((jthrowable)ev);
625 }
626
627 void throwFailedException(JNIEnv *jEnv) {
628 JMPIjvm::cacheIDs(jEnv);
|
629 mark.hamzy 1.26 jobject ev=jEnv->NewObject(JMPIjvm::jv.CIMExceptionClassRef,JMPIjvm::jv.CIMExceptionNewI,1);
|
630 schuur 1.1 jEnv->Throw((jthrowable)ev);
631 }
632
633 void throwNotSupportedException(JNIEnv *jEnv) {
634 JMPIjvm::cacheIDs(jEnv);
|
635 mark.hamzy 1.26 jobject ev=jEnv->NewObject(JMPIjvm::jv.CIMExceptionClassRef,JMPIjvm::jv.CIMExceptionNewI,7);
|
636 schuur 1.1 jEnv->Throw((jthrowable)ev);
637 }
638
639
|
640 schuur 1.7
641
642 // -------------------------------------
643 // ---
644 // - CIMException
645 // ---
646 // -------------------------------------
647
648 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMInstanceException__1new
649 (JNIEnv *jEnv, jobject jThs) {
|
650 mark.hamzy 1.26 jEnv->CallNonvirtualVoidMethod(jThs,JMPIjvm::jv.CIMExceptionClassRef,JMPIjvm::jv.CIMExceptionNew);
|
651 schuur 1.7 }
652
653 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMInstanceException__1newS
654 (JNIEnv *jEnv, jobject jThs, jstring jM) {
|
655 mark.hamzy 1.26 jEnv->CallNonvirtualVoidMethod(jThs,JMPIjvm::jv.CIMExceptionClassRef,JMPIjvm::jv.CIMExceptionNewSt,jM);
|
656 schuur 1.7 }
657
658 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMInstanceException__1newSO
659 (JNIEnv *jEnv, jobject jThs, jstring jM, jobject jO1) {
|
660 mark.hamzy 1.26 jEnv->CallNonvirtualVoidMethod(jThs,JMPIjvm::jv.CIMExceptionClassRef,JMPIjvm::jv.CIMExceptionNewStOb,jM,jO1);
|
661 schuur 1.7 }
662
663 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMInstanceException__1newSOO
664 (JNIEnv *jEnv, jobject jThs, jstring jM, jobject jO1, jobject jO2) {
|
665 mark.hamzy 1.26 jEnv->CallNonvirtualVoidMethod(jThs,JMPIjvm::jv.CIMExceptionClassRef,JMPIjvm::jv.CIMExceptionNewStObOb,jM,jO1,jO2);
|
666 schuur 1.7 }
667
668 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMInstanceException__1newSOOO
669 (JNIEnv *jEnv, jobject jThs, jstring jM, jobject jO1, jobject jO2, jobject jO3) {
|
670 mark.hamzy 1.26 jEnv->CallNonvirtualVoidMethod(jThs,JMPIjvm::jv.CIMExceptionClassRef,JMPIjvm::jv.CIMExceptionNewStObObOb,jM,jO1,jO2,jO3);
|
671 schuur 1.7 }
672
673
674
|
675 schuur 1.1 // -------------------------------------
676 // ---
677 // - CIMOMHandle
678 // ---
679 // -------------------------------------
680
|
681 schuur 1.7 CIMPropertyList getList(JNIEnv *jEnv, jobjectArray l) {
682 CIMPropertyList pl;
683 if (l) {
684 Array<CIMName> n;
685 for (jsize i=0,s=jEnv->GetArrayLength(l); i<s; i++) {
686 jstring jObj=(jstring)jEnv->GetObjectArrayElement(l,i);
687 const char *pn=jEnv->GetStringUTFChars(jObj,NULL);
688 n.append(pn);
689 jEnv->ReleaseStringUTFChars(jObj,pn);
690 }
691 pl.set(n);
692 }
693 return pl;
694 }
695
|
696 schuur 1.1 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1getClass
|
697 schuur 1.7 (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop, jboolean lo,
|
698 mark.hamzy 1.20 jboolean iq, jboolean ic, jobjectArray jPl)
699 {
700 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);
701 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
702 CIMPropertyList pl;
703 OperationContext ctx;
704
705 if (jPl)
706 pl=getList(jEnv,jPl);
707 else
708 pl=CIMPropertyList();
709
|
710 schuur 1.1 try {
|
711 mark.hamzy 1.20 CIMClass cls=ch->getClass(ctx,cop->getNameSpace(),
712 cop->getClassName(),
713 (Boolean)lo,
714 (Boolean)iq,
715 (Boolean)ic,
716 pl);
717
718 return DEBUG_ConvertCToJava (CIMClass*, jint, new CIMClass(cls));
|
719 schuur 1.1 }
720 Catch(jEnv);
|
721 mark.hamzy 1.20
|
722 schuur 1.1 return 0;
723 }
724
|
725 schuur 1.7 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1createClass
|
726 mark.hamzy 1.22 (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop, jint jCl)
|
727 mark.hamzy 1.20 {
728 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);
729 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
|
730 mark.hamzy 1.22 CIMClass *cl = DEBUG_ConvertJavaToC (jint, CIMClass*, jCl);
|
731 mark.hamzy 1.20 OperationContext ctx;
732
|
733 schuur 1.7 try {
734 ch->createClass(ctx,cop->getNameSpace(),*cl);
735 }
736 Catch(jEnv);
737 }
738
739 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1setClass
|
740 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop, jint jCl)
741 {
742 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);
743 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
744 CIMClass *cl = DEBUG_ConvertJavaToC (jint, CIMClass*, jCl);
|
745 schuur 1.7 OperationContext ctx;
|
746 mark.hamzy 1.20
|
747 schuur 1.7 try {
748 ch->modifyClass(ctx,cop->getNameSpace(),*cl);
749 }
750 Catch(jEnv);
751 }
752
753 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1deleteClass
|
754 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop)
755 {
756 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);
757 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
758 OperationContext ctx;
|
759 schuur 1.7
760 try {
761 ch->deleteClass(ctx,cop->getNameSpace(),cop->getClassName());
762 }
763 Catch(jEnv);
764 }
765
766 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1enumerateClassNames
|
767 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop, jboolean deep)
768 {
769 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);
770 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
771 CIMNamespaceName ns = cop->getNameSpace();
772 OperationContext ctx;
773
|
774 schuur 1.7 try {
|
775 mark.hamzy 1.20 Array<CIMName> enm = ch->enumerateClassNames(ctx,cop->getNameSpace(),cop->getClassName(),deep);
776 Array<CIMObjectPath> *enmop = new Array<CIMObjectPath>();
777
|
778 schuur 1.7 for (int i=0,m=enm.size(); i<m; i++) {
779 enmop->append(CIMObjectPath(String::EMPTY,ns,enm[i]));
780 }
|
781 mark.hamzy 1.20
782 return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jint, enmop);
|
783 schuur 1.7 }
784 Catch(jEnv);
|
785 mark.hamzy 1.20
|
786 schuur 1.7 return 0;
787 }
788
789 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1enumerateClasses
790 (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop, jboolean deep,
|
791 mark.hamzy 1.20 jboolean lo, jboolean iq, jboolean ic)
792 {
793 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);
794 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
795 OperationContext ctx;
796
|
797 schuur 1.1 try {
|
798 mark.hamzy 1.20 Array<CIMClass> en=ch->enumerateClasses(ctx,
799 cop->getNameSpace(),
800 cop->getClassName(),
801 deep,
802 (Boolean)lo,
803 iq,
804 ic);
805
806 return DEBUG_ConvertCToJava (Array<CIMClass>*, jint, new Array<CIMClass>(en));
|
807 schuur 1.7 }
808 Catch(jEnv);
|
809 mark.hamzy 1.20
|
810 schuur 1.7 return 0;
811 }
812
813 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1getInstance
814 (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop, jboolean lo, jboolean iq, jboolean ic,
|
815 mark.hamzy 1.20 jobjectArray jPl)
816 {
817 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);
818 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
819 OperationContext ctx;
820 CIMPropertyList pl;
821
822 if (jPl)
823 pl=getList(jEnv,jPl);
824 else
825 pl=CIMPropertyList();
|
826 schuur 1.7
827 try {
|
828 mark.hamzy 1.20 CIMInstance *inst=new CIMInstance(ch->getInstance(ctx,
829 cop->getNameSpace(),
830 *cop,
831 (Boolean)lo,
832 (Boolean)iq,
833 (Boolean)ic,
834 pl));
835 return DEBUG_ConvertCToJava (CIMInstance*, jint, inst);
|
836 schuur 1.7 }
837 Catch(jEnv);
|
838 mark.hamzy 1.20
|
839 schuur 1.7 return -1;
840 }
841
842 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1deleteInstance
|
843 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop)
844 {
845 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);
846 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
847 OperationContext ctx;
|
848 schuur 1.7
849 try {
850 ch->deleteInstance(ctx,cop->getNameSpace(),*cop);
851 }
852 Catch(jEnv);
853 }
854
855 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1createInstance
|
856 mark.hamzy 1.22 (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop, jint jCi)
|
857 mark.hamzy 1.20 {
858 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);
859 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
|
860 mark.hamzy 1.22 CIMInstance *ci = DEBUG_ConvertJavaToC (jint, CIMInstance*, jCi);
|
861 mark.hamzy 1.20 OperationContext ctx;
862
|
863 schuur 1.7 try {
864 ci->setPath(*cop);
|
865 mark.hamzy 1.20
|
866 schuur 1.7 CIMObjectPath obj=ch->createInstance(ctx,cop->getNameSpace(),*ci);
|
867 mark.hamzy 1.20
868 return DEBUG_ConvertCToJava (CIMObjectPath*, jint, new CIMObjectPath(obj));
|
869 schuur 1.7 }
870 Catch(jEnv);
|
871 mark.hamzy 1.20
|
872 schuur 1.7 return 0;
873 }
874
875 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1modifyInstance
876 (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop, jint jCi,
|
877 mark.hamzy 1.20 jboolean iq, jobjectArray jPl)
878 {
879 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);
880 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
881 CIMInstance *ci = DEBUG_ConvertJavaToC (jint, CIMInstance*, jCi);
882 CIMPropertyList pl = getList(jEnv,jPl);
883 OperationContext ctx;
884
|
885 schuur 1.7 try {
886 ci->setPath(*cop);
887 ch->modifyInstance(ctx,cop->getNameSpace(),*ci,(Boolean)iq,pl);
888 }
889 Catch(jEnv);
890 }
891
892 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1enumerateInstanceNames
|
893 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop, jboolean deep)
894 {
895 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);
896 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
897 OperationContext ctx;
898
|
899 schuur 1.7 try {
900 Array<CIMObjectPath> enm=ch->enumerateInstanceNames(ctx,
|
901 mark.hamzy 1.20 cop->getNameSpace(),
902 cop->getClassName()); //,(Boolean)deep);
903 return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jint, new Array<CIMObjectPath>(enm));
|
904 schuur 1.7 }
905 Catch(jEnv);
|
906 mark.hamzy 1.20
|
907 schuur 1.7 return 0;
908 }
909
910 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1enumerateInstances
911 (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop, jboolean deep,
|
912 mark.hamzy 1.20 jboolean lo, jboolean iq, jboolean ic, jobjectArray jPl)
913 {
914 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);
915 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
916 CIMPropertyList pl;
917 OperationContext ctx;
918
919 if (jPl)
920 pl=getList(jEnv,jPl);
921 else
922 pl=CIMPropertyList();
923
|
924 schuur 1.7 try {
|
925 mark.hamzy 1.20 Array<CIMInstance> en=ch->enumerateInstances(ctx,
926 cop->getNameSpace(),
927 cop->getClassName(),
928 deep,
929 lo,
930 iq,
931 ic,
932 pl);
933 return DEBUG_ConvertCToJava (Array<CIMInstance>*, jint, new Array<CIMInstance>(en));
|
934 schuur 1.7 }
935 Catch(jEnv);
|
936 mark.hamzy 1.20
|
937 schuur 1.7 return 0;
938 }
939
940 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1execQuery
|
941 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop, jstring jQuery, jstring jQl)
942 {
943 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);
944 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
945 OperationContext ctx;
946 const char *str = jEnv->GetStringUTFChars(jQuery,NULL);
947 String query(str);
|
948 schuur 1.7
949 jEnv->ReleaseStringUTFChars(jQuery,str);
950 str=jEnv->GetStringUTFChars(jQl,NULL);
|
951 mark.hamzy 1.20
|
952 schuur 1.7 String ql(str);
|
953 mark.hamzy 1.20
|
954 schuur 1.7 jEnv->ReleaseStringUTFChars(jQl,str);
955
956 try {
|
957 mark.hamzy 1.20 Array<CIMObject> enm=ch->execQuery(ctx,cop->getNameSpace(),ql,query);
|
958 schuur 1.7 Array<CIMInstance> *enmInst=new Array<CIMInstance>();
|
959 mark.hamzy 1.20
|
960 schuur 1.7 for (int i=0,m=enm.size(); i<m; i++) {
961 enmInst->append(CIMInstance(enm[i]));
|
962 schuur 1.1 }
|
963 mark.hamzy 1.20
964 return DEBUG_ConvertCToJava (Array<CIMInstance>*, jint, enmInst);
|
965 schuur 1.1 }
966 Catch(jEnv);
|
967 mark.hamzy 1.20
|
968 schuur 1.7 return 0;
|
969 schuur 1.1 }
970
|
971 schuur 1.7
|
972 schuur 1.1 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1getProperty
|
973 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop, jstring jN)
974 {
975 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);
976 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
977 OperationContext ctx;
978 const char *str = jEnv->GetStringUTFChars(jN,NULL);
|
979 schuur 1.3
|
980 schuur 1.1 try {
981 CIMName prop(str);
982 CIMValue *cv = new CIMValue(ch->getProperty(ctx, cop->getNameSpace(),*cop,prop));
983 jEnv->ReleaseStringUTFChars(jN,str);
|
984 mark.hamzy 1.20
985 return DEBUG_ConvertCToJava (CIMValue*, jint, cv);
|
986 schuur 1.1 }
987 Catch(jEnv);
|
988 mark.hamzy 1.20
|
989 schuur 1.1 return -1;
990 }
991
|
992 schuur 1.7 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1setProperty
|
993 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop, jstring jPn, jint jV)
994 {
995 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);
996 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
997 OperationContext ctx;
998 CIMValue *val = (CIMValue*)jCop;
999 const char *str = jEnv->GetStringUTFChars(jPn,NULL);
1000 CIMName pName(str);
1001
|
1002 schuur 1.7 jEnv->ReleaseStringUTFChars(jPn,str);
1003 try {
1004 ch->setProperty(ctx,cop->getNameSpace(),*cop,pName,*val);
1005 }
1006 Catch(jEnv);
1007 }
1008
|
1009 mark.hamzy 1.20 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1invokeMethod
1010 (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop, jstring jMn, jobject jIn, jobject jOut)
1011 {
1012 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);
1013 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
1014 OperationContext ctx;
1015 const char *str = jEnv->GetStringUTFChars(jMn,NULL);
1016 CIMName method(str);
|
1017 schuur 1.7
1018 jEnv->ReleaseStringUTFChars(jMn,str);
1019
1020 Array<CIMParamValue> in;
1021 Array<CIMParamValue> out;
1022
|
1023 mark.hamzy 1.26 for (int i = 0, m = jEnv->CallIntMethod(jIn,JMPIjvm::jv.VectorSize); i < m; i++) {
|
1024 schuur 1.7 JMPIjvm::checkException(jEnv);
|
1025 mark.hamzy 1.20
|
1026 mark.hamzy 1.26 jobject jProp = jEnv->CallObjectMethod(jIn,JMPIjvm::jv.VectorElementAt,i);
|
1027 mark.hamzy 1.23
|
1028 schuur 1.7 JMPIjvm::checkException(jEnv);
|
1029 mark.hamzy 1.20
|
1030 mark.hamzy 1.26 jint jp = jEnv->CallIntMethod(jProp,JMPIjvm::jv.CIMPropertyCInst);
|
1031 mark.hamzy 1.20 CIMProperty *p = DEBUG_ConvertJavaToC (jint, CIMProperty*, jp);
1032
|
1033 schuur 1.7 JMPIjvm::checkException(jEnv);
|
1034 mark.hamzy 1.20
|
1035 schuur 1.7 in.append(CIMParamValue(p->getName().getString(),p->getValue()));
1036 }
1037 try {
|
1038 mark.hamzy 1.23 CIMValue *val = new CIMValue(ch->invokeMethod(ctx,cop->getNameSpace(),*cop,method,in,out));
|
1039 schuur 1.7
1040 for (int i=0,m=out.size(); i<m; i++) {
|
1041 mark.hamzy 1.20 const CIMParamValue &parm = out[i];
1042 const CIMValue v = parm.getValue();
1043 CIMProperty *p = new CIMProperty(parm.getParameterName(),v,v.getArraySize());
1044 jint jp = DEBUG_ConvertCToJava (CIMProperty*, jint, p);
|
1045 mark.hamzy 1.26 jobject prop = jEnv->NewObject(JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewI,jp);
|
1046 mark.hamzy 1.20
|
1047 mark.hamzy 1.26 jEnv->CallVoidMethod(jOut,JMPIjvm::jv.VectorAddElement,prop);
|
1048 schuur 1.7 }
|
1049 mark.hamzy 1.20 return DEBUG_ConvertCToJava (CIMValue*, jint, val);
1050 }
|
1051 schuur 1.7 Catch(jEnv);
|
1052 mark.hamzy 1.20
|
1053 schuur 1.7 return 0;
1054 }
|
1055 schuur 1.1
|
1056 schuur 1.7 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1invokeMethod24
1057 (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop, jstring jMn,
|
1058 mark.hamzy 1.20 jobjectArray jIn, jobjectArray jOut)
1059 {
1060 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);
1061 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
1062 OperationContext ctx;
1063 const char *str = jEnv->GetStringUTFChars(jMn,NULL);
|
1064 schuur 1.7 CIMName method(str);
|
1065 mark.hamzy 1.20
|
1066 schuur 1.7 jEnv->ReleaseStringUTFChars(jMn,str);
1067
1068 Array<CIMParamValue> in;
1069 Array<CIMParamValue> out;
|
1070 schuur 1.3
|
1071 schuur 1.7 for (int i=0,m=jEnv->GetArrayLength(jIn); i<m; i++) {
1072 JMPIjvm::checkException(jEnv);
|
1073 mark.hamzy 1.20
|
1074 schuur 1.7 jobject jArg=jEnv->GetObjectArrayElement(jIn,i);
1075 JMPIjvm::checkException(jEnv);
|
1076 mark.hamzy 1.20
|
1077 mark.hamzy 1.26 jint jp = jEnv->CallIntMethod(jArg,JMPIjvm::jv.CIMArgumentCInst);
|
1078 mark.hamzy 1.20 CIMParamValue *p = DEBUG_ConvertJavaToC (jint, CIMParamValue*, jp);
1079
|
1080 schuur 1.7 JMPIjvm::checkException(jEnv);
|
1081 mark.hamzy 1.20
|
1082 schuur 1.7 in.append(*p);
1083 }
|
1084 schuur 1.1 try {
|
1085 schuur 1.7 CIMValue *val=new CIMValue(ch->invokeMethod(ctx,cop->getNameSpace(),*cop,method,in,out));
1086
1087 for (int i=0,m=out.size(),o=jEnv->GetArrayLength(jOut); i<m && i<o; i++) {
|
1088 mark.hamzy 1.24 CIMParamValue *parm = new CIMParamValue (out[i]);
1089 jint jParm = DEBUG_ConvertCToJava (CIMParamValue*, jint, parm);
|
1090 mark.hamzy 1.20
|
1091 mark.hamzy 1.17 jEnv->SetObjectArrayElement(jOut,i,
|
1092 mark.hamzy 1.26 jEnv->NewObject(JMPIjvm::jv.CIMArgumentClassRef,JMPIjvm::jv.CIMArgumentNewI,jParm));
|
1093 schuur 1.7 }
|
1094 mark.hamzy 1.20 return DEBUG_ConvertCToJava (CIMValue*, jint, val);
|
1095 schuur 1.1 }
1096 Catch(jEnv);
|
1097 mark.hamzy 1.20
|
1098 schuur 1.7 return 0;
|
1099 schuur 1.1 }
1100
|
1101 schuur 1.7 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1associatorNames
1102 (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop,
|
1103 mark.hamzy 1.20 jstring jAssocClass, jstring jResultClass, jstring jRole, jstring jResultRole)
1104 {
1105 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);
1106 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
1107 OperationContext ctx;
1108 const char *str = jEnv->GetStringUTFChars(jAssocClass,NULL);
|
1109 schuur 1.3
|
1110 schuur 1.7 CIMName assocClass(str);
|
1111 mark.hamzy 1.23
|
1112 schuur 1.7 jEnv->ReleaseStringUTFChars(jAssocClass,str);
|
1113 mark.hamzy 1.23
|
1114 schuur 1.7 str=jEnv->GetStringUTFChars(jResultClass,NULL);
|
1115 mark.hamzy 1.23
|
1116 schuur 1.7 CIMName resultClass(str);
|
1117 mark.hamzy 1.23
|
1118 schuur 1.7 jEnv->ReleaseStringUTFChars(jResultClass,str);
|
1119 mark.hamzy 1.23
|
1120 schuur 1.7 str=jEnv->GetStringUTFChars(jRole,NULL);
|
1121 mark.hamzy 1.23
|
1122 schuur 1.7 String role(str);
|
1123 mark.hamzy 1.23
|
1124 schuur 1.7 jEnv->ReleaseStringUTFChars(jRole,str);
|
1125 mark.hamzy 1.23
|
1126 schuur 1.7 str=jEnv->GetStringUTFChars(jResultRole,NULL);
|
1127 mark.hamzy 1.23
|
1128 schuur 1.7 String resultRole(str);
|
1129 mark.hamzy 1.23
|
1130 schuur 1.7 jEnv->ReleaseStringUTFChars(jResultRole,str);
1131
|
1132 schuur 1.1 try {
|
1133 schuur 1.7 Array<CIMObjectPath> enm=ch->associatorNames(ctx,
|
1134 mark.hamzy 1.23 cop->getNameSpace(),
1135 *cop,
1136 assocClass,
1137 resultClass,
1138 role,
1139 resultRole);
1140
|
1141 mark.hamzy 1.20 return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jint, new Array<CIMObjectPath>(enm));
|
1142 schuur 1.7 }
1143 Catch(jEnv);
|
1144 mark.hamzy 1.20
|
1145 schuur 1.7 return 0;
1146 }
1147
1148 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIM__1associators
1149 (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop,
1150 jstring jAssocClass, jstring jResultClass, jstring jRole, jstring jResultRole,
|
1151 mark.hamzy 1.20 jboolean includeQualifiers, jboolean includeClassOrigin, jobjectArray jPl)
1152 {
1153 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);
1154 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
1155 OperationContext ctx;
1156 CIMPropertyList pl = getList(jEnv,jPl);
1157 const char *str = jEnv->GetStringUTFChars(jAssocClass,NULL);
|
1158 schuur 1.7
1159 CIMName assocClass(str);
|
1160 mark.hamzy 1.23
|
1161 schuur 1.7 jEnv->ReleaseStringUTFChars(jAssocClass,str);
|
1162 mark.hamzy 1.23
|
1163 schuur 1.7 str=jEnv->GetStringUTFChars(jResultClass,NULL);
|
1164 mark.hamzy 1.23
|
1165 schuur 1.7 CIMName resultClass(str);
|
1166 mark.hamzy 1.23
|
1167 schuur 1.7 jEnv->ReleaseStringUTFChars(jResultClass,str);
|
1168 mark.hamzy 1.23
|
1169 schuur 1.7 str=jEnv->GetStringUTFChars(jRole,NULL);
|
1170 mark.hamzy 1.23
|
1171 schuur 1.7 String role(str);
|
1172 mark.hamzy 1.23
|
1173 schuur 1.7 jEnv->ReleaseStringUTFChars(jRole,str);
|
1174 mark.hamzy 1.23
|
1175 schuur 1.7 str=jEnv->GetStringUTFChars(jResultRole,NULL);
|
1176 mark.hamzy 1.23
|
1177 schuur 1.7 String resultRole(str);
|
1178 mark.hamzy 1.23
|
1179 schuur 1.7 jEnv->ReleaseStringUTFChars(jResultRole,str);
1180
1181 try {
|
1182 mark.hamzy 1.23 Array<CIMObject> enm = ch->associators(ctx,
1183 cop->getNameSpace(),
1184 *cop,
1185 assocClass,
1186 resultClass,
1187 role,
1188 resultRole,
1189 (Boolean)includeQualifiers,
1190 (Boolean)includeClassOrigin,
1191 pl);
1192 Array<CIMInstance> *enmInst = new Array<CIMInstance>();
1193
|
1194 schuur 1.7 for (int i=0,m=enm.size(); i<m; i++) {
1195 enmInst->append(CIMInstance(enm[i]));
|
1196 schuur 1.1 }
|
1197 mark.hamzy 1.23
|
1198 mark.hamzy 1.20 return DEBUG_ConvertCToJava (Array<CIMInstance>*, jint, enmInst);
|
1199 schuur 1.1 }
1200 Catch(jEnv);
|
1201 mark.hamzy 1.20
|
1202 schuur 1.7 return 0;
|
1203 schuur 1.1 }
1204
|
1205 schuur 1.7 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1referenceNames
1206 (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop,
|
1207 mark.hamzy 1.20 jstring jAssocClass, jstring jRole)
1208 {
1209 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);
1210 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
1211 OperationContext ctx;
1212 const char *str = jEnv->GetStringUTFChars(jAssocClass,NULL);
|
1213 schuur 1.7
1214 CIMName assocClass(str);
|
1215 mark.hamzy 1.23
|
1216 schuur 1.7 jEnv->ReleaseStringUTFChars(jAssocClass,str);
|
1217 mark.hamzy 1.23
|
1218 schuur 1.7 str=jEnv->GetStringUTFChars(jRole,NULL);
|
1219 mark.hamzy 1.23
|
1220 schuur 1.7 String role(str);
|
1221 mark.hamzy 1.23
|
1222 schuur 1.7 jEnv->ReleaseStringUTFChars(jRole,str);
1223
1224 try {
|
1225 mark.hamzy 1.23 Array<CIMObjectPath> enm = ch->referenceNames(ctx,
1226 cop->getNameSpace(),
1227 *cop,
1228 assocClass,
1229 role);
1230
|
1231 mark.hamzy 1.20 return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jint, new Array<CIMObjectPath>(enm));
|
1232 schuur 1.7 }
1233 Catch(jEnv);
|
1234 mark.hamzy 1.20
|
1235 schuur 1.7 return 0;
1236 }
|
1237 schuur 1.1
|
1238 schuur 1.7 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1references
1239 (JNIEnv *jEnv, jobject jThs, jint jCh, jint jCop,
1240 jstring jAssocClass, jstring jRole,
|
1241 mark.hamzy 1.20 jboolean includeQualifiers, jboolean includeClassOrigin, jobjectArray jPl)
1242 {
1243 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);
1244 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
1245 OperationContext ctx;
1246 CIMPropertyList pl = getList(jEnv,jPl);
1247 const char *str = jEnv->GetStringUTFChars(jAssocClass,NULL);
1248 CIMName assocClass(str);
|
1249 schuur 1.3
|
1250 schuur 1.7 jEnv->ReleaseStringUTFChars(jAssocClass,str);
|
1251 mark.hamzy 1.23
|
1252 schuur 1.7 str=jEnv->GetStringUTFChars(jRole,NULL);
|
1253 mark.hamzy 1.20
|
1254 schuur 1.7 String role(str);
|
1255 mark.hamzy 1.20
|
1256 schuur 1.7 jEnv->ReleaseStringUTFChars(jRole,str);
1257
|
1258 schuur 1.1 try {
|
1259 mark.hamzy 1.23 Array<CIMObject> enm = ch->references(ctx,
1260 cop->getNameSpace(),
1261 *cop,
1262 assocClass,
1263 role,
1264 (Boolean)includeQualifiers,
1265 (Boolean)includeClassOrigin,
1266 pl);
1267 Array<CIMInstance> *enmInst = new Array<CIMInstance>();
1268
|
1269 schuur 1.7 for (int i=0,m=enm.size(); i<m; i++) {
1270 enmInst->append(CIMInstance(enm[i]));
1271 }
|
1272 mark.hamzy 1.23
|
1273 mark.hamzy 1.20 return DEBUG_ConvertCToJava (Array<CIMInstance>*, jint, enmInst);
|
1274 schuur 1.1 }
1275 Catch(jEnv);
|
1276 mark.hamzy 1.20
|
1277 schuur 1.7 return 0;
|
1278 schuur 1.1 }
1279
|
1280 schuur 1.3 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent
|
1281 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCh, jstring jName, jstring jNs, jint jInd)
1282 {
1283 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);
1284 CIMInstance *ind = DEBUG_ConvertJavaToC (jint, CIMInstance*, jInd);
1285 const char *str = jEnv->GetStringUTFChars(jName,NULL);
1286 String name(str);
|
1287 schuur 1.1
|
1288 schuur 1.3 jEnv->ReleaseStringUTFChars(jName,str);
1289 str=jEnv->GetStringUTFChars(jNs,NULL);
|
1290 mark.hamzy 1.20
|
1291 schuur 1.3 String ns(str);
|
1292 mark.hamzy 1.20
|
1293 schuur 1.3 jEnv->ReleaseStringUTFChars(jNs,str);
1294
|
1295 schuur 1.8 CIMObjectPath ref(CIMObjectPath(ind->getPath()));
|
1296 mark.hamzy 1.20
|
1297 schuur 1.8 ref.setNameSpace(ns);
1298 ind->setPath(ref);
1299
|
1300 schuur 1.3 JMPIProviderManager::indProvRecord *prec;
1301 OperationContext* context;
1302
1303 if (JMPIProviderManager::provTab.lookup(name,prec)) {
1304 if (prec->enabled) {
1305 context=prec->ctx;
1306 try {
1307 prec->handler->deliver(*context, *ind);
1308 }
1309 Catch(jEnv);
1310 }
1311 }
1312 else {
|
1313 mark.hamzy 1.16 DDD(PEGASUS_STD(cerr)<<"--- Java_org_pegasus_jmpi_CIMOMHandle__1deliverEvent() "<<name<<" not found"<<PEGASUS_STD(endl));
|
1314 schuur 1.3 }
1315 }
|
1316 schuur 1.1
|
1317 mark.hamzy 1.21 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMOMHandle__1finalize
1318 (JNIEnv *jEnv, jobject jThs, jint jCh)
1319 {
1320 CIMOMHandle *ch = DEBUG_ConvertJavaToC (jint, CIMOMHandle*, jCh);
1321
1322 delete ch;
1323
1324 DEBUG_ConvertCleanup (jint, jCh);
1325 }
1326
|
1327 schuur 1.1 // -------------------------------------
1328 // ---
1329 // - CIMClass
1330 // ---
1331 // -------------------------------------
1332
1333 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClass__1newInstance
|
1334 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCls)
1335 {
1336 CIMClass *cls = DEBUG_ConvertJavaToC (jint, CIMClass*, jCls);
1337
|
1338 schuur 1.1 try {
|
1339 mark.hamzy 1.23 CIMInstance *ci = new CIMInstance(cls->getClassName());
|
1340 mark.hamzy 1.20
|
1341 schuur 1.5 for (int i=0,m=cls->getQualifierCount(); i<m; i++) {
1342 try {
1343 ci->addQualifier(cls->getQualifier(i).clone());
|
1344 mark.hamzy 1.17 }
1345 catch (Exception e) {}
|
1346 schuur 1.5 }
|
1347 schuur 1.1 for (int i=0,m=cls->getPropertyCount(); i<m; i++) {
|
1348 mark.hamzy 1.23 CIMProperty cp = cls->getProperty(i);
1349
|
1350 schuur 1.1 ci->addProperty(cp.clone());
|
1351 mark.hamzy 1.23
|
1352 schuur 1.5 for (int j=0, s=cp.getQualifierCount(); j<s; j++) {
1353 try {
1354 ci->getProperty(i).addQualifier(cp.getQualifier(j));
|
1355 mark.hamzy 1.17 }
1356 catch (Exception e) {}
1357 }
|
1358 schuur 1.1 }
|
1359 mark.hamzy 1.23
|
1360 mark.hamzy 1.20 return DEBUG_ConvertCToJava (CIMInstance*, jint, ci);
|
1361 schuur 1.1 }
1362 Catch(jEnv);
|
1363 mark.hamzy 1.20
|
1364 schuur 1.1 return 0;
1365 }
1366
1367 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMClass__1getName
|
1368 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCls)
1369 {
1370 CIMClass *cls = DEBUG_ConvertJavaToC (jint, CIMClass*, jCls);
|
1371 r.kieninger 1.11
|
1372 schuur 1.1 try {
1373 const String &cn=cls->getClassName().getString();
1374 jstring str=jEnv->NewStringUTF(cn.getCString());
|
1375 mark.hamzy 1.20
|
1376 schuur 1.1 return str;
1377 }
1378 Catch(jEnv);
|
1379 mark.hamzy 1.20
|
1380 schuur 1.1 return 0;
1381 }
1382
1383 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClass__1getQualifier
|
1384 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCls, jstring jN)
1385 {
1386 CIMClass *cls = DEBUG_ConvertJavaToC (jint, CIMClass*, jCls);
1387 const char *str = jEnv->GetStringUTFChars(jN,NULL);
1388 jint rv = -1;
1389 Uint32 pos = cls->findQualifier(String(str));
1390
|
1391 schuur 1.1 if (pos!=PEG_NOT_FOUND)
|
1392 mark.hamzy 1.20 rv = DEBUG_ConvertCToJava (CIMQualifier*, jint, new CIMQualifier(cls->getQualifier(pos)));
1393
|
1394 schuur 1.1 jEnv->ReleaseStringUTFChars(jN,str);
|
1395 mark.hamzy 1.20
|
1396 schuur 1.1 return rv;
1397 }
1398
1399 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClass__1getProperty
|
1400 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCls, jstring jN)
1401 {
1402 CIMClass *cls = DEBUG_ConvertJavaToC (jint, CIMClass*, jCls);
1403 const char *str = jEnv->GetStringUTFChars(jN,NULL);
1404 jint rv = -1;
1405 Uint32 pos = cls->findProperty(CIMName(str));
1406
|
1407 schuur 1.1 if (pos!=PEG_NOT_FOUND)
|
1408 mark.hamzy 1.20 rv = DEBUG_ConvertCToJava (CIMProperty*, jint, new CIMProperty(cls->getProperty(pos)));
1409
|
1410 schuur 1.1 jEnv->ReleaseStringUTFChars(jN,str);
|
1411 mark.hamzy 1.20
|
1412 schuur 1.1 return rv;
1413 }
1414
1415 JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMClass__1hasQualifier
|
1416 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCls, jstring jQ)
1417 {
1418 CIMClass *cls = DEBUG_ConvertJavaToC (jint, CIMClass*, jCls);
1419 const char *str = jEnv->GetStringUTFChars(jQ,NULL);
1420 Uint32 pos = cls->findQualifier(String(str));
1421
|
1422 schuur 1.1 jEnv->ReleaseStringUTFChars(jQ,str);
|
1423 mark.hamzy 1.20
|
1424 schuur 1.1 return (jboolean)(pos!=PEG_NOT_FOUND);
1425 }
1426
1427 JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_CIMClass__1getProperties
|
1428 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCls, jobject jVec)
1429 {
1430 CIMClass *cls = DEBUG_ConvertJavaToC (jint, CIMClass*, jCls);
|
1431 schuur 1.5
|
1432 schuur 1.1 for (int i=0,s=cls->getPropertyCount(); i<s; i++) {
|
1433 mark.hamzy 1.20 CIMProperty *cp = new CIMProperty(cls->getProperty(i));
1434 jint jCp = DEBUG_ConvertCToJava (CIMProperty*, jint, cp);
|
1435 mark.hamzy 1.16
|
1436 mark.hamzy 1.26 jobject prop=jEnv->NewObject(JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewI,jCp);
|
1437 mark.hamzy 1.16
|
1438 mark.hamzy 1.26 jEnv->CallVoidMethod(jVec,JMPIjvm::jv.VectorAddElement,prop);
|
1439 schuur 1.1 }
|
1440 mark.hamzy 1.20
|
1441 schuur 1.1 return jVec;
1442 }
1443
|
1444 schuur 1.5 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClass__1addProperty
|
1445 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCls, jint jP)
1446 {
1447 CIMClass *cls = DEBUG_ConvertJavaToC (jint, CIMClass*, jCls);
1448 CIMProperty *p = DEBUG_ConvertJavaToC (jint, CIMProperty*, jP);
1449
|
1450 schuur 1.5 cls->addProperty(*p);
1451 }
1452
1453 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClass__1setProperties
|
1454 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCls, jobject jVec)
1455 {
1456 CIMClass *cls = DEBUG_ConvertJavaToC (jint, CIMClass*, jCls);
1457
|
1458 schuur 1.5 for (int i=cls->getPropertyCount()-1; i>=0; i--) {
1459 cls->removeProperty(i);
1460 }
|
1461 mark.hamzy 1.26 for (Uint32 i=0,s=jEnv->CallIntMethod(jVec,JMPIjvm::jv.VectorSize); i<s; i++) {
|
1462 mark.hamzy 1.20 JMPIjvm::checkException(jEnv);
1463
|
1464 mark.hamzy 1.26 jobject o=jEnv->CallObjectMethod(jVec,JMPIjvm::jv.VectorElementAt,(i));
|
1465 mark.hamzy 1.20
|
1466 mark.hamzy 1.26 jint jp = jEnv->CallIntMethod(o,JMPIjvm::jv.CIMPropertyCInst);
|
1467 mark.hamzy 1.20 CIMProperty *cp = DEBUG_ConvertJavaToC (jint, CIMProperty*, jp);
1468
1469 JMPIjvm::checkException(jEnv);
1470
|
1471 schuur 1.5 cls->addProperty(*cp);
1472 }
1473 }
1474
1475
1476 JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_CIMClass__1getQualifiers
|
1477 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCls, jobject jVec)
1478 {
1479 CIMClass *cls = DEBUG_ConvertJavaToC (jint, CIMClass*, jCls);
|
1480 schuur 1.5
1481 for (int i=0,s=cls->getQualifierCount(); i<s; i++) {
|
1482 mark.hamzy 1.20 CIMQualifier *cq = new CIMQualifier(cls->getQualifier(i));
1483 jint jCq = DEBUG_ConvertCToJava (CIMQualifier*, jint, cq);
|
1484 mark.hamzy 1.26 jobject qual = jEnv->NewObject(JMPIjvm::jv.CIMQualifierClassRef,JMPIjvm::jv.CIMQualifierNewI,jCq);
|
1485 mark.hamzy 1.20
|
1486 mark.hamzy 1.26 jEnv->CallVoidMethod(jVec,JMPIjvm::jv.VectorAddElement,qual);
|
1487 schuur 1.5 }
|
1488 mark.hamzy 1.20
|
1489 schuur 1.5 return jVec;
1490 }
1491
|
1492 schuur 1.1 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClass__1new
|
1493 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jstring jN)
1494 {
1495 const char *str = jEnv->GetStringUTFChars(jN,NULL);
1496 CIMClass *cls = new CIMClass(CIMName(str), CIMName());
1497
|
1498 schuur 1.1 jEnv->ReleaseStringUTFChars(jN,str);
|
1499 mark.hamzy 1.20
1500 return DEBUG_ConvertCToJava (CIMClass*, jint, cls);
|
1501 schuur 1.1 }
1502
1503 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMClass__1getSuperClass
|
1504 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCls)
1505 {
1506 CIMClass *cls = DEBUG_ConvertJavaToC (jint, CIMClass*, jCls);
1507 const String &cn = cls->getSuperClassName().getString();
1508
|
1509 schuur 1.1 jstring str=jEnv->NewStringUTF(cn.getCString());
|
1510 mark.hamzy 1.20
|
1511 schuur 1.1 return str;
1512 }
1513
1514 JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_CIMClass__1getKeys
|
1515 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCls, jobject jVec)
1516 {
1517 CIMClass *cls = DEBUG_ConvertJavaToC (jint, CIMClass*, jCls);
1518
|
1519 schuur 1.1 if (cls->hasKeys()) {
1520 Array<CIMName> keyNames;
1521 cls->getKeyNames(keyNames);
1522 for(int i=0, s=keyNames.size();i<s;i++){
1523 Uint32 pos=cls->findProperty(keyNames[i]);
1524 if (pos!=PEG_NOT_FOUND){
|
1525 mark.hamzy 1.20 CIMProperty *cp = new CIMProperty(cls->getProperty(pos));
1526 jint jCp = DEBUG_ConvertCToJava (CIMProperty*, jint, cp);
1527
|
1528 mark.hamzy 1.26 jobject prop=jEnv->NewObject(JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewI,jCp);
|
1529 mark.hamzy 1.20
|
1530 mark.hamzy 1.26 jEnv->CallVoidMethod(jVec,JMPIjvm::jv.VectorAddElement,prop);
|
1531 schuur 1.1 }
1532 }
1533 }
|
1534 mark.hamzy 1.20
|
1535 schuur 1.1 return jVec;
1536 }
1537
1538 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClass__1getMethod
|
1539 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCls, jstring jN)
1540 {
1541 CIMClass *cls = DEBUG_ConvertJavaToC (jint, CIMClass*, jCls);
1542 const char *str = jEnv->GetStringUTFChars(jN,NULL);
1543 jint rv = -1;
1544 Uint32 pos = cls->findMethod(String(str));
1545
|
1546 schuur 1.1 if (pos!=PEG_NOT_FOUND) {
|
1547 mark.hamzy 1.20 rv = DEBUG_ConvertCToJava (CIMMethod*, jint, new CIMMethod(cls->getMethod(pos)));
|
1548 schuur 1.1 }
|
1549 mark.hamzy 1.20
|
1550 schuur 1.1 jEnv->ReleaseStringUTFChars(jN,str);
|
1551 mark.hamzy 1.20
|
1552 schuur 1.1 return rv;
1553 }
1554
1555 JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMClass__1equals
|
1556 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCls, jint jClsToBeCompared)
1557 {
1558 CIMClass *cls = DEBUG_ConvertJavaToC (jint, CIMClass*, jCls);
1559 CIMClass *clsToBeCompared = DEBUG_ConvertJavaToC (jint, CIMClass*, jClsToBeCompared);
1560
|
1561 schuur 1.1 return cls->identical(*clsToBeCompared);
1562 }
1563
1564 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClass__1finalize
|
1565 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCls)
1566 {
1567 CIMClass *cls = DEBUG_ConvertJavaToC (jint, CIMClass*, jCls);
1568
|
1569 schuur 1.1 delete cls;
|
1570 mark.hamzy 1.20
1571 DEBUG_ConvertCleanup (jint, jCls);
|
1572 schuur 1.1 }
1573
|
1574 schuur 1.7 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClass__1filterProperties
|
1575 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jInst, jobjectArray jPl, jboolean iq, jboolean ic, jboolean lo)
1576 {
1577 CIMClass *cc = DEBUG_ConvertJavaToC (jint, CIMClass*, jInst);
|
1578 mark.hamzy 1.22 CIMClass *cf = 0;
|
1579 mark.hamzy 1.20 CIMName clsn = cc->getClassName();
|
1580 schuur 1.7
1581 if (lo) {
|
1582 mark.hamzy 1.23 cf = new CIMClass(cc->clone());
1583
|
1584 schuur 1.7 CIMName clsn=cc->getClassName();
|
1585 mark.hamzy 1.23
|
1586 schuur 1.7 for (int i=cf->getPropertyCount()-1; i>=0; i--)
1587 if (cf->getProperty(i).getClassOrigin()==clsn) cf->removeProperty(i);
|
1588 mark.hamzy 1.23
|
1589 mark.hamzy 1.20 return DEBUG_ConvertCToJava (CIMClass*, jint, cf);
|
1590 schuur 1.7 }
1591 else if (jPl) {
|
1592 mark.hamzy 1.23 CIMPropertyList pl = getList(jEnv,jPl);
1593 Array<CIMName> n = pl.getPropertyNameArray();
1594
1595 cf = new CIMClass(clsn, cc->getSuperClassName());
1596
1597 for (int i = 0,s = n.size(); i < s; i++) {
|
1598 schuur 1.7 Uint32 pos=cc->findProperty(n[i]);
|
1599 mark.hamzy 1.23
|
1600 schuur 1.7 if (pos!=PEG_NOT_FOUND) {
1601 if (iq) {
|
1602 mark.hamzy 1.23 CIMProperty cp = cc->getProperty(pos).clone();
1603
1604 if (!ic)
1605 cp.setClassOrigin(CIMName());
1606
|
1607 schuur 1.7 cf->addProperty(cp);
1608 }
1609 else {
|
1610 mark.hamzy 1.23 CIMProperty cp = cc->getProperty(pos);
1611 CIMName co;
1612
1613 if (ic)
1614 co = cp.getClassOrigin();
1615
1616 CIMProperty np(cp.getName(),
1617 cp.getValue(),
1618 cp.getArraySize(),
1619 cp.getReferenceClassName(),
1620 co,
1621 cp.getPropagated());
1622
|
1623 schuur 1.7 cf->addProperty(np);
1624 }
1625 }
1626 }
|
1627 mark.hamzy 1.23 if (iq)
1628 for (Uint32 i = 0, s = cc->getQualifierCount(); i < s; i++)
1629 cf->addQualifier(cc->getQualifier(i));
|
1630 schuur 1.7 }
1631 else if (iq) {
|
1632 mark.hamzy 1.23 cf = new CIMClass(cc->clone());
1633
1634 if (ic)
1635 return DEBUG_ConvertCToJava (CIMClass*, jint, cf);
1636
1637 for (int i = cf->getPropertyCount()-1; i >= 0; i--) {
|
1638 schuur 1.7 CIMProperty cp=cf->getProperty(i);
|
1639 mark.hamzy 1.23
|
1640 schuur 1.7 cp.setClassOrigin(CIMName());
1641 cf->removeProperty(i);
1642 cf->addProperty(cp);
1643 }
1644 }
1645 else {
|
1646 mark.hamzy 1.23 cf = new CIMClass(clsn, cc->getSuperClassName());
1647
1648 for (int i = cc->getPropertyCount()-1; i >= 0; i--) {
1649 CIMProperty cp = cc->getProperty(i);
1650 CIMName co;
1651
1652 if (ic)
1653 co = cp.getClassOrigin();
1654
1655 CIMProperty np(cp.getName(),
1656 cp.getValue(),
1657 cp.getArraySize(),
1658 cp.getReferenceClassName(),
1659 co,
1660 cp.getPropagated());
1661
|
1662 schuur 1.7 cf->addProperty(np);
1663 }
1664 }
1665
|
1666 mark.hamzy 1.20 return DEBUG_ConvertCToJava (CIMClass*, jint, cf);
|
1667 schuur 1.7 }
1668
|
1669 schuur 1.1
1670
1671 // -------------------------------------
1672 // ---
1673 // - CIMInstance
1674 // ---
1675
1676 // -------------------------------------
1677 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMInstance__1new
|
1678 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs)
1679 {
1680 return DEBUG_ConvertCToJava (CIMInstance*, jint, new CIMInstance());
|
1681 schuur 1.1 }
1682
1683 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMInstance__1newCn
|
1684 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jstring jN)
1685 {
|
1686 schuur 1.1 const char *str=jEnv->GetStringUTFChars(jN,NULL);
|
1687 mark.hamzy 1.20
1688 return DEBUG_ConvertCToJava (CIMInstance*, jint, new CIMInstance(CIMName(str)));
|
1689 schuur 1.1 }
1690
1691 //Added by Andy Viciu
1692 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMInstance__1setName
|
1693 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jInst, jstring jN)
1694 {
1695 CIMInstance *ci = DEBUG_ConvertJavaToC (jint, CIMInstance*, jInst);
1696 const char *str = jEnv->GetStringUTFChars(jN,NULL);
1697
|
1698 schuur 1.1 /* NOT SUPPORTED AND NOT NEEDED*/
1699 }
1700
1701 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMInstance__1setProperty
|
1702 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jInst, jstring jN, jint jV)
1703 {
1704 CIMInstance *ci = DEBUG_ConvertJavaToC (jint, CIMInstance*, jInst);
1705 CIMValue *cv = DEBUG_ConvertJavaToC (jint, CIMValue*, jV);
1706 const char *str = jEnv->GetStringUTFChars(jN,NULL);
1707 Uint32 pos = ci->findProperty(CIMName(str));
1708
|
1709 schuur 1.5 try {
|
1710 schuur 1.6 if (pos!=PEG_NOT_FOUND) {
1711 CIMProperty cp=ci->getProperty(pos);
1712 if (cp.getType()==cv->getType())
1713 cp.setValue(*cv);
1714 else {
|
1715 mark.hamzy 1.16 DDD(PEGASUS_STD(cerr)<<"!!! CIMInstance.setProperty - Wrong type of CIMValue (instance name:"<<ci->getClassName().getString()<<", property name: "<<str<<")");
1716 DDD(PEGASUS_STD(cerr)<<"!!! CIMInstance.setProperty : "<<cp.getType()<<" <> "<<cv->getType()<<PEGASUS_STD(endl));
1717
|
1718 schuur 1.6 throw CIMException(CIM_ERR_FAILED, String("Type mismatch"));
1719 }
1720 ci->removeProperty(pos);
1721 ci->addProperty(cp);
1722 }
1723 else {
1724 CIMProperty *cp=new CIMProperty(CIMName(str),*cv);
1725 ci->addProperty(*cp);
|
1726 schuur 1.1 }
1727 }
|
1728 schuur 1.5 Catch(jEnv);
|
1729 schuur 1.1
1730 jEnv->ReleaseStringUTFChars(jN,str);
1731 }
1732
|
1733 schuur 1.5 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMInstance__1setProperties
|
1734 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jInst, jobject jV)
1735 {
1736 throw CIMException(CIM_ERR_NOT_SUPPORTED, String("Not yet supported"));
|
1737 schuur 1.5 }
1738
|
1739 schuur 1.1 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMInstance__1getProperty
|
1740 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jInst, jstring jN)
1741 {
1742 CIMInstance *ci = DEBUG_ConvertJavaToC (jint, CIMInstance*, jInst);
1743 const char *str = jEnv->GetStringUTFChars(jN,NULL);
1744 jint rv = -1;
1745
|
1746 schuur 1.1 try {
|
1747 mark.hamzy 1.23 Uint32 pos = ci->findProperty(CIMName(str));
1748
1749 if (pos != PEG_NOT_FOUND) {
1750 CIMProperty *cp = new CIMProperty(ci->getProperty(pos));
1751
|
1752 mark.hamzy 1.20 rv = DEBUG_ConvertCToJava (CIMProperty*, jint, cp);
|
1753 schuur 1.1 }
1754 }
1755 Catch(jEnv);
|
1756 mark.hamzy 1.20
|
1757 schuur 1.1 jEnv->ReleaseStringUTFChars(jN,str);
|
1758 mark.hamzy 1.20
|
1759 schuur 1.1 return rv;
1760 }
1761
1762 JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_CIMInstance__1getKeyValuePairs
|
1763 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jInst, jobject jVec)
1764 {
1765 CIMInstance *ci = DEBUG_ConvertJavaToC (jint, CIMInstance*, jInst);
|
1766 schuur 1.5
|
1767 schuur 1.1 for (int i=0,s=ci->getPropertyCount(); i<s; i++) {
1768 if (ci->getProperty(i).findQualifier(String("key"))!=PEG_NOT_FOUND) {
|
1769 mark.hamzy 1.20 CIMProperty *cp = new CIMProperty(ci->getProperty(i));
1770 jint jCp = DEBUG_ConvertCToJava (CIMProperty*, jint, cp);
1771
|
1772 mark.hamzy 1.26 jobject prop=jEnv->NewObject(JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewI,jCp);
|
1773 mark.hamzy 1.20
|
1774 mark.hamzy 1.26 jEnv->CallVoidMethod(jVec,JMPIjvm::jv.VectorAddElement,prop);
|
1775 schuur 1.1 }
1776 }
1777
1778 return jVec;
1779 }
1780
1781 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMInstance__1getClassName
|
1782 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jInst)
1783 {
1784 CIMInstance *ci = DEBUG_ConvertJavaToC (jint, CIMInstance*, jInst);
1785 const String &cn = ci->getClassName().getString();
1786
|
1787 schuur 1.1 jstring str=jEnv->NewStringUTF(cn.getCString());
|
1788 mark.hamzy 1.20
|
1789 schuur 1.1 return str;
1790 }
1791
1792 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMInstance__1getQualifier
|
1793 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jInst, jstring jN)
1794 {
1795 CIMInstance *ci = DEBUG_ConvertJavaToC (jint, CIMInstance*, jInst);
1796 const char *str = jEnv->GetStringUTFChars(jN,NULL);
1797 jint rv = -1;
1798 Uint32 pos = ci->findQualifier(String(str));
1799
|
1800 schuur 1.1 if (pos!=PEG_NOT_FOUND) {
|
1801 mark.hamzy 1.20 rv = DEBUG_ConvertCToJava (CIMQualifier*, jint, new CIMQualifier(ci->getQualifier(pos)));
|
1802 schuur 1.1 }
|
1803 mark.hamzy 1.20
|
1804 schuur 1.1 jEnv->ReleaseStringUTFChars(jN,str);
|
1805 mark.hamzy 1.20
|
1806 schuur 1.1 return rv;
1807 }
1808
1809 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMInstance__1clone
|
1810 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jInst)
1811 {
1812 CIMInstance *ci = DEBUG_ConvertJavaToC (jint, CIMInstance*, jInst);
1813 CIMInstance *cl = new CIMInstance(ci->clone());
1814
1815 return DEBUG_ConvertCToJava (CIMInstance*, jint, cl);
|
1816 schuur 1.1 }
1817
1818 JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_CIMInstance__1getProperties
|
1819 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jInst, jobject jVec)
1820 {
1821 CIMInstance *ci = DEBUG_ConvertJavaToC (jint, CIMInstance*, jInst);
|
1822 mark.hamzy 1.16
|
1823 schuur 1.1 for (int i=0,s=ci->getPropertyCount(); i<s; i++) {
|
1824 mark.hamzy 1.20 CIMProperty *cp = new CIMProperty(ci->getProperty(i));
1825 jint jCp = DEBUG_ConvertCToJava (CIMProperty*, jint, cp);
|
1826 mark.hamzy 1.16
|
1827 mark.hamzy 1.26 jobject prop=jEnv->NewObject(JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewI,jCp);
|
1828 mark.hamzy 1.16
|
1829 mark.hamzy 1.26 jEnv->CallVoidMethod(jVec,JMPIjvm::jv.VectorAddElement,prop);
|
1830 schuur 1.1 }
|
1831 mark.hamzy 1.16
|
1832 schuur 1.1 return jVec;
1833 }
1834
1835 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMInstance__1finalize
|
1836 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jInst)
1837 {
1838 CIMInstance *ci = DEBUG_ConvertJavaToC (jint, CIMInstance*, jInst);
1839
|
1840 schuur 1.1 delete ci;
|
1841 mark.hamzy 1.20
1842 DEBUG_ConvertCleanup (jint, jInst);
|
1843 schuur 1.1 }
1844
|
1845 schuur 1.7 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMInstance__1filterProperties
|
1846 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jInst, jobjectArray jPl, jboolean iq, jboolean ic, jboolean lo)
1847 {
1848 CIMInstance *ci = DEBUG_ConvertJavaToC (jint, CIMInstance*, jInst);
|
1849 mark.hamzy 1.22 CIMInstance *cf = 0;
|
1850 mark.hamzy 1.20 CIMName clsn = ci->getClassName();
|
1851 schuur 1.7
1852 if (lo) {
1853 cf=new CIMInstance(ci->clone());
1854 CIMName clsn=ci->getClassName();
1855 for (int i=cf->getPropertyCount()-1; i>=0; i--)
1856 if (cf->getProperty(i).getClassOrigin()==clsn) cf->removeProperty(i);
|
1857 mark.hamzy 1.20 return DEBUG_ConvertCToJava (CIMInstance*, jint, cf);
|
1858 schuur 1.7 }
1859 else if (jPl) {
1860 CIMPropertyList pl=getList(jEnv,jPl);
1861 Array<CIMName> n=pl.getPropertyNameArray();
1862 cf=new CIMInstance(clsn);
1863 for (int i=0,s=n.size(); i<s; i++) {
1864 Uint32 pos=ci->findProperty(n[i]);
1865 if (pos!=PEG_NOT_FOUND) {
1866 if (iq) {
1867 CIMProperty cp=ci->getProperty(pos).clone();
1868 if (!ic) cp.setClassOrigin(CIMName());
1869 cf->addProperty(cp);
1870 }
1871 else {
1872 CIMProperty cp=ci->getProperty(pos);
1873 CIMName co;
1874 if (ic) co=cp.getClassOrigin();
1875 CIMProperty np(cp.getName(),cp.getValue(),cp.getArraySize(),
1876 cp.getReferenceClassName(),co,cp.getPropagated());
1877 cf->addProperty(np);
1878 }
1879 schuur 1.7 }
1880 }
1881 cf->setPath(ci->getPath());
1882 }
1883 else if (iq) {
1884 cf=new CIMInstance(ci->clone());
|
1885 mark.hamzy 1.20 if (ic) return DEBUG_ConvertCToJava (CIMInstance*, jint, cf);
|
1886 schuur 1.7 for (int i=cf->getPropertyCount()-1; i>=0; i--) {
1887 CIMProperty cp=cf->getProperty(i);
1888 cp.setClassOrigin(CIMName());
1889 cf->removeProperty(i);
1890 cf->addProperty(cp);
1891 }
1892 }
1893 else {
1894 cf=new CIMInstance(clsn);
1895 for (int i=ci->getPropertyCount()-1; i>=0; i--) {
1896 CIMProperty cp=ci->getProperty(i);
1897 CIMName co;
1898 if (ic) co=cp.getClassOrigin();
1899 CIMProperty np(cp.getName(),cp.getValue(),cp.getArraySize(),
1900 cp.getReferenceClassName(),co,cp.getPropagated());
1901 cf->addProperty(np);
1902 }
1903 cf->setPath(ci->getPath());
1904 }
1905
|
1906 mark.hamzy 1.20 return DEBUG_ConvertCToJava (CIMInstance*, jint, cf);
|
1907 schuur 1.7 }
|
1908 schuur 1.1
1909 // -------------------------------------
1910 // ---
1911 // - CIMObjectPath
1912 // ---
1913 // -------------------------------------
1914
|
1915 mark.hamzy 1.20 CIMObjectPath* construct()
1916 {
1917 CIMObjectPath *cop = new CIMObjectPath();
1918 _nameSpace n;
1919
|
1920 schuur 1.1 cop->setNameSpace(n.nameSpace());
1921 cop->setHost(n.hostName());
|
1922 mark.hamzy 1.20
|
1923 schuur 1.1 return cop;
1924 }
1925
1926 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1new
|
1927 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs)
1928 {
1929 return DEBUG_ConvertCToJava (CIMObjectPath*, jint, construct());
|
1930 schuur 1.1 }
1931
1932 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1newCn
|
1933 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jstring jCn)
1934 {
1935 CIMObjectPath *cop = construct();
1936 const char *str = jEnv->GetStringUTFChars(jCn,NULL);
1937
1938 if (str)
1939 cop->setClassName(str);
|
1940 schuur 1.1 jEnv->ReleaseStringUTFChars(jCn,str);
|
1941 mark.hamzy 1.20
1942 return DEBUG_ConvertCToJava (CIMObjectPath*, jint, cop);
|
1943 schuur 1.1 }
1944
1945 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1newCnNs
|
1946 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jstring jCn, jstring jNs)
1947 {
1948 CIMObjectPath *cop = construct();
1949 const char *str1 = NULL;
1950 const char *str2 = NULL;
|
1951 schuur 1.1
1952 try {
|
1953 schuur 1.6 if (jCn) str1=jEnv->GetStringUTFChars(jCn,NULL);
1954 if (jNs) str2=jEnv->GetStringUTFChars(jNs,NULL);
|
1955 schuur 1.1 if (str1) cop->setClassName(str1);
1956 if (str2) cop->setNameSpace(str2);
1957 }
|
1958 schuur 1.5 Catch(jEnv);
|
1959 schuur 1.1
|
1960 schuur 1.6 if (str1) jEnv->ReleaseStringUTFChars(jCn,str1);
1961 if (str2) jEnv->ReleaseStringUTFChars(jNs,str2);
|
1962 mark.hamzy 1.20
1963 return DEBUG_ConvertCToJava (CIMObjectPath*, jint, cop);
|
1964 schuur 1.1 }
1965
1966 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1_newCi
|
1967 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jInst)
1968 {
1969 CIMInstance *ci = DEBUG_ConvertJavaToC (jint, CIMInstance*, jInst);
1970 CIMObjectPath *cop = new CIMObjectPath(ci->getPath());
1971 _nameSpace n;
1972
|
1973 schuur 1.1 if (cop->getNameSpace().isNull()) cop->setNameSpace(n.nameSpace());
1974 if (cop->getHost()==NULL) cop->setHost(n.hostName());
|
1975 mark.hamzy 1.20
1976 return DEBUG_ConvertCToJava (CIMObjectPath*, jint, cop);
|
1977 schuur 1.1 }
1978
1979 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1finalize
|
1980 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCop)
1981 {
1982 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
1983
|
1984 schuur 1.1 delete cop;
|
1985 mark.hamzy 1.20
1986 DEBUG_ConvertCleanup (jint, jCop);
|
1987 schuur 1.1 }
1988
1989 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1getHost
|
1990 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCop)
1991 {
1992 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
1993 const String &hn = cop->getHost();
1994
|
1995 schuur 1.1 jstring str=jEnv->NewStringUTF(hn.getCString());
|
1996 mark.hamzy 1.20
|
1997 schuur 1.1 return str;
1998 }
1999
2000 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1setHost
|
2001 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCop, jstring jName)
2002 {
2003 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
2004 const char *str = jEnv->GetStringUTFChars(jName,NULL);
2005
|
2006 schuur 1.1 cop->setHost(String(str));
2007 jEnv->ReleaseStringUTFChars(jName,str);
2008 }
2009
2010 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1getObjectName
|
2011 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCop)
2012 {
2013 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
2014 const String &cn = cop->getClassName().getString();
2015
|
2016 schuur 1.1 jstring str=jEnv->NewStringUTF(cn.getCString());
|
2017 mark.hamzy 1.20
|
2018 schuur 1.1 return str;
2019 }
2020
2021 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1setObjectName
|
2022 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCop, jstring jName)
2023 {
2024 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
2025 const char *str = jEnv->GetStringUTFChars(jName,NULL);
2026
|
2027 schuur 1.1 cop->setClassName(String(str));
2028 jEnv->ReleaseStringUTFChars(jName,str);
2029 }
2030
2031 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1getNameSpace
|
2032 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCop)
2033 {
2034 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
2035 const String &ns = cop->getNameSpace().getString();
2036
|
2037 schuur 1.1 jstring str=jEnv->NewStringUTF(ns.getCString());
|
2038 mark.hamzy 1.20
|
2039 schuur 1.1 return str;
2040 }
2041
2042 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1setNameSpace
|
2043 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCop, jstring jName)
2044 {
2045 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
2046 const char *str = jEnv->GetStringUTFChars(jName,NULL);
2047
|
2048 schuur 1.1 cop->setNameSpace(CIMNamespaceName(str));
2049 jEnv->ReleaseStringUTFChars(jName,str);
2050 }
2051
2052 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1addKey
|
2053 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCop, jstring jId, jint jVal)
2054 {
2055 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
2056 const char *str = jEnv->GetStringUTFChars(jId,NULL);
2057 CIMValue *cv = DEBUG_ConvertJavaToC (jint, CIMValue*, jVal);
2058 Array<CIMKeyBinding> keyBindings = cop->getKeyBindings();
2059
|
2060 schuur 1.1 keyBindings.append(CIMKeyBinding(str,*cv));
2061 cop->setKeyBindings(Array<CIMKeyBinding>(keyBindings));
2062 jEnv->ReleaseStringUTFChars(jId,str);
2063 }
2064
2065 JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1getKeys
|
2066 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCop, jobject jVec)
2067 {
2068 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
2069 const Array<CIMKeyBinding> &akb = cop->getKeyBindings();
|
2070 schuur 1.1
2071 for (Uint32 i=0,s=akb.size(); i<s; i++) {
2072 const String &n=akb[i].getName().getString();
2073 const String &v=akb[i].getValue();
2074 CIMKeyBinding::Type t=akb[i].getType();
|
2075 mark.hamzy 1.20 CIMValue *cv = 0;
|
2076 schuur 1.1 switch (t) {
2077 case CIMKeyBinding::NUMERIC:
2078 cv=new CIMValue((Sint32)atol(v.getCString()));
2079 break;
2080 case CIMKeyBinding::STRING:
2081 cv=new CIMValue(v);
2082 break;
2083 case CIMKeyBinding::BOOLEAN:
2084 cv=new CIMValue((Boolean)(v.getCString()));
2085 break;
2086 case CIMKeyBinding::REFERENCE:
2087 cv = new CIMValue(CIMObjectPath(akb[i].getValue()));
2088 break;
2089 default:
2090 throwCIMException(jEnv,"+++ unsupported type: ");
2091 }
|
2092 r.kieninger 1.11
|
2093 mark.hamzy 1.20 CIMProperty *cp = 0;
2094 if (t!=CIMKeyBinding::REFERENCE)
|
2095 schuur 1.1 cp=new CIMProperty(n,*cv);
|
2096 mark.hamzy 1.20 else
2097 cp=new CIMProperty(n,*cv, 0, ((CIMObjectPath) akb[i].getValue()).getClassName());
2098
2099 jint jCp = DEBUG_ConvertCToJava (CIMProperty*, jint, cp);
|
2100 mark.hamzy 1.26 jobject prop = jEnv->NewObject(JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewI,jCp);
|
2101 schuur 1.1
|
2102 mark.hamzy 1.26 jEnv->CallVoidMethod(jVec,JMPIjvm::jv.VectorAddElement,prop);
|
2103 schuur 1.1 }
|
2104 mark.hamzy 1.20
|
2105 schuur 1.1 return jVec;
2106 }
2107
2108 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1getKeyValue
|
2109 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCop, jstring jStr)
2110 {
2111 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
2112 const Array<CIMKeyBinding> &akb = cop->getKeyBindings();
2113 const char *strKeyName = jEnv->GetStringUTFChars(jStr,NULL);
2114 jstring retStr = NULL;
2115
|
2116 schuur 1.1 for (Uint32 i=0,s=akb.size(); i<s; i++) {
2117 const String &n=akb[i].getName().getString();
2118 if (n==String(strKeyName)) {
2119 retStr=jEnv->NewStringUTF(akb[i].getValue().getCString());
2120 break;
2121 }
2122 }
|
2123 mark.hamzy 1.20
|
2124 schuur 1.1 jEnv->ReleaseStringUTFChars(jStr,strKeyName);
|
2125 mark.hamzy 1.20
|
2126 schuur 1.1 return retStr;
2127 }
2128
2129 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1set
|
2130 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jstring jStr)
2131 {
2132 const char *strCop = jEnv->GetStringUTFChars(jStr,NULL);
2133 CIMObjectPath *cop = new CIMObjectPath();
2134
|
2135 schuur 1.1 cop->set(String(strCop));
2136 jEnv->ReleaseStringUTFChars(jStr,strCop);
|
2137 mark.hamzy 1.20
2138 return DEBUG_ConvertCToJava (CIMObjectPath*, jint, cop);
|
2139 schuur 1.1 }
2140
2141 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1setKeys
|
2142 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCop, jobject jVec)
2143 {
2144 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
2145 Array<CIMKeyBinding> akb;
2146
|
2147 mark.hamzy 1.26 for (Uint32 i=0,s=jEnv->CallIntMethod(jVec,JMPIjvm::jv.VectorSize); i<s; i++) {
2148 jobject o=jEnv->CallObjectMethod(jVec,JMPIjvm::jv.VectorElementAt,(i));
|
2149 mark.hamzy 1.20
|
2150 mark.hamzy 1.26 jint jCp = jEnv->CallIntMethod(o,JMPIjvm::jv.CIMPropertyCInst);
|
2151 mark.hamzy 1.20 CIMProperty *cp = DEBUG_ConvertJavaToC (jint, CIMProperty*, jCp);
2152
|
2153 schuur 1.1 akb.append(CIMKeyBinding(cp->getName(),cp->getValue()));
2154 }
2155 cop->setKeyBindings(akb);
2156 }
2157
2158 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1clone
|
2159 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCop)
2160 {
2161 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
2162 CIMObjectPath *copl = new CIMObjectPath(cop->getHost(), cop->getNameSpace(), cop->getClassName(), cop->getKeyBindings());
2163
2164 return DEBUG_ConvertCToJava (CIMObjectPath*, jint, copl);
|
2165 schuur 1.1 }
2166
2167 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMObjectPath__1toString
|
2168 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCop)
2169 {
2170 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
2171 const String &ns = cop->toString();
2172
|
2173 schuur 1.1 jstring str=jEnv->NewStringUTF(ns.getCString());
|
2174 mark.hamzy 1.20
|
2175 schuur 1.1 return str;
2176 }
2177
2178 // -------------------------------------
2179 // ---
2180 // - CIMDataType
2181 // ---
2182 // -------------------------------------
2183
2184 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMDataType__1new
|
2185 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint type)
2186 {
2187 return DEBUG_ConvertCToJava (_dataType*, jint, new _dataType(type));
|
2188 schuur 1.1 }
2189
2190 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMDataType__1newAr
|
2191 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint type, jint size)
2192 {
2193 return DEBUG_ConvertCToJava (_dataType*, jint, new _dataType(type,size));
|
2194 schuur 1.1 }
2195
2196 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMDataType__1newRef
|
2197 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint type, jstring jRef)
2198 {
2199 const char *ref = jEnv->GetStringUTFChars(jRef,NULL);
2200 jint cInst = DEBUG_ConvertCToJava (_dataType*, jint, new _dataType(type,String(ref)));
2201
|
2202 schuur 1.1 jEnv->ReleaseStringUTFChars(jRef,ref);
|
2203 mark.hamzy 1.20
|
2204 schuur 1.1 return cInst;
2205 }
2206
2207 JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMDataType__1isArray
|
2208 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jDt)
2209 {
2210 _dataType *dt = DEBUG_ConvertJavaToC (jint, _dataType*, jDt);
2211
|
2212 schuur 1.1 return dt->_array==true;
2213 }
2214
2215 JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMDataType__1isreference
|
2216 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jDt)
2217 {
2218 _dataType *dt = DEBUG_ConvertJavaToC (jint, _dataType*, jDt);
2219
|
2220 schuur 1.1 return dt->_reference==true;
2221 }
2222
2223 JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMDataType__1isReference
|
2224 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jDt)
2225 {
2226 _dataType *dt = DEBUG_ConvertJavaToC (jint, _dataType*, jDt);
2227
|
2228 schuur 1.1 return dt->_reference==true;
2229 }
2230
2231 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMDataType__1getType
|
2232 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jDt)
2233 {
2234 _dataType *dt = DEBUG_ConvertJavaToC (jint, _dataType*, jDt);
2235
|
2236 schuur 1.1 return dt->_type;
2237 }
2238
2239 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMDataType__1getSize
|
2240 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jDt)
2241 {
2242 _dataType *dt = DEBUG_ConvertJavaToC (jint, _dataType*, jDt);
2243
|
2244 schuur 1.1 return dt->_size;
2245 }
2246
2247 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMDataType__1getRefClassName
|
2248 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jDt)
2249 {
2250 _dataType *dt = DEBUG_ConvertJavaToC (jint, _dataType*, jDt);
2251 jstring str = jEnv->NewStringUTF(dt->_refClass.getCString());
2252
|
2253 schuur 1.1 return str;
2254 }
2255
2256 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMDataType__1toString
|
2257 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jDt)
2258 {
2259 _dataType *dt = DEBUG_ConvertJavaToC (jint, _dataType*, jDt);
2260 jstring str = NULL;
2261
|
2262 schuur 1.1 if (dt->_type & 0x10) {
2263 char tmp[32];
2264 strcpy(tmp,jTypeToChars[dt->_type-0x10]);
2265 strcat(tmp,"[]");
2266 str=jEnv->NewStringUTF(tmp);
|
2267 schuur 1.5 }
|
2268 schuur 1.1 else if (dt->_type & 0x20) {
2269 String tmp=dt->_refClass+" REF";
2270 str=jEnv->NewStringUTF(tmp.getCString());
|
2271 schuur 1.6 }
|
2272 schuur 1.1 else {
2273 str=jEnv->NewStringUTF(jTypeToChars[dt->_type]);
2274 }
|
2275 mark.hamzy 1.20
|
2276 schuur 1.1 return str;
2277 }
2278
|
2279 mark.hamzy 1.24 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMDataType__1finalize
2280 (JNIEnv *jEnv, jobject jThs, jint jDt)
2281 {
2282 _dataType *dt = DEBUG_ConvertJavaToC (jint, _dataType*, jDt);
2283
2284 delete dt;
2285
2286 DEBUG_ConvertCleanup (jint, jDt);
2287 }
2288
2289 CIMType toPtype (int jType)
2290 {
2291 if (jType > 13)
2292 return (CIMType)14;
2293 return
2294 (CIMType)(jTypeToPType[jType]);
|
2295 schuur 1.5 }
|
2296 schuur 1.1
2297
2298 // -------------------------------------
2299 // ---
|
2300 schuur 1.6 // - CIMArgument
2301 // ---
2302 // -------------------------------------
2303
2304 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMArgument__1getValue
|
2305 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jP)
2306 {
2307 CIMParamValue *cp = DEBUG_ConvertJavaToC (jint, CIMParamValue*, jP);
2308 CIMValue *cv = new CIMValue(cp->getValue());
2309
2310 return DEBUG_ConvertCToJava (CIMValue*, jint, cv);
|
2311 schuur 1.6 }
2312
2313 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMArgument__1new
|
2314 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs)
2315 {
2316 CIMParamValue *p = new CIMParamValue(String::EMPTY,CIMValue());
2317
2318 return DEBUG_ConvertCToJava (CIMParamValue*, jint, p);
|
2319 schuur 1.6 }
2320
2321 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMArgument__1newS
|
2322 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jstring jN)
2323 {
2324 const char *str = jEnv->GetStringUTFChars(jN,NULL);
2325 CIMParamValue *p = new CIMParamValue(str,CIMValue());
2326
|
2327 schuur 1.6 jEnv->ReleaseStringUTFChars(jN,str);
|
2328 mark.hamzy 1.20
2329 return DEBUG_ConvertCToJava (CIMParamValue*, jint, p);
|
2330 schuur 1.6 }
2331
2332 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMArgument__1newSV
|
2333 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jstring jN, jint jV)
2334 {
2335 const char *str = jEnv->GetStringUTFChars(jN,NULL);
2336 CIMValue *cv = DEBUG_ConvertJavaToC (jint, CIMValue*, jV);
2337 CIMParamValue *p = new CIMParamValue(str,cv);
2338
|
2339 schuur 1.6 jEnv->ReleaseStringUTFChars(jN,str);
|
2340 mark.hamzy 1.20
2341 return DEBUG_ConvertCToJava (CIMParamValue*, jint, p);
|
2342 schuur 1.6 }
2343
2344 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMArgument__1setValue
|
2345 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jP,jint jV)
2346 {
2347 CIMParamValue *cp = DEBUG_ConvertJavaToC (jint, CIMParamValue*, jP);
2348 CIMValue *cv = DEBUG_ConvertJavaToC (jint, CIMValue*, jV);
2349
|
2350 schuur 1.6 cp->setValue(*cv);
2351 }
2352
2353 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMArgument__1getName
|
2354 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jP)
2355 {
2356 CIMParamValue *cp = DEBUG_ConvertJavaToC (jint, CIMParamValue*, jP);
2357 const String &n = cp->getParameterName();
2358 jstring str = jEnv->NewStringUTF(n.getCString());
2359
|
2360 schuur 1.6 return str;
2361 }
2362
2363 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMArgument__1setName
|
2364 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jP, jstring jN)
2365 {
2366 CIMParamValue *cp = DEBUG_ConvertJavaToC (jint, CIMParamValue*, jP);
2367 const char *str = jEnv->GetStringUTFChars(jN,NULL);
2368 String n(str);
2369
|
2370 schuur 1.6 cp->setParameterName(n);
2371 jEnv->ReleaseStringUTFChars(jN,str);
2372 }
2373
2374 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMArgument__1getType
|
2375 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jP)
2376 {
2377 CIMParamValue *cp = DEBUG_ConvertJavaToC (jint, CIMParamValue*, jP);
2378 const CIMValue cv = cp->getValue();
2379 String ref;
2380 _dataType *type = new _dataType(pTypeToJType[cv.getType()],
2381 cv.getArraySize(),
2382 false,
2383 false,
2384 cv.isArray(),
2385 ref,
2386 true);
2387
2388 return DEBUG_ConvertCToJava (_dataType*, jint, type);
|
2389 schuur 1.6 }
2390
2391 // -------------------------------------
2392 // ---
|
2393 schuur 1.1 // - CIMProperty
2394 // ---
2395 // -------------------------------------
2396
2397 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMProperty__1getValue
|
2398 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jP)
2399 {
2400 CIMProperty *cp = DEBUG_ConvertJavaToC (jint, CIMProperty*, jP);
2401 CIMValue *cv = new CIMValue(cp->getValue());
2402
2403 return DEBUG_ConvertCToJava (CIMValue*, jint, cv);
|
2404 schuur 1.1 }
2405
|
2406 schuur 1.5 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMProperty__1new
|
2407 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jstring jN, jint jV)
2408 {
2409 CIMProperty *p = new CIMProperty(CIMName(),CIMValue());
2410
2411 return DEBUG_ConvertCToJava (CIMProperty*, jint, p);
|
2412 schuur 1.5 }
2413
|
2414 schuur 1.1 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMProperty__1property
|
2415 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jstring jN, jint jV)
2416 {
|
2417 schuur 1.1 try {
|
2418 mark.hamzy 1.20 CIMValue *cv = DEBUG_ConvertJavaToC (jint, CIMValue*, jV);
2419 const char *str = jEnv->GetStringUTFChars(jN,NULL);
2420 CIMProperty *cp = 0;
|
2421 schuur 1.1
2422 if (cv->getType()!=CIMTYPE_REFERENCE)
2423 cp=new CIMProperty(String(str),*cv);
2424 else {
2425 if (!cv->isArray()) {
2426 CIMObjectPath cop;
2427 cv->get(cop);
2428 cp=new CIMProperty(String(str),*cv,0, cop.getClassName());
2429 }
2430 else {
2431 throwCIMException(jEnv,"+++ unsupported type in CIMProperty.property");
2432 }
2433 }
2434
2435 jEnv->ReleaseStringUTFChars(jN,str);
|
2436 mark.hamzy 1.20
2437 return DEBUG_ConvertCToJava (CIMProperty*, jint, cp);
|
2438 schuur 1.1 }
2439 Catch(jEnv);
|
2440 mark.hamzy 1.20
|
2441 schuur 1.1 return -1;
2442 }
2443
2444 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMProperty__1setValue
|
2445 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jP,jint jV)
2446 {
2447 CIMProperty *cp = DEBUG_ConvertJavaToC (jint, CIMProperty*, jP);
2448 CIMValue *cv = DEBUG_ConvertJavaToC (jint, CIMValue*, jV);
2449
|
2450 schuur 1.1 cp->setValue(*cv);
2451 }
2452
2453 JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMProperty__1isArray
|
2454 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jP)
2455 {
2456 CIMProperty *cp = DEBUG_ConvertJavaToC (jint, CIMProperty*, jP);
2457
|
2458 schuur 1.1 return (jboolean)cp->isArray();
2459 }
2460
2461 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMProperty__1addValue
|
2462 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jP, jint jV)
2463 {
2464 CIMProperty *cp = DEBUG_ConvertJavaToC (jint, CIMProperty*, jP);
2465 CIMValue *cvin = DEBUG_ConvertJavaToC (jint, CIMValue*, jV);
2466 CIMValue cv = cp->getValue();
2467
|
2468 schuur 1.1 if (cvin->isNull())
2469 throwCIMException(jEnv,"+++ null cvin value ");
2470 if (!cv.isArray())
2471 throwCIMException(jEnv,"+++ not an array ");
2472 if (cvin->getType()!=cv.getType())
2473 throwCIMException(jEnv,"+++ type mismatch ");
|
2474 mark.hamzy 1.20
|
2475 schuur 1.1 CIMType type=cv.getType();
|
2476 mark.hamzy 1.20
|
2477 schuur 1.1 switch (type) {
2478 case CIMTYPE_BOOLEAN: {
2479 Boolean bo;
2480 cvin->get(bo);
2481 Array<Boolean> boarr;
2482 cv.get(boarr);
2483 boarr.append(bo);
2484 }
2485 break;
2486 case CIMTYPE_UINT8: {
2487 Uint8 u8;
2488 cvin->get(u8);
2489 Array<Uint8> u8arr;
2490 cv.get(u8arr);
2491 u8arr.append(u8);
2492 }
2493 break;
2494 case CIMTYPE_SINT8: {
2495 Sint8 s8;
2496 cvin->get(s8);
2497 Array<Sint8> s8arr;
2498 schuur 1.1 cv.get(s8arr);
2499 s8arr.append(s8);
2500 }
2501 break;
2502 case CIMTYPE_UINT16: {
2503 Uint16 u16;
2504 cvin->get(u16);
2505 Array<Uint16> u16arr;
2506 cv.get(u16arr);
2507 u16arr.append(u16);
2508 }
2509 break;
2510 case CIMTYPE_SINT16: {
2511 Sint16 s16;
2512 cvin->get(s16);
2513 Array<Sint16> s16arr;
2514 cv.get(s16arr);
2515 s16arr.append(s16);
2516 }
2517 break;
2518 case CIMTYPE_UINT32: {
2519 schuur 1.1 Uint32 u32;
2520 cvin->get(u32);
2521 Array<Uint32> u32arr;
2522 cv.get(u32arr);
2523 u32arr.append(u32);
2524 }
2525 break;
2526 case CIMTYPE_SINT32: {
2527 Sint32 s32;
2528 cvin->get(s32);
2529 Array<Sint32> s32arr;
2530 cv.get(s32arr);
2531 s32arr.append(s32);
2532 }
2533 break;
2534 case CIMTYPE_UINT64: {
2535 Uint64 u64;
2536 cvin->get(u64);
2537 Array<Uint64> u64arr;
2538 cv.get(u64arr);
2539 u64arr.append(u64);
2540 schuur 1.1 }
2541 break;
2542 case CIMTYPE_SINT64: {
2543 Sint64 s64;
2544 cvin->get(s64);
2545 Array<Sint64> s64arr;
2546 cv.get(s64arr);
2547 s64arr.append(s64);
2548 }
2549 break;
2550 case CIMTYPE_REAL32: {
2551 Real32 f;
2552 cvin->get(f);
2553 Array<Real32> farr;
2554 cv.get(farr);
2555 farr.append(f);
2556 }
2557 break;
2558 case CIMTYPE_REAL64: {
2559 Real64 d;
2560 cvin->get(d);
2561 schuur 1.1 Array<Real64> darr;
2562 cv.get(darr);
2563 darr.append(d);
2564 }
2565 break;
2566 case CIMTYPE_STRING: {
2567 String str;
2568 cvin->get(str);
2569 Array<String> strarr;
2570 cv.get(strarr);
2571 strarr.append(str);
2572 }
2573 break;
2574 case CIMTYPE_REFERENCE: {
2575 CIMObjectPath ref;
2576 cvin->get(ref);
2577 Array<CIMObjectPath> refarr;
2578 cv.get(refarr);
2579 refarr.append(ref);
2580 }
2581 break;
|
2582 dave.sudlik 1.13 case CIMTYPE_OBJECT: {
2583 CIMObject obj;
2584 cvin->get(obj);
2585 Array<CIMObject> objarr;
2586 cv.get(objarr);
2587 objarr.append(obj);
2588 }
2589 break;
|
2590 schuur 1.1 default:
2591 throwCIMException(jEnv,"+++ unsupported type ");
2592 }
2593 }
2594
|
2595 schuur 1.5 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMProperty__1addQualifier
|
2596 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jP, jint jQ)
2597 {
2598 CIMProperty *cp = DEBUG_ConvertJavaToC (jint, CIMProperty*, jP);
2599 CIMQualifier *cq = DEBUG_ConvertJavaToC (jint, CIMQualifier*, jQ);
2600
|
2601 schuur 1.5 cp->addQualifier(*cq);
2602 }
2603
|
2604 schuur 1.1 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMProperty__1getName
|
2605 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jP)
2606 {
2607 CIMProperty *cp = DEBUG_ConvertJavaToC (jint, CIMProperty*, jP);
2608 const String &n = cp->getName().getString();
2609 jstring str = jEnv->NewStringUTF(n.getCString());
2610
|
2611 schuur 1.1 return str;
2612 }
2613
|
2614 schuur 1.5 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMProperty__1setName
|
2615 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jP, jstring jN)
2616 {
2617 CIMProperty *cp = DEBUG_ConvertJavaToC (jint, CIMProperty*, jP);
2618 const char *str = jEnv->GetStringUTFChars(jN,NULL);
2619
|
2620 schuur 1.5 cp->setName(CIMName(str));
2621 jEnv->ReleaseStringUTFChars(jN,str);
2622 }
2623
|
2624 schuur 1.1 JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMProperty__1isReference
|
2625 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jP)
2626 {
2627 CIMProperty *cp = DEBUG_ConvertJavaToC (jint, CIMProperty*, jP);
2628
|
2629 schuur 1.1 return (jboolean)(cp->getType()==CIMTYPE_REFERENCE);
2630 }
2631
2632 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMProperty__1getRefClassName
|
2633 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jP)
2634 {
2635 CIMProperty *cp = DEBUG_ConvertJavaToC (jint, CIMProperty*, jP);
2636 const String &n = cp->getReferenceClassName().getString();
2637
|
2638 schuur 1.1 jstring str=jEnv->NewStringUTF(n.getCString());
|
2639 mark.hamzy 1.20
|
2640 schuur 1.1 return str;
2641 }
2642
2643 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMProperty__1getType
|
2644 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jP)
2645 {
2646 CIMProperty *cp = DEBUG_ConvertJavaToC (jint, CIMProperty*, jP);
2647 String ref = cp->getReferenceClassName().getString();
2648 _dataType *type = new _dataType(pTypeToJType[cp->getType()],
2649 cp->getArraySize(),
2650 ref.size() ? true : false,
2651 false,
2652 cp->isArray(),
2653 ref,
2654 true);
2655
2656 return DEBUG_ConvertCToJava (_dataType*, jint, type);
|
2657 schuur 1.1 }
2658
|
2659 schuur 1.5 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMProperty__1setType
|
2660 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jP, jint jDt)
2661 {
2662 CIMProperty *cp = DEBUG_ConvertJavaToC (jint, CIMProperty*, jP);
2663 _dataType *dt = (_dataType*)jDt;
2664 CIMValue val;
2665
|
2666 schuur 1.5 val.setNullValue(toPtype(dt->_type),dt->_array);
|
2667 mark.hamzy 1.20
2668 CIMProperty *np = new CIMProperty(cp->getName(),val);
2669
|
2670 schuur 1.5 delete cp;
|
2671 mark.hamzy 1.20
2672 return DEBUG_ConvertCToJava (CIMProperty*, jint, np);
|
2673 schuur 1.5 }
2674
|
2675 schuur 1.1 JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_CIMProperty__1getIdentifier
|
2676 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jP)
2677 {
2678 CIMProperty *cp = DEBUG_ConvertJavaToC (jint, CIMProperty*, jP);
2679 const String &n = cp->getName().getString();
2680 jstring str = jEnv->NewStringUTF(n.getCString());
2681
|
2682 schuur 1.1 return str;
2683 }
2684
2685 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMProperty__1finalize
|
2686 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jP)
2687 {
2688 CIMProperty *cp = DEBUG_ConvertJavaToC (jint, CIMProperty*, jP);
2689
|
2690 schuur 1.1 delete cp;
|
2691 mark.hamzy 1.20
2692 DEBUG_ConvertCleanup (jint, jP);
|
2693 schuur 1.1 }
|
2694 schuur 1.5
2695 // -------------------------------------
2696 // ---
2697 // - CIMQualifierType
2698 // ---
2699 // -------------------------------------
2700
2701 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMQualifierType__1new
|
2702 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs)
2703 {
|
2704 schuur 1.5 CIMQualifierDecl *qual = new CIMQualifierDecl();
|
2705 mark.hamzy 1.20
2706 return DEBUG_ConvertCToJava (CIMQualifierDecl*, jint, qual);
|
2707 schuur 1.5 }
2708
2709 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMQualifierType__1finalize
|
2710 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jQ)
2711 {
2712 CIMQualifierDecl *qt = DEBUG_ConvertJavaToC (jint, CIMQualifierDecl*, jQ);
2713
|
2714 schuur 1.5 delete qt;
|
2715 mark.hamzy 1.20
2716 DEBUG_ConvertCleanup (jint, jQ);
|
2717 schuur 1.5 }
2718
2719 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMQualifierType__1getName
|
2720 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jQ)
2721 {
2722 CIMQualifierDecl *qt = DEBUG_ConvertJavaToC (jint, CIMQualifierDecl*, jQ);
2723 const String &n = qt->getName().getString();
2724 jstring str = jEnv->NewStringUTF(n.getCString());
2725
|
2726 schuur 1.5 return str;
2727 }
2728
|
2729 schuur 1.6 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMQualifierType__1setName
|
2730 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jQ, jstring jN)
2731 {
|
2732 mark.hamzy 1.24 CIMQualifierDecl *qt = DEBUG_ConvertJavaToC (jint, CIMQualifierDecl*, jQ);
2733 const char *str = jEnv->GetStringUTFChars(jN,NULL);
2734 jint jret = 0;
|
2735 mark.hamzy 1.20
|
2736 schuur 1.6 if (qt->isUninitialized())
|
2737 mark.hamzy 1.24 {
2738 CIMQualifierDecl *nqt = new CIMQualifierDecl(CIMName(str),CIMValue(),CIMScope());
2739
2740 jret = DEBUG_ConvertCToJava (CIMQualifierDecl*, jint, nqt);
2741 }
|
2742 mark.hamzy 1.20 else
|
2743 mark.hamzy 1.24 {
|
2744 mark.hamzy 1.20 qt->setName(CIMName(str));
|
2745 mark.hamzy 1.24
2746 CIMQualifierDecl *nqt = new CIMQualifierDecl(*qt);
2747
2748 jret = DEBUG_ConvertCToJava (CIMQualifierDecl*, jint, nqt);
2749 }
2750
|
2751 schuur 1.5 jEnv->ReleaseStringUTFChars(jN,str);
|
2752 mark.hamzy 1.20
|
2753 mark.hamzy 1.24 return jret;
|
2754 schuur 1.5 }
2755
2756 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMQualifierType__1setValue
|
2757 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jQ,jint jV)
2758 {
2759 CIMQualifierDecl *qt = DEBUG_ConvertJavaToC (jint, CIMQualifierDecl*, jQ);
2760 CIMValue *cv = DEBUG_ConvertJavaToC (jint, CIMValue*, jV);
2761
|
2762 schuur 1.5 qt->setValue(*cv);
2763 }
2764
|
2765 schuur 1.1 // -------------------------------------
2766 // ---
2767 // - CIMQualifier
2768 // ---
2769 // -------------------------------------
2770
|
2771 schuur 1.5 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMQualifier__1new
|
2772 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jstring jN)
2773 {
2774 const char *str = jEnv->GetStringUTFChars(jN,NULL);
|
2775 schuur 1.5 CIMQualifier *qual = new CIMQualifier(CIMName(str),CIMValue());
|
2776 mark.hamzy 1.20
|
2777 schuur 1.5 jEnv->ReleaseStringUTFChars(jN,str);
|
2778 mark.hamzy 1.20
2779 return DEBUG_ConvertCToJava (CIMQualifier*, jint, qual);
|
2780 schuur 1.5 }
2781
|
2782 schuur 1.1 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMQualifier__1finalize
|
2783 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jQ)
2784 {
2785 CIMQualifier *cq=DEBUG_ConvertJavaToC (jint, CIMQualifier*, jQ);
2786
|
2787 schuur 1.1 delete cq;
|
2788 mark.hamzy 1.20
2789 DEBUG_ConvertCleanup (jint, jQ);
|
2790 schuur 1.1 }
2791
|
2792 schuur 1.5 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMQualifier__1getName
|
2793 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jQ)
2794 {
2795 CIMQualifier *cq = DEBUG_ConvertJavaToC (jint, CIMQualifier*, jQ);
2796 const String &n = cq->getName().getString();
2797 jstring str = jEnv->NewStringUTF(n.getCString());
2798
|
2799 schuur 1.5 return str;
2800 }
2801
2802 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMQualifier__1getValue
|
2803 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jQ)
2804 {
2805 CIMQualifier *cq = DEBUG_ConvertJavaToC (jint, CIMQualifier*, jQ);
2806 CIMValue *cv = new CIMValue(cq->getValue());
2807
2808 return DEBUG_ConvertCToJava (CIMValue*, jint, cv);
|
2809 schuur 1.5 }
2810
2811 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMQualifier__1setValue
|
2812 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jQ,jint jV)
2813 {
2814 CIMQualifier *cq = DEBUG_ConvertJavaToC (jint, CIMQualifier*, jQ);
2815 CIMValue *cv = DEBUG_ConvertJavaToC (jint, CIMValue*, jV);
2816
|
2817 schuur 1.5 cq->setValue(*cv);
2818 }
2819
|
2820 schuur 1.1 // -------------------------------------
2821 // ---
2822 // - CIMDateTime
2823 // ---
2824 // -------------------------------------
2825
2826 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMDateTime__1datetime
|
2827 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jstring jN)
2828 {
2829 const char *str = jEnv->GetStringUTFChars(jN,NULL);
2830 CIMDateTime *dt = 0;
2831
|
2832 schuur 1.1 if (strlen(str)==0)
2833 dt=new CIMDateTime();
2834 else
2835 dt=new CIMDateTime(String(str));
2836 jEnv->ReleaseStringUTFChars(jN,str);
|
2837 mark.hamzy 1.20
2838 return DEBUG_ConvertCToJava (CIMDateTime*, jint, dt);
|
2839 schuur 1.1 }
2840
2841 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMDateTime__1datetimeempty
|
2842 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs)
2843 {
2844 CIMDateTime *dt = new CIMDateTime(CIMDateTime::getCurrentDateTime ());
2845
2846 return DEBUG_ConvertCToJava (CIMDateTime*, jint, dt);
|
2847 schuur 1.1 }
2848
2849 JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMDateTime__1after
|
2850 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jC, jint jD)
2851 {
2852 CIMDateTime *ct = DEBUG_ConvertJavaToC (jint, CIMDateTime*, jC);
2853 CIMDateTime *dt = DEBUG_ConvertJavaToC (jint, CIMDateTime*, jD);
2854
|
2855 schuur 1.1 return (jboolean)(ct->getDifference(*ct, *dt)>0);
2856 }
2857
2858 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMDateTime__1finalize
|
2859 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jDT)
2860 {
2861 CIMDateTime *cdt = DEBUG_ConvertJavaToC (jint, CIMDateTime*, jDT);
2862
|
2863 schuur 1.1 delete cdt;
|
2864 mark.hamzy 1.20
2865 DEBUG_ConvertCleanup (jint, jDT);
|
2866 schuur 1.1 }
2867
2868 // -------------------------------------
2869 // ---
2870 // - CIMMethod
2871 // ---
2872 // -------------------------------------
2873
2874 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMMethod__1getType
|
2875 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jM)
2876 {
2877 CIMMethod *cm = DEBUG_ConvertJavaToC (jint, CIMMethod*, jM);
2878
|
2879 mark.hamzy 1.24 return DEBUG_ConvertCToJava (CIMType, jint, new CIMType (cm->getType()));
|
2880 schuur 1.1 }
2881
2882 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMMethod__1finalize
|
2883 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jM)
2884 {
2885 CIMMethod *cm = DEBUG_ConvertJavaToC (jint, CIMMethod*, jM);
2886
|
2887 schuur 1.1 delete cm;
|
2888 mark.hamzy 1.20
2889 DEBUG_ConvertCleanup (jint, jM);
|
2890 schuur 1.1 }
2891
2892 // -------------------------------------
2893 // ---
2894 // - CIMValue
2895 // ---
2896 // -------------------------------------
2897
2898
2899 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1byte
|
2900 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jbyte jb, jboolean notSigned)
2901 {
2902 CIMValue *cv = NULL;
2903
2904 if (notSigned)
2905 cv=new CIMValue((Uint8)jb);
2906 else
2907 cv=new CIMValue((Sint8)jb);
2908
2909 return DEBUG_ConvertCToJava (CIMValue*, jint, cv);
|
2910 schuur 1.1 }
2911
2912 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1short
|
2913 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jshort js, jboolean notSigned)
2914 {
2915 CIMValue *cv = NULL;
2916
2917 if (notSigned)
2918 cv=new CIMValue((Uint16)js);
2919 else
2920 cv=new CIMValue((Sint16)js);
2921
2922 return DEBUG_ConvertCToJava (CIMValue*, jint, cv);
|
2923 schuur 1.1 }
2924
2925 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue_makeInt
|
2926 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jlong ji, jboolean notSigned)
2927 {
2928 CIMValue *cv = NULL;
2929
2930 if (notSigned)
2931 cv = new CIMValue((Uint32)ji);
2932 else
2933 cv = new CIMValue((Sint32)ji);
2934
2935 return DEBUG_ConvertCToJava (CIMValue*, jint, cv);
|
2936 schuur 1.1 }
2937
2938 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1long
|
2939 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jlong jl, jboolean notSigned)
2940 {
2941 CIMValue *cv = NULL;
2942
2943 if (notSigned)
2944 cv=new CIMValue((Uint64)jl);
2945 else
2946 cv=new CIMValue((Sint64)jl);
2947
2948 return DEBUG_ConvertCToJava (CIMValue*, jint, cv);
|
2949 schuur 1.1 }
2950
2951 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1float
|
2952 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jfloat jF)
2953 {
2954 CIMValue *cv = new CIMValue(jF);
2955
2956 return DEBUG_ConvertCToJava (CIMValue*, jint, cv);
|
2957 schuur 1.1 }
2958
2959 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1double
|
2960 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jdouble jD)
2961 {
2962 CIMValue *cv = new CIMValue(jD);
2963
2964 return DEBUG_ConvertCToJava (CIMValue*, jint, cv);
|
2965 schuur 1.1 }
2966
2967 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1string
|
2968 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jstring jS)
2969 {
2970 const char *str = jEnv->GetStringUTFChars(jS,NULL);
2971 CIMValue *cv = new CIMValue(String(str));
2972
|
2973 schuur 1.1 jEnv->ReleaseStringUTFChars(jS,str);
|
2974 mark.hamzy 1.20
2975 return DEBUG_ConvertCToJava (CIMValue*, jint, cv);
|
2976 schuur 1.1 }
2977
2978 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1ref
|
2979 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jR)
2980 {
2981 CIMObjectPath *ref = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jR);
2982 CIMValue *cv = new CIMValue(*ref);
2983
2984 return DEBUG_ConvertCToJava (CIMValue*, jint, cv);
|
2985 schuur 1.1 }
2986
2987 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1datetime
|
2988 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jDT)
2989 {
2990 CIMDateTime *dt = DEBUG_ConvertJavaToC (jint, CIMDateTime*, jDT);
2991 CIMValue *cv = new CIMValue(*dt);
2992
2993 return DEBUG_ConvertCToJava (CIMValue*, jint, cv);
|
2994 schuur 1.1 }
2995
2996 JNIEXPORT jboolean JNICALL Java_org_pegasus_jmpi_CIMValue__1isArray
|
2997 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jP)
2998 {
2999 CIMValue *cv = DEBUG_ConvertJavaToC (jint, CIMValue*, jP);
3000
|
3001 schuur 1.1 return (jboolean)cv->isArray();
3002 }
3003
3004 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1boolean
|
3005 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jboolean jB)
3006 {
3007 CIMValue *cv = new CIMValue((Boolean)jB);
3008
3009 return DEBUG_ConvertCToJava (CIMValue*, jint, cv);
|
3010 schuur 1.1 }
3011
3012 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1byteArray
|
3013 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jshortArray jshortA, jboolean notSigned)
3014 {
3015 CIMValue *cv = NULL;
3016 jboolean b;
3017 jsize len = jEnv->GetArrayLength(jshortA);
3018 jshort *jsA = jEnv->GetShortArrayElements(jshortA,&b);
3019
|
3020 schuur 1.1 if (notSigned) {
3021 Array<Uint8> u8;
3022 for (jsize i=0;i<len;i++)
3023 u8.append((Uint8)jsA[i]);
3024 cv=new CIMValue(u8);
3025 }
3026 else {
3027 Array<Sint8> s8;
3028 for (jsize i=0;i<len;i++)
3029 s8.append((Sint8)jsA[i]);
3030 cv=new CIMValue(s8);
3031 }
|
3032 mark.hamzy 1.20
3033 return DEBUG_ConvertCToJava (CIMValue*, jint, cv);
|
3034 schuur 1.1 }
3035
3036 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1shortArray
|
3037 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jintArray jintA, jboolean notSigned)
3038 {
3039 CIMValue *cv = NULL;
3040 jboolean b;
3041 jsize len = jEnv->GetArrayLength(jintA);
3042 jint *jiA = jEnv->GetIntArrayElements(jintA,&b);
3043
|
3044 schuur 1.1 if (notSigned) {
3045 Array<Uint16> u16;
3046 for (jsize i=0;i<len;i++)
3047 u16.append((Uint16)jiA[i]);
3048 cv=new CIMValue(u16);
3049 }
3050 else {
3051 Array<Sint16> s16;
3052 for (jsize i=0;i<len;i++)
3053 s16.append((Sint16)jiA[i]);
3054 cv=new CIMValue(s16);
3055 }
|
3056 mark.hamzy 1.20
3057 return DEBUG_ConvertCToJava (CIMValue*, jint, cv);
|
3058 schuur 1.1 }
3059
3060 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1intArray
|
3061 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jlongArray jlongA, jboolean notSigned)
3062 {
3063 CIMValue *cv = NULL;
3064 jboolean b;
3065 jsize len = jEnv->GetArrayLength(jlongA);
3066 jlong *jlA = jEnv->GetLongArrayElements(jlongA,&b);
3067
|
3068 schuur 1.1 if (notSigned) {
3069 Array<Uint32> u32;
3070 for (jsize i=0;i<len;i++)
3071 u32.append((Uint32)jlA[i]);
3072 cv=new CIMValue(u32);
3073 }
3074 else {
3075 Array<Sint32> s32;
3076 for (jsize i=0;i<len;i++)
3077 s32.append((Sint32)jlA[i]);
3078 cv=new CIMValue(s32);
3079 }
|
3080 mark.hamzy 1.20
3081 return DEBUG_ConvertCToJava (CIMValue*, jint, cv);
|
3082 schuur 1.1 }
3083
3084 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1longArray
|
3085 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jlongArray jlongA, jboolean notSigned)
3086 {
3087 CIMValue *cv = NULL;
3088 jboolean b;
3089 jsize len = jEnv->GetArrayLength(jlongA);
3090 jlong *jlA = jEnv->GetLongArrayElements(jlongA,&b);
3091
|
3092 schuur 1.1 if (notSigned) {
3093 Array<Uint64> u64;
3094 for (jsize i=0;i<len;i++)
3095 u64.append((Uint64)jlA[i]);
3096 cv=new CIMValue(u64);
3097 }
3098 else {
3099 Array<Sint64> s64;
3100 for (jsize i=0;i<len;i++)
3101 s64.append((Sint64)jlA[i]);
3102 cv=new CIMValue(s64);
3103 }
|
3104 mark.hamzy 1.20
3105 return DEBUG_ConvertCToJava (CIMValue*, jint, cv);
|
3106 schuur 1.1 }
3107
3108 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1stringArray
|
3109 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jobjectArray jstringA)
3110 {
3111 CIMValue *cv = NULL;
3112 jboolean b;
3113 jsize len = jEnv->GetArrayLength(jstringA);
|
3114 schuur 1.1 Array<String> strA;
3115
3116 for (jsize i=0;i<len;i++) {
3117 jstring jsA=(jstring)jEnv->GetObjectArrayElement(jstringA,i);
3118 const char *str=jEnv->GetStringUTFChars(jsA,NULL);
3119 strA.append(String(str));
3120 jEnv->ReleaseStringUTFChars(jsA,str);
3121 }
3122
3123 cv=new CIMValue(strA);
|
3124 mark.hamzy 1.20
3125 return DEBUG_ConvertCToJava (CIMValue*, jint, cv);
|
3126 schuur 1.1 }
3127
3128 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1booleanArray
|
3129 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jbooleanArray jboolA)
3130 {
3131 CIMValue *cv = NULL;
3132 jboolean b;
3133 jsize len = jEnv->GetArrayLength(jboolA);
3134 jboolean *jbA = jEnv->GetBooleanArrayElements(jboolA,&b);
3135 Array<Boolean> bA;
3136
|
3137 schuur 1.1 for (jsize i=0;i<len;i++)
3138 bA.append((Boolean)jbA[i]);
3139 cv=new CIMValue(bA);
|
3140 mark.hamzy 1.20
3141 return DEBUG_ConvertCToJava (CIMValue*, jint, cv);
|
3142 schuur 1.1 }
3143
3144 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1refArray
|
3145 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jintArray jintA)
3146 {
3147 CIMValue *cv = NULL;
3148 jboolean b;
3149 jsize len = jEnv->GetArrayLength(jintA);
3150 jint *jiA = jEnv->GetIntArrayElements(jintA,&b);
3151 Array<CIMObjectPath> cA;
3152
|
3153 schuur 1.1 for (jsize i=0;i<len;i++)
3154 cA.append(*((CIMObjectPath*)jiA[i]));
3155 cv=new CIMValue(cA);
|
3156 mark.hamzy 1.20
3157 return DEBUG_ConvertCToJava (CIMValue*, jint, cv);
|
3158 schuur 1.1 }
3159
3160 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMValue__1getType
|
3161 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jP)
3162 {
3163 CIMValue *cv = DEBUG_ConvertJavaToC (jint, CIMValue*, jP);
3164
3165 return DEBUG_ConvertCToJava (int, jint, pTypeToJType[cv->getType()]);
|
3166 schuur 1.1 }
3167
3168 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMValue__1toString
|
3169 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jV)
3170 {
3171 CIMValue *cv = DEBUG_ConvertJavaToC (jint, CIMValue*, jV);
3172
|
3173 schuur 1.1 return (jstring)jEnv->NewStringUTF(cv->toString().getCString());
3174 }
3175
3176 JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_CIMValue__1getValue
|
3177 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jV)
3178 {
3179 CIMValue *cv = DEBUG_ConvertJavaToC (jint, CIMValue*, jV);
3180
|
3181 schuur 1.1 if (cv->isNull())
3182 return NULL;
|
3183 mark.hamzy 1.20
|
3184 schuur 1.1 CIMType type=cv->getType();
3185
3186 if (!cv->isArray()) {
3187 switch (type) {
3188 case CIMTYPE_BOOLEAN:
3189 Boolean bo;
3190 cv->get(bo);
|
3191 mark.hamzy 1.26 return jEnv->NewObject(JMPIjvm::jv.BooleanClassRef,JMPIjvm::jv.BooleanNewZ,bo);
|
3192 schuur 1.1 break;
3193 case CIMTYPE_SINT8:
3194 Sint8 s8;
3195 cv->get(s8);
|
3196 mark.hamzy 1.26 return jEnv->NewObject(JMPIjvm::jv.ByteClassRef,JMPIjvm::jv.ByteNewB,s8);
|
3197 schuur 1.1 break;
3198 case CIMTYPE_UINT8:
3199 Uint8 u8;
3200 cv->get(u8);
|
3201 mark.hamzy 1.26 return jEnv->NewObject(JMPIjvm::jv.UnsignedInt8ClassRef,JMPIjvm::jv.UnsignedInt8NewS,u8);
|
3202 schuur 1.1 break;
3203 case CIMTYPE_SINT16:
3204 Sint16 s16;
3205 cv->get(s16);
|
3206 mark.hamzy 1.26 return jEnv->NewObject(JMPIjvm::jv.ShortClassRef,JMPIjvm::jv.ShortNewS,s16);
|
3207 schuur 1.1 break;
3208 case CIMTYPE_UINT16:
3209 Uint16 u16;
3210 cv->get(u16);
|
3211 mark.hamzy 1.26 return jEnv->NewObject(JMPIjvm::jv.UnsignedInt16ClassRef,JMPIjvm::jv.UnsignedInt16NewI,u16);
|
3212 schuur 1.1 break;
3213 case CIMTYPE_SINT32:
3214 Sint32 s32;
3215 cv->get(s32);
|
3216 mark.hamzy 1.26 return jEnv->NewObject(JMPIjvm::jv.IntegerClassRef,JMPIjvm::jv.IntegerNewI,s32);
|
3217 schuur 1.1 break;
3218 case CIMTYPE_UINT32:
3219 Uint32 u32;
3220 cv->get(u32);
|
3221 mark.hamzy 1.26 return jEnv->NewObject(JMPIjvm::jv.UnsignedInt32ClassRef,JMPIjvm::jv.UnsignedInt32NewJ,u32);
|
3222 schuur 1.1 break;
3223 case CIMTYPE_SINT64:
3224 Sint64 s64;
3225 cv->get(s64);
|
3226 mark.hamzy 1.26 return jEnv->NewObject(JMPIjvm::jv.LongClassRef,JMPIjvm::jv.LongNewJ,s64);
|
3227 schuur 1.1 break;
3228 case CIMTYPE_UINT64: {
3229 Uint64 u64;
3230 cv->get(u64);
|
3231 mark.hamzy 1.26 jobject big=jEnv->CallStaticObjectMethod(JMPIjvm::jv.BigIntegerClassRef,JMPIjvm::jv.BigIntegerValueOf,u64);
3232 return jEnv->NewObject(JMPIjvm::jv.UnsignedInt64ClassRef,JMPIjvm::jv.UnsignedInt64NewBi,big);
|
3233 schuur 1.1 }
3234 break;
3235 case CIMTYPE_REAL32:
3236 float f;
3237 cv->get(f);
|
3238 mark.hamzy 1.26 return jEnv->NewObject(JMPIjvm::jv.FloatClassRef,JMPIjvm::jv.FloatNewF,f);
|
3239 schuur 1.1 break;
3240 case CIMTYPE_REAL64:
3241 double d;
3242 cv->get(d);
|
3243 mark.hamzy 1.26 return jEnv->NewObject(JMPIjvm::jv.DoubleClassRef,JMPIjvm::jv.DoubleNewD,d);
|
3244 schuur 1.1 break;
3245 case CIMTYPE_STRING: {
3246 String s;
3247 jstring str;
3248 cv->get(s);
3249 str=jEnv->NewStringUTF(s.getCString());
3250 return str;
3251 }
3252 break;
3253 case CIMTYPE_REFERENCE: {
3254 CIMObjectPath ref;
3255 cv->get(ref);
|
3256 mark.hamzy 1.20 jint jOp = DEBUG_ConvertCToJava (CIMObjectPath*, jint, new CIMObjectPath(ref));
|
3257 mark.hamzy 1.26 return jEnv->NewObject(JMPIjvm::jv.CIMObjectPathClassRef,JMPIjvm::jv.CIMObjectPathNewI,jOp);
|
3258 schuur 1.1 }
3259 break;
3260 case CIMTYPE_CHAR16:
3261 throwCIMException(jEnv,"+++ Char16 not yet supported");
3262 break;
3263 case CIMTYPE_DATETIME: {
3264 CIMDateTime dt;
3265 cv->get(dt);
|
3266 mark.hamzy 1.20 jint jDT = DEBUG_ConvertCToJava (CIMDateTime*, jint, new CIMDateTime(dt));
|
3267 mark.hamzy 1.26 return jEnv->NewObject(JMPIjvm::jv.CIMDateTimeClassRef,JMPIjvm::jv.CIMDateTimeNewI,jDT);
|
3268 schuur 1.1 }
3269 break;
|
3270 dave.sudlik 1.13 case CIMTYPE_OBJECT:
3271 throwCIMException(jEnv,"+++ Object not yet supported");
3272 break;
|
3273 schuur 1.1 default:
|
3274 mark.hamzy 1.17 throwCIMException(jEnv,"+++ unsupported type: ");
|
3275 schuur 1.1 }
3276 }
3277 else {
3278 switch (type) {
3279 case CIMTYPE_BOOLEAN: {
3280 Array<Boolean> bo;
3281 cv->get(bo);
3282 int s=bo.size();
|
3283 mark.hamzy 1.26 jobjectArray jbooleanA=(jobjectArray)jEnv->NewObjectArray(s,JMPIjvm::jv.BooleanClassRef,0);
|
3284 r.kieninger 1.11 for (int i=0; i < s; i++) jEnv->SetObjectArrayElement(jbooleanA, i,
|
3285 mark.hamzy 1.26 jEnv->NewObject(JMPIjvm::jv.BooleanClassRef,JMPIjvm::jv.BooleanNewZ,bo[i]));
|
3286 schuur 1.1 return jbooleanA;
3287 }
3288 break;
3289 case CIMTYPE_SINT8: {
3290 Array<Sint8> s8;
3291 cv->get(s8);
3292 int s=s8.size();
|
3293 mark.hamzy 1.26 jobjectArray jbyteA=(jobjectArray)jEnv->NewObjectArray(s,JMPIjvm::jv.ByteClassRef,0);
|
3294 r.kieninger 1.11 for (int i=0; i < s; i++) jEnv->SetObjectArrayElement(jbyteA, i,
|
3295 mark.hamzy 1.26 jEnv->NewObject(JMPIjvm::jv.ByteClassRef,JMPIjvm::jv.ByteNewB,s8[i]));
|
3296 schuur 1.1 return jbyteA;
3297 }
3298 break;
3299 case CIMTYPE_UINT8: {
3300 Array<Uint8> u8;
3301 cv->get(u8);
3302 int s=u8.size();
|
3303 mark.hamzy 1.26 jobjectArray jshortA=(jobjectArray)jEnv->NewObjectArray(s,JMPIjvm::jv.UnsignedInt8ClassRef,0);
|
3304 r.kieninger 1.11 for (int i=0; i < s; i++) jEnv->SetObjectArrayElement(jshortA, i,
|
3305 mark.hamzy 1.26 jEnv->NewObject(JMPIjvm::jv.UnsignedInt8ClassRef,JMPIjvm::jv.UnsignedInt8NewS,u8[i]));
|
3306 schuur 1.1 return jshortA;
3307 }
3308 break;
3309 case CIMTYPE_SINT16: {
3310 Array<Sint16> s16;
3311 cv->get(s16);
3312 int s=s16.size();
|
3313 mark.hamzy 1.26 jobjectArray jshortA=(jobjectArray)jEnv->NewObjectArray(s,JMPIjvm::jv.ShortClassRef,0);
|
3314 r.kieninger 1.11 for (int i=0; i < s; i++) jEnv->SetObjectArrayElement(jshortA, i,
|
3315 mark.hamzy 1.26 jEnv->NewObject(JMPIjvm::jv.ShortClassRef,JMPIjvm::jv.ShortNewS,s16[i]));
|
3316 schuur 1.1 return jshortA;
3317 }
3318 break;
3319 case CIMTYPE_UINT16: {
3320 Array<Uint16> u16;
3321 cv->get(u16);
3322 int s=u16.size();
|
3323 mark.hamzy 1.26 jobjectArray jintA=(jobjectArray)jEnv->NewObjectArray(s,JMPIjvm::jv.UnsignedInt16ClassRef,0);
|
3324 r.kieninger 1.11 for (int i=0; i < s; i++) jEnv->SetObjectArrayElement(jintA, i,
|
3325 mark.hamzy 1.26 jEnv->NewObject(JMPIjvm::jv.UnsignedInt16ClassRef,JMPIjvm::jv.UnsignedInt16NewI,u16[i]));
|
3326 schuur 1.1 return jintA;
3327 }
3328 break;
3329 case CIMTYPE_SINT32: {
3330 Array<Sint32> s32;
3331 cv->get(s32);
3332 int s=s32.size();
|
3333 mark.hamzy 1.26 jobjectArray jintA=(jobjectArray)jEnv->NewObjectArray(s,JMPIjvm::jv.IntegerClassRef,0);
|
3334 schuur 1.7 for (int i=0; i < s; i++) jEnv->SetObjectArrayElement(jintA, i,
|
3335 mark.hamzy 1.26 jEnv->NewObject(JMPIjvm::jv.IntegerClassRef,JMPIjvm::jv.IntegerNewI,s32[i]));
|
3336 schuur 1.1 return jintA;
3337 }
3338 break;
3339 case CIMTYPE_UINT32: {
3340 Array<Uint32> u32;
3341 cv->get(u32);
3342 int s=u32.size();
|
3343 mark.hamzy 1.26 jobjectArray jlongA=(jobjectArray)jEnv->NewObjectArray(s,JMPIjvm::jv.UnsignedInt32ClassRef,0);
|
3344 r.kieninger 1.11 for (int i=0; i < s; i++) jEnv->SetObjectArrayElement(jlongA, i,
|
3345 mark.hamzy 1.26 jEnv->NewObject(JMPIjvm::jv.UnsignedInt32ClassRef,JMPIjvm::jv.UnsignedInt32NewJ,u32[i]));
|
3346 schuur 1.1 return jlongA;
3347 }
3348 break;
3349 case CIMTYPE_SINT64: {
3350 Array<Sint64> s64;
3351 cv->get(s64);
3352 int s=s64.size();
|
3353 mark.hamzy 1.26 jobjectArray jlongA=(jobjectArray)jEnv->NewObjectArray(s,JMPIjvm::jv.LongClassRef,0);
|
3354 r.kieninger 1.11 for (int i=0; i < s; i++) jEnv->SetObjectArrayElement(jlongA, i,
|
3355 mark.hamzy 1.26 jEnv->NewObject(JMPIjvm::jv.LongClassRef,JMPIjvm::jv.LongNewJ,s64[i]));
|
3356 schuur 1.1 return jlongA;
3357 }
3358 break;
3359 case CIMTYPE_UINT64:
3360 throwCIMException(jEnv,"+++ UnisgnetInt64 not yet supported");
3361 break;
3362 case CIMTYPE_REAL32: {
3363 Array<Real32> r32;
3364 cv->get(r32);
3365 int s=r32.size();
|
3366 mark.hamzy 1.26 jobjectArray jfloatA=(jobjectArray)jEnv->NewObjectArray(s,JMPIjvm::jv.FloatClassRef,0);
|
3367 schuur 1.7 for (int i=0; i < s; i++) jEnv->SetObjectArrayElement(jfloatA, i,
|
3368 mark.hamzy 1.26 jEnv->NewObject(JMPIjvm::jv.FloatClassRef,JMPIjvm::jv.FloatNewF,r32[i]));
|
3369 schuur 1.1 return jfloatA;
3370 }
3371 break;
3372 case CIMTYPE_REAL64: {
3373 Array<Real64> r64;
3374 cv->get(r64);
3375 int s=r64.size();
|
3376 mark.hamzy 1.26 jobjectArray jdoubleA=(jobjectArray)jEnv->NewObjectArray(s,JMPIjvm::jv.DoubleClassRef,0);
|
3377 r.kieninger 1.11 for (int i=0; i < s; i++) jEnv->SetObjectArrayElement(jdoubleA, i,
|
3378 mark.hamzy 1.26 jEnv->NewObject(JMPIjvm::jv.DoubleClassRef,JMPIjvm::jv.DoubleNewD,r64[i]));
|
3379 schuur 1.1 return jdoubleA;
3380 }
3381 break;
3382 case CIMTYPE_STRING: {
3383 Array<String> str;
3384 cv->get(str);
3385 int s=str.size();
|
3386 mark.hamzy 1.26 jobjectArray jstringA=(jobjectArray)jEnv->NewObjectArray(s,JMPIjvm::jv.StringClassRef,0);
|
3387 r.kieninger 1.11 for (int i=0; i < s; i++) jEnv->SetObjectArrayElement(jstringA, i,
|
3388 schuur 1.1 jEnv->NewStringUTF(str[i].getCString()));
3389 return jstringA;
3390 }
3391 break;
3392 case CIMTYPE_REFERENCE:
3393 throwCIMException(jEnv,"+++ Reference not yet supported");
3394 break;
3395 case CIMTYPE_CHAR16:
3396 throwCIMException(jEnv,"+++ Char16 not yet supported");
3397 break;
3398 case CIMTYPE_DATETIME:
3399 throwCIMException(jEnv,"+++ DateTime not yet supported");
3400 break;
|
3401 dave.sudlik 1.13 case CIMTYPE_OBJECT:
3402 throwCIMException(jEnv,"+++ Object not yet supported");
3403 break;
|
3404 schuur 1.1 default:
3405 throwCIMException(jEnv,"+++ unsupported type: ");
3406 }
3407 }
|
3408 mark.hamzy 1.20
|
3409 schuur 1.1 return NULL;
3410 }
3411
3412 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMValue__1finalize
|
3413 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jV)
3414 {
3415 CIMValue *cv = DEBUG_ConvertJavaToC (jint, CIMValue*, jV);
3416
3417 delete cv;
3418
3419 DEBUG_ConvertCleanup (jint, jV);
|
3420 schuur 1.1 }
3421
3422 // -------------------------------------
3423 // ---
3424 // - CIMNameSpace
3425 // ---
3426 // -------------------------------------
3427
3428 _nameSpace::_nameSpace() {
3429 port_=0;
3430 hostName_=System::getHostName();
3431 nameSpace_="root/cimv2";
3432 }
3433
3434 _nameSpace::_nameSpace(String hn) {
3435 port_=0;
3436 hostName_=hn;
3437 nameSpace_="root/cimv2";
3438 }
3439
3440 _nameSpace::_nameSpace(String hn, String ns) {
3441 schuur 1.1 port_=0;
3442 hostName_=hn;
3443 nameSpace_=ns;
3444 }
3445
3446 int _nameSpace::port() {
3447 if (port_) return port_;
3448 port_=5988;
3449 if (hostName_.subString(0,7)=="http://") {
3450 protocol_="http://";
3451 hostName_=hostName_.subString(7);
3452 }
3453 Sint32 p=hostName_.reverseFind(':');
3454 if (p>=0) {
|
3455 kumpf 1.25 if ((hostName_[p+1] >= '0') && (hostName_[p+1] <= '9'))
|
3456 schuur 1.1 port_=atoi(hostName_.subString(p+1).getCString());
3457 hostName_.remove(p);
3458 }
3459 return port_;
3460 }
3461
3462 String _nameSpace::hostName() {
3463 port();
3464 return hostName_;
3465 }
3466
3467 String _nameSpace::nameSpace() {
3468 return nameSpace_;
3469 }
3470
3471
3472 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMNameSpace__1new
|
3473 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs)
3474 {
3475 return DEBUG_ConvertCToJava (_nameSpace*, jint, new _nameSpace());
|
3476 schuur 1.1 }
3477
3478 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMNameSpace__1newHn
|
3479 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jstring jHn)
3480 {
3481 const char *hn = jEnv->GetStringUTFChars(jHn,NULL);
3482 jint cInst = DEBUG_ConvertCToJava (_nameSpace*, jint, new _nameSpace(hn));
3483
|
3484 schuur 1.1 jEnv->ReleaseStringUTFChars(jHn,hn);
|
3485 mark.hamzy 1.20
|
3486 schuur 1.1 return cInst;
3487 }
3488
3489 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMNameSpace__1newHnNs
|
3490 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jstring jHn, jstring jNs)
3491 {
3492 const char *hn = jEnv->GetStringUTFChars(jHn,NULL);
3493 const char *ns = jEnv->GetStringUTFChars(jNs,NULL);
3494 jint cInst = DEBUG_ConvertCToJava (_nameSpace*, jint, new _nameSpace(String(hn),String(ns)));
3495
|
3496 schuur 1.1 jEnv->ReleaseStringUTFChars(jHn,hn);
3497 jEnv->ReleaseStringUTFChars(jNs,ns);
|
3498 mark.hamzy 1.20
|
3499 schuur 1.1 return cInst;
3500 }
3501
3502 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMNameSpace__1getHost
|
3503 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jNs)
3504 {
3505 _nameSpace *cNs = DEBUG_ConvertJavaToC (jint, _nameSpace*, jNs);
3506 const String &hn = cNs->hostName_;
3507 jstring str = jEnv->NewStringUTF(hn.getCString());
3508
|
3509 schuur 1.1 return str;
3510 }
3511
3512 JNIEXPORT jstring JNICALL Java_org_pegasus_jmpi_CIMNameSpace__1getNameSpace
|
3513 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jNs)
3514 {
3515 _nameSpace *cNs = DEBUG_ConvertJavaToC (jint, _nameSpace*, jNs);
3516 const String &ns = cNs->nameSpace_;
3517 jstring str = jEnv->NewStringUTF(ns.getCString());
3518
|
3519 schuur 1.1 return str;
3520 }
3521
3522 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMNameSpace__1setHost
|
3523 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jNs, jstring jHn)
3524 {
3525 _nameSpace *cNs = DEBUG_ConvertJavaToC (jint, _nameSpace*, jNs);
3526 const char *str = jEnv->GetStringUTFChars(jHn,NULL);
3527
|
3528 schuur 1.1 cNs->port_=0;
3529 cNs->hostName_=str;
3530 jEnv->ReleaseStringUTFChars(jHn,str);
3531 }
3532
3533 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMNameSpace__1setNameSpace
|
3534 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jNs, jstring jN)
3535 {
|
3536 mark.hamzy 1.22 _nameSpace *cNs = DEBUG_ConvertJavaToC (jint, _nameSpace*, jNs);
|
3537 mark.hamzy 1.20 const char *str = jEnv->GetStringUTFChars(jN,NULL);
3538
|
3539 schuur 1.1 cNs->nameSpace_=str;
3540 jEnv->ReleaseStringUTFChars(jN,str);
3541 }
3542
|
3543 mark.hamzy 1.22 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMNameSpace__1finalize
3544 (JNIEnv *jEnv, jobject jThs, jint jNs)
3545 {
3546 _nameSpace *cNs = DEBUG_ConvertJavaToC (jint, _nameSpace*, jNs);
3547
3548 delete cNs;
3549
3550 DEBUG_ConvertCleanup (jint, jNs);
3551 }
3552
|
3553 schuur 1.1 // -------------------------------------
3554 // ---
3555 // - Enumerators
3556 // ---
3557 // -------------------------------------
3558
|
3559 schuur 1.4 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_ClassEnumeration__1getClass
|
3560 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jEnum, jint pos)
3561 {
3562 Array<CIMClass> *enm = DEBUG_ConvertJavaToC (jint, Array<CIMClass>*, jEnum);
3563
3564 return DEBUG_ConvertCToJava (CIMClass*, jint, new CIMClass((*enm)[pos]));
|
3565 schuur 1.4 }
3566
3567 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_ClassEnumeration__1size
|
3568 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jEnum)
3569 {
3570 Array<CIMClass> *enm = DEBUG_ConvertJavaToC (jint, Array<CIMClass>*, jEnum);
3571
|
3572 schuur 1.4 return enm->size();
3573 }
3574
|
3575 schuur 1.1
3576 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_InstEnumeration__1getInstance
|
3577 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jEnum, jint pos)
3578 {
3579 Array<CIMInstance> *enm = DEBUG_ConvertJavaToC (jint, Array<CIMInstance>*, jEnum);
3580
3581 return DEBUG_ConvertCToJava (CIMInstance*, jint, new CIMInstance((*enm)[pos]));
|
3582 schuur 1.1 }
3583
3584 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_InstEnumeration__1size
|
3585 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jEnum)
3586 {
3587 Array<CIMInstance> *enm = DEBUG_ConvertJavaToC (jint, Array<CIMInstance>*, jEnum);
3588
|
3589 schuur 1.1 return enm->size();
3590 }
3591
|
3592 mark.hamzy 1.20 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_PathEnumeration__1getObjectPath
3593 (JNIEnv *jEnv, jobject jThs, jint jEnum, jint pos)
3594 {
3595 Array<CIMObjectPath> *enm = DEBUG_ConvertJavaToC (jint, Array<CIMObjectPath>*, jEnum);
|
3596 schuur 1.1
|
3597 mark.hamzy 1.20 return DEBUG_ConvertCToJava (CIMObjectPath*, jint, new CIMObjectPath((*enm)[pos]));
|
3598 schuur 1.1 }
3599
3600 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_PathEnumeration__1size
|
3601 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jEnum)
3602 {
3603 Array<CIMObjectPath> *enm = DEBUG_ConvertJavaToC (jint, Array<CIMObjectPath>*, jEnum);
3604
|
3605 schuur 1.1 return enm->size();
3606 }
3607
|
3608 schuur 1.5 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_QualEnumeration__1getQualifierType
|
3609 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jEnum, jint pos)
3610 {
3611 Array<CIMQualifierDecl> *enm = DEBUG_ConvertJavaToC (jint, Array<CIMQualifierDecl>*, jEnum);
3612
3613 return DEBUG_ConvertCToJava (CIMQualifierDecl*, jint, new CIMQualifierDecl((*enm)[pos]));
|
3614 schuur 1.5 }
3615
3616 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_QualEnumeration__1size
|
3617 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jEnum)
3618 {
3619 Array<CIMQualifierDecl> *enm = DEBUG_ConvertJavaToC (jint, Array<CIMQualifierDecl>*, jEnum);
3620
|
3621 schuur 1.5 return enm->size();
3622 }
3623
|
3624 schuur 1.1 // -------------------------------------
3625 // ---
3626 // - CIMClient
3627 // ---
3628 // -------------------------------------
3629
|
3630 schuur 1.5 void checkNs(CIMObjectPath *cop, jint jNs) {
3631 if (cop->getNameSpace().isNull()) {
3632 _nameSpace *ns=(_nameSpace*)jNs;
3633 cop->setNameSpace(CIMNamespaceName(ns->nameSpace()));
3634 }
3635 }
3636
|
3637 schuur 1.1 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1newNaUnPw
|
3638 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jNs, jstring jUn, jstring jPw)
3639 {
3640 _nameSpace *cNs = DEBUG_ConvertJavaToC (jint, _nameSpace*, jNs);
|
3641 schuur 1.5
|
3642 schuur 1.1 const char *un=jEnv->GetStringUTFChars(jUn,NULL);
3643 const char *pw=jEnv->GetStringUTFChars(jPw,NULL);
|
3644 schuur 1.5
|
3645 schuur 1.1 try {
|
3646 schuur 1.5 JMPIjvm::cacheIDs(jEnv);
|
3647 schuur 1.1 CIMClient *cc=new CIMClient();
3648 cc->connect(cNs->hostName(),cNs->port(),un,pw);
3649 jEnv->ReleaseStringUTFChars(jUn,un);
3650 jEnv->ReleaseStringUTFChars(jPw,pw);
|
3651 mark.hamzy 1.20 return DEBUG_ConvertCToJava (CIMClient*, jint, cc);
|
3652 schuur 1.1 }
|
3653 schuur 1.5 Catch(jEnv);
|
3654 schuur 1.1 return 0;
3655 }
3656
3657 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1disconnect
|
3658 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCc)
3659 {
3660 CIMClient *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);
3661
|
3662 schuur 1.1 try {
3663 cCc->disconnect();
3664 }
|
3665 schuur 1.5 Catch(jEnv);
|
3666 schuur 1.1 }
|
3667 schuur 1.5
|
3668 schuur 1.1 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1getClass
|
3669 schuur 1.6 (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop, jboolean lo,
|
3670 mark.hamzy 1.20 jboolean iq, jboolean ic, jobjectArray jPl)
3671 {
3672 CIMClient *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);
3673 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
3674 CIMPropertyList pl=getList(jEnv,jPl);
3675
|
3676 schuur 1.1 try {
|
3677 schuur 1.5 checkNs(cop,jNs);
|
3678 schuur 1.6 CIMClass cls=cCc->getClass(cop->getNameSpace(),cop->getClassName(),(Boolean)lo,
3679 (Boolean)iq,(Boolean)ic,pl);
|
3680 mark.hamzy 1.20 return DEBUG_ConvertCToJava (CIMClass*, jint, new CIMClass(cls));
|
3681 schuur 1.1 }
|
3682 schuur 1.5 Catch(jEnv);
|
3683 mark.hamzy 1.20
|
3684 schuur 1.1 return 0;
3685 }
|
3686 schuur 1.3
3687 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1deleteClass
|
3688 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop)
3689 {
3690 CIMClient *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);
3691 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
3692
|
3693 schuur 1.3 try {
|
3694 schuur 1.5 checkNs(cop,jNs);
|
3695 schuur 1.3 cCc->deleteClass(cop->getNameSpace(),cop->getClassName());
3696 }
|
3697 schuur 1.5 Catch(jEnv);
|
3698 schuur 1.3 }
3699
3700 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1createClass
|
3701 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop, int jCl)
3702 {
3703 CIMClient *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);
3704 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
3705 CIMClass *cl = DEBUG_ConvertJavaToC (jint, CIMClass*, jCl);
|
3706 schuur 1.3
3707 try {
3708 cCc->createClass(cop->getNameSpace(),*cl);
3709 }
|
3710 schuur 1.5 Catch(jEnv);
|
3711 schuur 1.3 }
3712
3713 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1setClass
|
3714 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop, jint jCl)
3715 {
3716 CIMClient *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);
3717 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
3718 CIMClass *cl = DEBUG_ConvertJavaToC (jint, CIMClass*, jCl);
|
3719 schuur 1.3
|
3720 schuur 1.1 try {
|
3721 schuur 1.5 checkNs(cop,jNs);
|
3722 schuur 1.3 cCc->modifyClass(cop->getNameSpace(),*cl);
|
3723 schuur 1.1 }
|
3724 schuur 1.5 Catch(jEnv);
|
3725 schuur 1.1 }
|
3726 schuur 1.3
3727 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1enumerateClasses
|
3728 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, int jCop, jboolean deep, jboolean lo, jboolean iq, jboolean ic)
3729 {
3730 CIMClient *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);
3731 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
3732
|
3733 schuur 1.1 try {
|
3734 schuur 1.5 checkNs(cop,jNs);
|
3735 schuur 1.3 Array<CIMClass> enm=cCc->enumerateClasses(
|
3736 schuur 1.6 cop->getNameSpace(),cop->getClassName(),(Boolean)deep,(Boolean)lo,(Boolean)iq,(Boolean)ic);
|
3737 mark.hamzy 1.20 return DEBUG_ConvertCToJava (Array<CIMClass>*, jint, new Array<CIMClass>(enm));
|
3738 schuur 1.1 }
|
3739 schuur 1.5 Catch(jEnv);
|
3740 mark.hamzy 1.20
|
3741 schuur 1.1 return 0;
3742 }
3743
|
3744 schuur 1.3 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1enumerateClassNames
|
3745 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop, jboolean deep)
3746 {
3747 CIMClient *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);
3748 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
3749 CIMNamespaceName ns = cop->getNameSpace();
3750
|
3751 schuur 1.1 try {
|
3752 schuur 1.5 checkNs(cop,jNs);
|
3753 schuur 1.7 Array<CIMName> enm=cCc->enumerateClassNames(ns,cop->getClassName(),(Boolean)deep);
|
3754 schuur 1.3 Array<CIMObjectPath> *enmop=new Array<CIMObjectPath>();
3755 for (int i=0,m=enm.size(); i<m; i++) {
3756 enmop->append(CIMObjectPath(String::EMPTY,ns,enm[i]));
3757 }
|
3758 mark.hamzy 1.20 return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jint, enmop);
|
3759 schuur 1.3 }
|
3760 schuur 1.5 Catch(jEnv);
|
3761 mark.hamzy 1.20
|
3762 schuur 1.3 return 0;
3763 }
3764
|
3765 schuur 1.6 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1enumerateQualifiers
|
3766 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, int jCop)
3767 {
3768 CIMClient *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);
3769 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
3770
|
3771 schuur 1.6 try {
3772 checkNs(cop,jNs);
|
3773 mark.hamzy 1.24
3774 Array<CIMQualifierDecl> enm=cCc->enumerateQualifiers(cop->getNameSpace());
3775
|
3776 mark.hamzy 1.20 return DEBUG_ConvertCToJava (Array<CIMQualifierDecl>*, jint, new Array<CIMQualifierDecl>(enm));
|
3777 schuur 1.6 }
3778 Catch(jEnv);
|
3779 mark.hamzy 1.20
|
3780 schuur 1.6 return 0;
3781 }
3782
|
3783 schuur 1.3 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1getInstance
|
3784 schuur 1.6 (JNIEnv *jEnv, jobject jThs, jint jCc, int jNs, int jCop, jboolean lo,
|
3785 mark.hamzy 1.20 jboolean iq, jboolean ic, jobjectArray jPl)
3786 {
3787 CIMClient *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);
3788 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
3789 CIMPropertyList pl = getList(jEnv,jPl);
|
3790 schuur 1.5
|
3791 schuur 1.3 try {
|
3792 schuur 1.5 checkNs(cop,jNs);
|
3793 mark.hamzy 1.24
3794 CIMInstance inst=cCc->getInstance(cop->getNameSpace(),
3795 *cop,
3796 (Boolean)lo,
3797 (Boolean)iq,
3798 (Boolean)ic,
3799 pl);
3800
|
3801 mark.hamzy 1.20 return DEBUG_ConvertCToJava (CIMInstance*, jint, new CIMInstance(inst));
|
3802 schuur 1.1 }
|
3803 schuur 1.5 Catch(jEnv);
|
3804 mark.hamzy 1.20
|
3805 schuur 1.1 return 0;
3806 }
3807
|
3808 schuur 1.3 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1deleteInstance
|
3809 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop)
3810 {
3811 CIMClient *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);
3812 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
3813
|
3814 schuur 1.3 try {
|
3815 schuur 1.5 checkNs(cop,jNs);
|
3816 schuur 1.3 cCc->deleteInstance(cop->getNameSpace(),*cop);
3817 }
|
3818 schuur 1.5 Catch(jEnv);
|
3819 schuur 1.3 }
3820
|
3821 schuur 1.1 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1createInstance
|
3822 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop, int jCi)
3823 {
3824 CIMClient *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);
3825 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
3826 CIMInstance *ci = DEBUG_ConvertJavaToC (jint, CIMInstance*, jCi);
3827
|
3828 schuur 1.1 try {
|
3829 schuur 1.5 checkNs(cop,jNs);
|
3830 schuur 1.6 ci->setPath(*cop);
|
3831 schuur 1.1 CIMObjectPath obj=cCc->createInstance(cop->getNameSpace(),*ci);
|
3832 mark.hamzy 1.20 return DEBUG_ConvertCToJava (CIMObjectPath*, jint, new CIMObjectPath(obj));
|
3833 schuur 1.1 }
|
3834 schuur 1.5 Catch(jEnv);
|
3835 mark.hamzy 1.20
|
3836 schuur 1.5 return 0;
|
3837 schuur 1.1 }
|
3838 schuur 1.3
|
3839 schuur 1.6 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1modifyInstance
3840 (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop, jint jCi,
|
3841 mark.hamzy 1.20 jboolean iq, jobjectArray jPl)
3842 {
3843 CIMClient *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);
3844 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
3845 CIMInstance *ci = DEBUG_ConvertJavaToC (jint, CIMInstance*, jCi);
3846 CIMPropertyList pl = getList(jEnv,jPl);
3847
|
3848 schuur 1.1 try {
|
3849 schuur 1.6 checkNs(cop,jNs);
3850 ci->setPath(*cop);
3851 cCc->modifyInstance(cop->getNameSpace(),*ci,(Boolean)iq,pl);
|
3852 schuur 1.1 }
|
3853 schuur 1.5 Catch(jEnv);
|
3854 schuur 1.3 }
3855
3856 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1enumerateInstances
|
3857 schuur 1.6 (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop, jboolean deep, jboolean lo,
|
3858 mark.hamzy 1.20 jboolean iq, jboolean ic, jobjectArray jPl)
3859 {
3860 CIMClient *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);
3861 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
3862 CIMPropertyList pl = getList(jEnv,jPl);
3863
|
3864 schuur 1.3 try {
|
3865 schuur 1.5 checkNs(cop,jNs);
|
3866 schuur 1.6 CIMPropertyList props;
|
3867 schuur 1.3 Array<CIMInstance> enm=cCc->enumerateInstances(
|
3868 schuur 1.6 cop->getNameSpace(),cop->getClassName(),(Boolean)deep,(Boolean)lo,(Boolean)iq,(Boolean)ic,pl);
|
3869 mark.hamzy 1.20 return DEBUG_ConvertCToJava (Array<CIMInstance>*, jint, new Array<CIMInstance>(enm));
|
3870 schuur 1.3 }
|
3871 schuur 1.5 Catch(jEnv);
|
3872 mark.hamzy 1.20
|
3873 schuur 1.3 return 0;
3874 }
3875
3876 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1enumerateInstanceNames
|
3877 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop, jboolean deep)
3878 {
3879 CIMClient *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);
3880 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
3881
|
3882 schuur 1.3 try {
|
3883 schuur 1.5 checkNs(cop,jNs);
|
3884 schuur 1.3 Array<CIMObjectPath> enm=cCc->enumerateInstanceNames(
3885 cop->getNameSpace(),cop->getClassName()); //,(Boolean)deep);
|
3886 mark.hamzy 1.20 return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jint, new Array<CIMObjectPath>(enm));
|
3887 schuur 1.3 }
|
3888 schuur 1.5 Catch(jEnv);
|
3889 mark.hamzy 1.20
|
3890 schuur 1.5 return 0;
3891 }
3892
3893
3894 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1getQualifier
|
3895 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop)
3896 {
3897 CIMClient *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);
3898 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
3899
|
3900 schuur 1.5 try {
3901 checkNs(cop,jNs);
3902 CIMQualifierDecl *val=new CIMQualifierDecl(cCc->getQualifier(cop->getNameSpace(),cop->getClassName()));
|
3903 mark.hamzy 1.20 return DEBUG_ConvertCToJava (CIMQualifierDecl*, jint, val);
|
3904 schuur 1.3 }
|
3905 schuur 1.5 Catch(jEnv);
|
3906 mark.hamzy 1.20
|
3907 schuur 1.3 return 0;
3908 }
3909
|
3910 schuur 1.5 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1deleteQualifier
|
3911 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop)
3912 {
3913 CIMClient *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);
3914 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
3915
|
3916 schuur 1.5 try {
3917 checkNs(cop,jNs);
3918 cCc->deleteQualifier(cop->getNameSpace(),cop->getClassName());
3919 }
3920 Catch(jEnv);
3921 }
3922
3923 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1setQualifier
|
3924 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop, jint jQ)
3925 {
3926 CIMClient *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);
3927 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
3928 CIMQualifierDecl *qt = DEBUG_ConvertJavaToC (jint, CIMQualifierDecl*, jQ);
3929
|
3930 schuur 1.5 try {
3931 checkNs(cop,jNs);
3932 cCc->setQualifier(cop->getNameSpace(),*qt);
3933 }
3934 Catch(jEnv);
3935 }
3936
|
3937 schuur 1.1
3938 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1getProperty
|
3939 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop, jstring jPn)
3940 {
3941 CIMClient *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);
3942 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
3943 const char *str = jEnv->GetStringUTFChars(jPn,NULL);
3944 CIMName pName(str);
3945
|
3946 schuur 1.3 jEnv->ReleaseStringUTFChars(jPn,str);
3947 try {
|
3948 schuur 1.5 checkNs(cop,jNs);
|
3949 schuur 1.3 CIMValue *val=new CIMValue(cCc->getProperty(cop->getNameSpace(),*cop,pName));
|
3950 mark.hamzy 1.20 return DEBUG_ConvertCToJava (CIMValue*, jint, val);
|
3951 schuur 1.3 }
|
3952 schuur 1.5 Catch(jEnv);
|
3953 mark.hamzy 1.20
|
3954 schuur 1.3 return 0;
3955 }
|
3956 schuur 1.5
|
3957 schuur 1.1 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1setProperty
|
3958 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop, jstring jPn, jint jV)
3959 {
3960 CIMClient *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);
3961 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
|
3962 mark.hamzy 1.22 CIMValue *val = DEBUG_ConvertJavaToC (jint, CIMValue*, jV);
|
3963 mark.hamzy 1.20 const char *str = jEnv->GetStringUTFChars(jPn,NULL);
3964 CIMName pName(str);
3965
|
3966 schuur 1.3 jEnv->ReleaseStringUTFChars(jPn,str);
3967 try {
|
3968 schuur 1.5 checkNs(cop,jNs);
|
3969 schuur 1.3 cCc->setProperty(cop->getNameSpace(),*cop,pName,*val);
3970 }
|
3971 schuur 1.5 Catch(jEnv);
|
3972 schuur 1.3 }
3973
3974 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1invokeMethod
|
3975 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop, jstring jMn, jobject jIn, jobject jOut)
3976 {
3977 CIMClient *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);
3978 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
3979 const char *str = jEnv->GetStringUTFChars(jMn,NULL);
3980 CIMName method(str);
3981
|
3982 schuur 1.3 jEnv->ReleaseStringUTFChars(jMn,str);
3983
3984 Array<CIMParamValue> in;
3985 Array<CIMParamValue> out;
3986
|
3987 mark.hamzy 1.26 for (int i=0,m=jEnv->CallIntMethod(jIn,JMPIjvm::jv.VectorSize); i<m; i++) {
|
3988 schuur 1.3 JMPIjvm::checkException(jEnv);
|
3989 mark.hamzy 1.20
|
3990 mark.hamzy 1.26 jobject jProp=jEnv->CallObjectMethod(jIn,JMPIjvm::jv.VectorElementAt,i);
|
3991 schuur 1.3 JMPIjvm::checkException(jEnv);
|
3992 mark.hamzy 1.20
|
3993 mark.hamzy 1.26 jint jp = jEnv->CallIntMethod(jProp,JMPIjvm::jv.CIMPropertyCInst);
|
3994 mark.hamzy 1.20 CIMProperty *p = DEBUG_ConvertJavaToC (jint, CIMProperty*, jp);
3995
|
3996 schuur 1.3 JMPIjvm::checkException(jEnv);
|
3997 mark.hamzy 1.20
|
3998 schuur 1.3 in.append(CIMParamValue(p->getName().getString(),p->getValue()));
3999 }
4000 try {
|
4001 schuur 1.5 checkNs(cop,jNs);
|
4002 schuur 1.3 CIMValue *val=new CIMValue(cCc->invokeMethod(cop->getNameSpace(),*cop,method,in,out));
4003
4004 for (int i=0,m=out.size(); i<m; i++) {
|
4005 mark.hamzy 1.20 const CIMParamValue &parm = out[i];
4006 const CIMValue v = parm.getValue();
4007 CIMProperty *p = new CIMProperty(parm.getParameterName(),v,v.getArraySize());
4008 jint jp = DEBUG_ConvertCToJava (CIMProperty*, jint, p);
|
4009 mark.hamzy 1.26 jobject prop = jEnv->NewObject(JMPIjvm::jv.CIMPropertyClassRef,JMPIjvm::jv.CIMPropertyNewI,jp);
|
4010 mark.hamzy 1.20
|
4011 mark.hamzy 1.26 jEnv->CallVoidMethod(jOut,JMPIjvm::jv.VectorAddElement,prop);
|
4012 schuur 1.3 }
|
4013 mark.hamzy 1.20 return DEBUG_ConvertCToJava (CIMValue*, jint, val);
4014 }
|
4015 schuur 1.5 Catch(jEnv);
|
4016 mark.hamzy 1.20
|
4017 schuur 1.3 return 0;
4018 }
4019
|
4020 schuur 1.6 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1invokeMethod24
4021 (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop, jstring jMn,
|
4022 mark.hamzy 1.20 jobjectArray jIn, jobjectArray jOut)
4023 {
4024 CIMClient *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);
4025 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
4026 const char *str = jEnv->GetStringUTFChars(jMn,NULL);
4027 CIMName method(str);
4028
|
4029 schuur 1.7 jEnv->ReleaseStringUTFChars(jMn,str);
4030
4031 Array<CIMParamValue> in;
4032 Array<CIMParamValue> out;
4033
4034 for (int i=0,m=jEnv->GetArrayLength(jIn); i<m; i++) {
4035 JMPIjvm::checkException(jEnv);
|
4036 mark.hamzy 1.20
|
4037 schuur 1.7 jobject jArg=jEnv->GetObjectArrayElement(jIn,i);
4038 JMPIjvm::checkException(jEnv);
|
4039 mark.hamzy 1.20
|
4040 mark.hamzy 1.26 jint jp = jEnv->CallIntMethod(jArg,JMPIjvm::jv.CIMArgumentCInst);
|
4041 mark.hamzy 1.20 CIMParamValue *p = DEBUG_ConvertJavaToC (jint, CIMParamValue*, jp);
4042
|
4043 schuur 1.7 JMPIjvm::checkException(jEnv);
|
4044 mark.hamzy 1.20
|
4045 schuur 1.7 in.append(*p);
4046 }
4047 try {
4048 checkNs(cop,jNs);
4049 CIMValue *val=new CIMValue(cCc->invokeMethod(cop->getNameSpace(),*cop,method,in,out));
4050
4051 for (int i=0,m=out.size(),o=jEnv->GetArrayLength(jOut); i<m && i<o; i++) {
|
4052 mark.hamzy 1.24 CIMParamValue *parm = new CIMParamValue (out[i]);
4053 jint jParm = DEBUG_ConvertCToJava (CIMParamValue*, jint, parm);
4054
4055 jEnv->SetObjectArrayElement(jOut,
4056 i,
|
4057 mark.hamzy 1.26 jEnv->NewObject(JMPIjvm::jv.CIMArgumentClassRef,JMPIjvm::jv.CIMArgumentNewI,jParm));
|
4058 schuur 1.7 }
|
4059 mark.hamzy 1.20 return DEBUG_ConvertCToJava (CIMValue*, jint, val);
|
4060 schuur 1.7 }
4061 Catch(jEnv);
|
4062 mark.hamzy 1.20
|
4063 schuur 1.6 return 0;
4064 }
4065
|
4066 schuur 1.1 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1execQuery
|
4067 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop, jstring jQuery, jstring jQl)
4068 {
4069 CIMClient *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);
4070 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
4071 const char *str = jEnv->GetStringUTFChars(jQuery,NULL);
4072 String query(str);
|
4073 schuur 1.3
|
4074 mark.hamzy 1.16 /* Note:
4075 ** This does not work for some reason on the client java code:
|
4076 mark.hamzy 1.18 ** DDD(PEGASUS_STD(cout)<<"--- JMPIjvm::Java_org_pegasus_jmpi_CIMClient__1execQuery: jEnv = "<<PEGASUS_STD(hex)<<(int)jEnv<<", jThs = "<<(int)jThs<<PEGASUS_STD(dec)<<", jCc = "<<jCc<<", jNs = "<<jNs<<", jCop = "<<jCop<<", jQuery = "<<PEGASUS_STD(hex)<<(int)jQuery<<", jQl = "<<(int)jQl<<PEGASUS_STD(dec)<<PEGASUS_STD(endl));
|
4077 mark.hamzy 1.16 ** What does work is:
4078 ** printf ("This is a test\n");
4079 */
4080
|
4081 schuur 1.3 jEnv->ReleaseStringUTFChars(jQuery,str);
|
4082 mark.hamzy 1.16
|
4083 schuur 1.3 str=jEnv->GetStringUTFChars(jQl,NULL);
4084 String ql(str);
|
4085 mark.hamzy 1.16
|
4086 schuur 1.3 jEnv->ReleaseStringUTFChars(jQl,str);
4087
4088 try {
|
4089 schuur 1.5 checkNs(cop,jNs);
|
4090 mark.hamzy 1.20 Array<CIMObject> enm=cCc->execQuery(cop->getNameSpace(),ql,query);
|
4091 schuur 1.3 Array<CIMInstance> *enmInst=new Array<CIMInstance>();
4092 for (int i=0,m=enm.size(); i<m; i++) {
4093 enmInst->append(CIMInstance(enm[i]));
4094 }
|
4095 mark.hamzy 1.20 return DEBUG_ConvertCToJava (Array<CIMInstance>*, jint, enmInst);
|
4096 schuur 1.3 }
|
4097 schuur 1.5 Catch(jEnv);
|
4098 mark.hamzy 1.20
|
4099 schuur 1.3 return 0;
4100 }
4101
|
4102 schuur 1.1 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1associatorNames
|
4103 schuur 1.5 (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop,
|
4104 mark.hamzy 1.20 jstring jAssocClass, jstring jResultClass, jstring jRole, jstring jResultRole)
4105 {
4106 CIMClient *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);
4107 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
4108 const char *str = jEnv->GetStringUTFChars(jAssocClass,NULL);
4109 CIMName assocClass(str);
|
4110 schuur 1.3
4111 jEnv->ReleaseStringUTFChars(jAssocClass,str);
4112 str=jEnv->GetStringUTFChars(jResultClass,NULL);
|
4113 mark.hamzy 1.20
|
4114 schuur 1.3 CIMName resultClass(str);
|
4115 mark.hamzy 1.20
|
4116 schuur 1.3 jEnv->ReleaseStringUTFChars(jResultClass,str);
4117 str=jEnv->GetStringUTFChars(jRole,NULL);
|
4118 mark.hamzy 1.20
|
4119 schuur 1.3 String role(str);
|
4120 mark.hamzy 1.20
|
4121 schuur 1.3 jEnv->ReleaseStringUTFChars(jRole,str);
4122 str=jEnv->GetStringUTFChars(jResultRole,NULL);
|
4123 mark.hamzy 1.20
|
4124 schuur 1.3 String resultRole(str);
|
4125 mark.hamzy 1.20
|
4126 schuur 1.3 jEnv->ReleaseStringUTFChars(jResultRole,str);
4127
4128 try {
|
4129 schuur 1.5 checkNs(cop,jNs);
|
4130 schuur 1.3 Array<CIMObjectPath> enm=cCc->associatorNames(
4131 cop->getNameSpace(),*cop,assocClass,resultClass,role,resultRole);
|
4132 mark.hamzy 1.20 return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jint, new Array<CIMObjectPath>(enm));
|
4133 schuur 1.3 }
|
4134 schuur 1.5 Catch(jEnv);
|
4135 mark.hamzy 1.20
|
4136 schuur 1.3 return 0;
4137 }
4138
|
4139 schuur 1.1 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1associators
|
4140 schuur 1.5 (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop,
|
4141 schuur 1.3 jstring jAssocClass, jstring jResultClass, jstring jRole, jstring jResultRole,
|
4142 mark.hamzy 1.20 jboolean includeQualifiers, jboolean includeClassOrigin, jobjectArray jPl)
4143 {
4144 CIMClient *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);
4145 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
4146 CIMPropertyList pl = getList(jEnv,jPl);
4147 const char *str = jEnv->GetStringUTFChars(jAssocClass,NULL);
4148 CIMName assocClass(str);
|
4149 schuur 1.3
4150 jEnv->ReleaseStringUTFChars(jAssocClass,str);
4151 str=jEnv->GetStringUTFChars(jResultClass,NULL);
|
4152 mark.hamzy 1.20
|
4153 schuur 1.3 CIMName resultClass(str);
|
4154 mark.hamzy 1.20
|
4155 schuur 1.3 jEnv->ReleaseStringUTFChars(jResultClass,str);
4156 str=jEnv->GetStringUTFChars(jRole,NULL);
|
4157 mark.hamzy 1.20
|
4158 schuur 1.3 String role(str);
|
4159 mark.hamzy 1.20
|
4160 schuur 1.3 jEnv->ReleaseStringUTFChars(jRole,str);
4161 str=jEnv->GetStringUTFChars(jResultRole,NULL);
|
4162 mark.hamzy 1.20
|
4163 schuur 1.3 String resultRole(str);
|
4164 mark.hamzy 1.20
|
4165 schuur 1.3 jEnv->ReleaseStringUTFChars(jResultRole,str);
4166
4167 try {
|
4168 schuur 1.5 checkNs(cop,jNs);
|
4169 schuur 1.3 Array<CIMObject> enm=cCc->associators(
4170 cop->getNameSpace(),*cop,assocClass,resultClass,role,resultRole,
|
4171 mark.hamzy 1.17 (Boolean)includeQualifiers,(Boolean)includeClassOrigin,pl);
|
4172 schuur 1.3 Array<CIMInstance> *enmInst=new Array<CIMInstance>();
4173 for (int i=0,m=enm.size(); i<m; i++) {
4174 enmInst->append(CIMInstance(enm[i]));
4175 }
|
4176 mark.hamzy 1.20 return DEBUG_ConvertCToJava (Array<CIMInstance>*, jint, enmInst);
|
4177 schuur 1.3 }
|
4178 schuur 1.5 Catch(jEnv);
|
4179 mark.hamzy 1.20
|
4180 schuur 1.3 return 0;
4181 }
4182
|
4183 schuur 1.1 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1referenceNames
|
4184 schuur 1.5 (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop,
|
4185 mark.hamzy 1.20 jstring jAssocClass, jstring jRole)
4186 {
4187 CIMClient *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);
4188 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
4189 const char *str = jEnv->GetStringUTFChars(jAssocClass,NULL);
4190 CIMName assocClass(str);
|
4191 schuur 1.3
4192 jEnv->ReleaseStringUTFChars(jAssocClass,str);
4193 str=jEnv->GetStringUTFChars(jRole,NULL);
|
4194 mark.hamzy 1.20
|
4195 schuur 1.3 String role(str);
|
4196 mark.hamzy 1.20
|
4197 schuur 1.3 jEnv->ReleaseStringUTFChars(jRole,str);
4198
4199 try {
|
4200 schuur 1.5 checkNs(cop,jNs);
|
4201 schuur 1.3 Array<CIMObjectPath> enm=cCc->referenceNames(
4202 cop->getNameSpace(),*cop,assocClass,role);
|
4203 mark.hamzy 1.20 return DEBUG_ConvertCToJava (Array<CIMObjectPath>*, jint, new Array<CIMObjectPath>(enm));
|
4204 schuur 1.3 }
|
4205 schuur 1.5 Catch(jEnv);
|
4206 mark.hamzy 1.20
|
4207 schuur 1.3 return 0;
4208 }
4209
|
4210 schuur 1.1 JNIEXPORT jint JNICALL Java_org_pegasus_jmpi_CIMClient__1references
|
4211 schuur 1.5 (JNIEnv *jEnv, jobject jThs, jint jCc, jint jNs, jint jCop,
|
4212 schuur 1.3 jstring jAssocClass, jstring jRole,
|
4213 mark.hamzy 1.20 jboolean includeQualifiers, jboolean includeClassOrigin, jobjectArray jPl)
4214 {
4215 CIMClient *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);
4216 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
4217 CIMPropertyList pl = getList(jEnv,jPl);
4218 const char *str = jEnv->GetStringUTFChars(jAssocClass,NULL);
4219 CIMName assocClass(str);
|
4220 schuur 1.3
4221 jEnv->ReleaseStringUTFChars(jAssocClass,str);
4222 str=jEnv->GetStringUTFChars(jRole,NULL);
|
4223 mark.hamzy 1.20
|
4224 schuur 1.3 String role(str);
|
4225 mark.hamzy 1.20
|
4226 schuur 1.3 jEnv->ReleaseStringUTFChars(jRole,str);
4227
4228 try {
|
4229 schuur 1.5 checkNs(cop,jNs);
|
4230 schuur 1.3 Array<CIMObject> enm=cCc->references(
4231 cop->getNameSpace(),*cop,assocClass,role,
|
4232 mark.hamzy 1.17 (Boolean)includeQualifiers,(Boolean)includeClassOrigin,pl);
|
4233 schuur 1.3 Array<CIMInstance> *enmInst=new Array<CIMInstance>();
4234 for (int i=0,m=enm.size(); i<m; i++) {
4235 enmInst->append(CIMInstance(enm[i]));
4236 }
|
4237 mark.hamzy 1.20 return DEBUG_ConvertCToJava (Array<CIMInstance>*, jint, enmInst);
|
4238 schuur 1.3 }
|
4239 schuur 1.5 Catch(jEnv);
|
4240 mark.hamzy 1.20
|
4241 schuur 1.5 return 0;
4242 }
4243
|
4244 schuur 1.6 static int normalizeNs(String &ns, String &nsBase, String &lastNsComp) {
4245 Uint32 n=ns.size();
4246 if (ns[n-1]=='/') {
4247 if (n>=2) ns=ns.subString(0,n-2);
4248 }
4249
4250 lastNsComp=ns;
4251 nsBase="root";
4252
4253 n=ns.reverseFind('/');
4254 if (n!=PEG_NOT_FOUND) {
4255 lastNsComp=ns.subString(n+1);
4256 nsBase=ns.subString(0,n);
4257 }
4258 return 0;
4259 }
4260
|
4261 schuur 1.5 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1createNameSpace
|
4262 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCc, jstring jNs)
4263 {
4264 CIMClient *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);
4265 const char *str = jEnv->GetStringUTFChars(jNs,NULL);
4266 String ns(str);
|
4267 schuur 1.5
4268 jEnv->ReleaseStringUTFChars(jNs,str);
|
4269 schuur 1.6
4270 String lastNsComp;
4271 String nsBase;
4272
4273 normalizeNs(ns,nsBase,lastNsComp);
|
4274 schuur 1.5
4275 CIMInstance newInstance(CIMName("__Namespace"));
|
4276 schuur 1.6 newInstance.addProperty(CIMProperty(CIMName ("name"),lastNsComp));
|
4277 schuur 1.5
4278 try {
|
4279 schuur 1.6 cCc->createInstance(CIMNamespaceName(nsBase),newInstance);
|
4280 schuur 1.3 }
|
4281 schuur 1.5 Catch(jEnv);
4282 }
4283
4284 JNIEXPORT jobject JNICALL Java_org_pegasus_jmpi_CIMClient__1enumerateNameSpaces
|
4285 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCc, jint jCop, jboolean deep, jobject jVec)
4286 {
4287 CIMClient *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);
4288 CIMObjectPath *cop = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jCop);
4289 String ns = cop->getNameSpace().getString();
|
4290 schuur 1.6
4291 try {
4292 Array<CIMObjectPath> enm=cCc->enumerateInstanceNames(
4293 cop->getNameSpace(),CIMName("__Namespace"));
4294 for (int i=0,s=enm.size(); i<s; i++) {
4295 CIMObjectPath &cop=enm[i];
4296 const Array<CIMKeyBinding>& kb=cop.getKeyBindings();
|
4297 mark.hamzy 1.17 const String &n=kb[0].getValue();
|
4298 mark.hamzy 1.16 if (!deep && n.find('/')!=PEG_NOT_FOUND)
4299 continue;
|
4300 mark.hamzy 1.17 String x=ns+"/"+n;
4301 jstring str=jEnv->NewStringUTF(x.getCString());
|
4302 mark.hamzy 1.26 jEnv->CallVoidMethod(jVec,JMPIjvm::jv.VectorAddElement,str);
|
4303 schuur 1.6 }
4304 }
4305 Catch(jEnv);
|
4306 mark.hamzy 1.20
|
4307 schuur 1.5 return jVec;
4308 }
4309
4310 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1deleteNameSpace
|
4311 mark.hamzy 1.20 (JNIEnv *jEnv, jobject jThs, jint jCc, jstring jNs)
4312 {
4313 CIMClient *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);
4314 const char *str = jEnv->GetStringUTFChars(jNs,NULL);
4315 String ns(str);
|
4316 schuur 1.6
4317 jEnv->ReleaseStringUTFChars(jNs,str);
|
4318 mark.hamzy 1.20
|
4319 schuur 1.6 String lastNsComp;
4320 String nsBase;
4321
4322 normalizeNs(ns,nsBase,lastNsComp);
4323
4324 CIMObjectPath cop(String::EMPTY,CIMNamespaceName(nsBase),CIMName("__Namespace"));
4325 Array<CIMKeyBinding> kb;
4326 kb.append(CIMKeyBinding(("Name"),CIMValue(lastNsComp)));
4327 cop.setKeyBindings(kb);
4328
4329 try {
4330 cCc->deleteInstance(CIMNamespaceName(nsBase),cop);
4331 }
4332 Catch(jEnv);
|
4333 schuur 1.3 }
|
4334 schuur 1.1
|
4335 mark.hamzy 1.24 JNIEXPORT void JNICALL Java_org_pegasus_jmpi_CIMClient__1finalize
4336 (JNIEnv *jEnv, jobject jThs, jint jCc)
4337 {
4338 CIMClient *cCc = DEBUG_ConvertJavaToC (jint, CIMClient*, jCc);
4339
4340 delete cCc;
4341
4342 DEBUG_ConvertCleanup (jint, jCc);
4343 }
4344
|
4345 schuur 1.5 } // extern "C"
|
4346 schuur 1.1
4347 PEGASUS_NAMESPACE_END
|