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