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