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