1 karl 1.28 //%2006////////////////////////////////////////////////////////////////////////
|
2 kumpf 1.1 //
|
3 karl 1.17 // 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 kumpf 1.1 // IBM Corp.; EMC Corporation, The Open Group.
|
7 karl 1.17 // 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.21 // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
10 // EMC Corporation; VERITAS Software Corporation; The Open Group.
|
11 karl 1.28 // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
12 // EMC Corporation; Symantec Corporation; The Open Group.
|
13 kumpf 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 //
21 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
22 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
23 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
25 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
26 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
27 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 //
30 //==============================================================================
31 //
32 // Author: Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com)
33 //
|
34 se.gupta 1.10 // Modified By: Seema Gupta (gseema@in.ibm.com) for PEP135
|
35 jenny.yu 1.20 // Jenny Yu, Hewlett-Packard company (jenny.yu@hp.com)
|
36 carolann.graves 1.22 // Carol Ann Krug Graves, Hewlett-Packard Company
37 // (carolann_graves@hp.com)
|
38 kumpf 1.1 //
39 //%/////////////////////////////////////////////////////////////////////////////
40
|
41 kumpf 1.9 #include <Pegasus/Common/XmlReader.h>
42 #include <Pegasus/Common/OperationContextInternal.h>
43 #include <Pegasus/Common/System.h>
44
|
45 kumpf 1.1 #include "CIMMessageDeserializer.h"
46
47 PEGASUS_NAMESPACE_BEGIN
48
|
49 david.dillard 1.19 CIMMessage* CIMMessageDeserializer::deserialize(char* buffer)
|
50 kumpf 1.1 {
51 if (buffer[0] == 0)
52 {
53 // No message to deserialize
54 return 0;
55 }
56
57 XmlParser parser(buffer);
58 XmlEntry entry;
59
|
60 w.otsuka 1.23 CIMMessage* message = 0;
|
61 kumpf 1.1 String messageID;
62 String typeString;
63 Uint32 type;
|
64 kumpf 1.32 CIMValue genericValue;
|
65 kumpf 1.25 #ifndef PEGASUS_DISABLE_PERFINST
|
66 kumpf 1.36 Uint64 serverStartTimeMicroseconds;
67 Uint64 providerTimeMicroseconds;
|
68 kumpf 1.25 #endif
|
69 kumpf 1.31 Boolean isComplete;
|
70 kumpf 1.33 Uint32 index;
|
71 kumpf 1.11 OperationContext operationContext;
|
72 kumpf 1.1
73 XmlReader::expectStartTag(parser, entry, "PGMESSAGE");
74
|
75 kumpf 1.29 Boolean found = entry.getAttributeValue("ID", messageID);
76 PEGASUS_ASSERT(found);
|
77 kumpf 1.1
|
78 kumpf 1.29 found = entry.getAttributeValue("TYPE", typeString);
79 PEGASUS_ASSERT(found);
|
80 kumpf 1.1 type = Uint32(atoi(typeString.getCString()));
81
|
82 kumpf 1.25 #ifndef PEGASUS_DISABLE_PERFINST
83 // Deserialize the performance statistics data
84
85 XmlReader::getValueElement(parser, CIMTYPE_UINT64, genericValue);
|
86 kumpf 1.36 genericValue.get(serverStartTimeMicroseconds);
|
87 kumpf 1.25 XmlReader::getValueElement(parser, CIMTYPE_UINT64, genericValue);
|
88 kumpf 1.36 genericValue.get(providerTimeMicroseconds);
|
89 kumpf 1.25 #endif
90
|
91 kumpf 1.31 XmlReader::getValueElement(parser, CIMTYPE_BOOLEAN, genericValue);
92 genericValue.get(isComplete);
93
|
94 kumpf 1.33 XmlReader::getValueElement(parser, CIMTYPE_UINT32, genericValue);
95 genericValue.get(index);
96
|
97 kumpf 1.11 _deserializeOperationContext(parser, operationContext);
|
98 kumpf 1.1
99 if (XmlReader::testStartTag(parser, entry, "PGREQ"))
100 {
101 message = _deserializeCIMRequestMessage(parser, type);
102 XmlReader::expectEndTag(parser, "PGREQ");
103 }
|
104 kumpf 1.29 else
|
105 kumpf 1.1 {
|
106 kumpf 1.29 // CIMResponseMessage is the only other CIMMessage type defined
107 Boolean found = XmlReader::testStartTag(parser, entry, "PGRESP");
108 PEGASUS_ASSERT(found);
|
109 kumpf 1.1 message = _deserializeCIMResponseMessage(parser, type);
110 XmlReader::expectEndTag(parser, "PGRESP");
111 }
112
113 XmlReader::expectEndTag(parser, "PGMESSAGE");
114
115 message->messageId = messageID;
|
116 kumpf 1.25 #ifndef PEGASUS_DISABLE_PERFINST
|
117 kumpf 1.36 message->setServerStartTime(serverStartTimeMicroseconds);
118 message->setProviderTime(providerTimeMicroseconds);
|
119 kumpf 1.25 #endif
|
120 kumpf 1.31 message->setComplete(isComplete);
|
121 kumpf 1.33 message->setIndex(index);
|
122 kumpf 1.11 message->operationContext = operationContext;
|
123 kumpf 1.1
124 return message;
125 }
126
127 //
128 // _deserializeCIMRequestMessage
129 //
130 CIMRequestMessage* CIMMessageDeserializer::_deserializeCIMRequestMessage(
131 XmlParser& parser,
132 Uint32 type)
133 {
134 CIMRequestMessage* message = 0;
135 XmlEntry entry;
136 QueueIdStack queueIdStack;
137
138 _deserializeQueueIdStack(parser, queueIdStack);
139
140 if (XmlReader::testStartTag(parser, entry, "PGOPREQ"))
141 {
|
142 w.otsuka 1.23 CIMOperationRequestMessage* cimOpReqMessage = 0;
|
143 kumpf 1.1 CIMValue genericValue;
|
144 kumpf 1.35 String authType;
145 String userName;
|
146 kumpf 1.1 CIMNamespaceName nameSpace;
147 CIMName className;
148 Uint32 providerType;
149
|
150 kumpf 1.35 _deserializeUserInfo(parser, authType, userName);
|
151 kumpf 1.1 _deserializeCIMNamespaceName(parser, nameSpace);
152 _deserializeCIMName(parser, className);
153
154 // Decode cimMessage->providerType
155 XmlReader::getValueElement(parser, CIMTYPE_UINT32, genericValue);
156 genericValue.get(providerType);
157
158 switch (type)
159 {
|
160 kumpf 1.29 // A provider cannot implement these operation types, so the
161 // serialization of these messages is not implemented.
162 //case CIM_GET_CLASS_REQUEST_MESSAGE:
163 //case CIM_DELETE_CLASS_REQUEST_MESSAGE:
164 //case CIM_CREATE_CLASS_REQUEST_MESSAGE:
165 //case CIM_MODIFY_CLASS_REQUEST_MESSAGE:
166 //case CIM_ENUMERATE_CLASSES_REQUEST_MESSAGE:
167 //case CIM_ENUMERATE_CLASS_NAMES_REQUEST_MESSAGE:
168 //case CIM_GET_QUALIFIER_REQUEST_MESSAGE:
169 //case CIM_SET_QUALIFIER_REQUEST_MESSAGE:
170 //case CIM_DELETE_QUALIFIER_REQUEST_MESSAGE:
171 //case CIM_ENUMERATE_QUALIFIERS_REQUEST_MESSAGE:
|
172 kumpf 1.1
173 // Instance operations
174 case CIM_GET_INSTANCE_REQUEST_MESSAGE:
175 cimOpReqMessage = _deserializeCIMGetInstanceRequestMessage(parser);
176 break;
177 case CIM_DELETE_INSTANCE_REQUEST_MESSAGE:
178 cimOpReqMessage = _deserializeCIMDeleteInstanceRequestMessage(parser);
179 break;
180 case CIM_CREATE_INSTANCE_REQUEST_MESSAGE:
181 cimOpReqMessage = _deserializeCIMCreateInstanceRequestMessage(parser);
182 break;
183 case CIM_MODIFY_INSTANCE_REQUEST_MESSAGE:
184 cimOpReqMessage = _deserializeCIMModifyInstanceRequestMessage(parser);
185 break;
186 case CIM_ENUMERATE_INSTANCES_REQUEST_MESSAGE:
187 cimOpReqMessage = _deserializeCIMEnumerateInstancesRequestMessage(parser);
188 break;
189 case CIM_ENUMERATE_INSTANCE_NAMES_REQUEST_MESSAGE:
190 cimOpReqMessage = _deserializeCIMEnumerateInstanceNamesRequestMessage(parser);
191 break;
192 case CIM_EXEC_QUERY_REQUEST_MESSAGE:
193 kumpf 1.1 cimOpReqMessage = _deserializeCIMExecQueryRequestMessage(parser);
194 break;
195
196 // Property operations
197 case CIM_GET_PROPERTY_REQUEST_MESSAGE:
198 cimOpReqMessage = _deserializeCIMGetPropertyRequestMessage(parser);
199 break;
200 case CIM_SET_PROPERTY_REQUEST_MESSAGE:
201 cimOpReqMessage = _deserializeCIMSetPropertyRequestMessage(parser);
202 break;
203
204 // Association operations
205 case CIM_ASSOCIATORS_REQUEST_MESSAGE:
206 cimOpReqMessage = _deserializeCIMAssociatorsRequestMessage(parser);
207 break;
208 case CIM_ASSOCIATOR_NAMES_REQUEST_MESSAGE:
209 cimOpReqMessage = _deserializeCIMAssociatorNamesRequestMessage(parser);
210 break;
211 case CIM_REFERENCES_REQUEST_MESSAGE:
212 cimOpReqMessage = _deserializeCIMReferencesRequestMessage(parser);
213 break;
214 kumpf 1.1 case CIM_REFERENCE_NAMES_REQUEST_MESSAGE:
215 cimOpReqMessage = _deserializeCIMReferenceNamesRequestMessage(parser);
216 break;
217
218 // Method operations
219 case CIM_INVOKE_METHOD_REQUEST_MESSAGE:
220 cimOpReqMessage = _deserializeCIMInvokeMethodRequestMessage(parser);
221 break;
222 }
|
223 kumpf 1.29 PEGASUS_ASSERT(cimOpReqMessage != 0);
|
224 kumpf 1.1
225 XmlReader::expectEndTag(parser, "PGOPREQ");
226
|
227 kumpf 1.35 cimOpReqMessage->authType = authType;
228 cimOpReqMessage->userName = userName;
|
229 kumpf 1.1 cimOpReqMessage->nameSpace = CIMNamespaceName(nameSpace);
230 cimOpReqMessage->className = className;
231 cimOpReqMessage->providerType = providerType;
232
233 message = cimOpReqMessage;
234 }
235 else if (XmlReader::testStartTag(parser, entry, "PGINDREQ"))
236 {
|
237 kumpf 1.35 String authType;
238 String userName;
239
240 _deserializeUserInfo(parser, authType, userName);
241
|
242 w.otsuka 1.23 CIMIndicationRequestMessage* cimIndReqMessage = 0;
|
243 kumpf 1.1 switch (type)
244 {
245 case CIM_CREATE_SUBSCRIPTION_REQUEST_MESSAGE:
246 cimIndReqMessage = _deserializeCIMCreateSubscriptionRequestMessage(parser);
247 break;
248 case CIM_MODIFY_SUBSCRIPTION_REQUEST_MESSAGE:
249 cimIndReqMessage = _deserializeCIMModifySubscriptionRequestMessage(parser);
250 break;
251 case CIM_DELETE_SUBSCRIPTION_REQUEST_MESSAGE:
252 cimIndReqMessage = _deserializeCIMDeleteSubscriptionRequestMessage(parser);
253 break;
254 }
|
255 kumpf 1.29 PEGASUS_ASSERT(cimIndReqMessage != 0);
|
256 kumpf 1.1
257 XmlReader::expectEndTag(parser, "PGINDREQ");
258
|
259 kumpf 1.35 cimIndReqMessage->authType = authType;
260 cimIndReqMessage->userName = userName;
261
|
262 kumpf 1.1 message = cimIndReqMessage;
263 }
264 else // Other message types
265 {
266 XmlReader::expectStartTag(parser, entry, "PGOTHERREQ");
267
268 switch (type)
269 {
270 case CIM_EXPORT_INDICATION_REQUEST_MESSAGE:
271 message = _deserializeCIMExportIndicationRequestMessage(parser);
272 break;
273 case CIM_PROCESS_INDICATION_REQUEST_MESSAGE:
274 message = _deserializeCIMProcessIndicationRequestMessage(parser);
275 break;
|
276 kumpf 1.29 //case CIM_NOTIFY_PROVIDER_REGISTRATION_REQUEST_MESSAGE:
|
277 kumpf 1.1 // ATTN: No need to serialize this yet
278 //message = _deserializeCIMNotifyProviderRegistrationRequestMessage(parser);
279 break;
|
280 kumpf 1.29 //case CIM_NOTIFY_PROVIDER_TERMINATION_REQUEST_MESSAGE:
|
281 kumpf 1.1 // ATTN: No need to serialize this yet
282 //message = _deserializeCIMNotifyProviderTerminationRequestMessage(parser);
283 break;
|
284 kumpf 1.29 //case CIM_HANDLE_INDICATION_REQUEST_MESSAGE:
|
285 kumpf 1.1 // ATTN: No need to serialize this yet
286 //message = _deserializeCIMHandleIndicationRequestMessage(parser);
287 break;
288 case CIM_DISABLE_MODULE_REQUEST_MESSAGE:
289 message = _deserializeCIMDisableModuleRequestMessage(parser);
290 break;
291 case CIM_ENABLE_MODULE_REQUEST_MESSAGE:
292 message = _deserializeCIMEnableModuleRequestMessage(parser);
293 break;
|
294 kumpf 1.29 //case CIM_NOTIFY_PROVIDER_ENABLE_REQUEST_MESSAGE:
|
295 kumpf 1.1 // ATTN: No need to serialize this yet
296 //message = _deserializeCIMNotifyProviderEnableRequestMessage(parser);
297 break;
|
298 carolann.graves 1.34 //case CIM_NOTIFY_PROVIDER_FAIL_REQUEST_MESSAGE:
299 // ATTN: No need to deserialize this yet
300 //message = _deserializeCIMNotifyProviderFailRequestMessage(parser);
301 //break;
|
302 kumpf 1.1 case CIM_STOP_ALL_PROVIDERS_REQUEST_MESSAGE:
303 message = _deserializeCIMStopAllProvidersRequestMessage(parser);
304 break;
|
305 kumpf 1.2 case CIM_INITIALIZE_PROVIDER_REQUEST_MESSAGE:
306 message = _deserializeCIMInitializeProviderRequestMessage(parser);
307 break;
|
308 kumpf 1.7 case CIM_INITIALIZE_PROVIDER_AGENT_REQUEST_MESSAGE:
309 message =
310 _deserializeCIMInitializeProviderAgentRequestMessage(parser);
311 break;
|
312 kumpf 1.8 case CIM_NOTIFY_CONFIG_CHANGE_REQUEST_MESSAGE:
313 message = _deserializeCIMNotifyConfigChangeRequestMessage(parser);
314 break;
|
315 carolann.graves 1.22 case CIM_SUBSCRIPTION_INIT_COMPLETE_REQUEST_MESSAGE:
316 message =
317 _deserializeCIMSubscriptionInitCompleteRequestMessage
318 (parser);
319 break;
|
320 kumpf 1.1 }
|
321 kumpf 1.29 PEGASUS_ASSERT(message != 0);
|
322 kumpf 1.1
323 XmlReader::expectEndTag(parser, "PGOTHERREQ");
324 }
325
326 message->queueIds = queueIdStack;
327
328 return message;
329 }
330
331 //
332 // _deserializeCIMResponseMessage
333 //
334 CIMResponseMessage* CIMMessageDeserializer::_deserializeCIMResponseMessage(
335 XmlParser& parser,
336 Uint32 type)
337 {
338 CIMResponseMessage* message = 0;
339 QueueIdStack queueIdStack;
340 CIMException cimException;
341
342 _deserializeQueueIdStack(parser, queueIdStack);
343 kumpf 1.1 _deserializeCIMException(parser, cimException);
344
345 switch (type)
346 {
347 //
348 // CIM Operation Response Messages
349 //
350
|
351 kumpf 1.29 // A provider cannot implement these operation types, so the
352 // serialization of these messages is not implemented.
353 //case CIM_GET_CLASS_RESPONSE_MESSAGE:
354 //case CIM_DELETE_CLASS_RESPONSE_MESSAGE:
355 //case CIM_CREATE_CLASS_RESPONSE_MESSAGE:
356 //case CIM_MODIFY_CLASS_RESPONSE_MESSAGE:
357 //case CIM_ENUMERATE_CLASSES_RESPONSE_MESSAGE:
358 //case CIM_ENUMERATE_CLASS_NAMES_RESPONSE_MESSAGE:
359 //case CIM_GET_QUALIFIER_RESPONSE_MESSAGE:
360 //case CIM_SET_QUALIFIER_RESPONSE_MESSAGE:
361 //case CIM_DELETE_QUALIFIER_RESPONSE_MESSAGE:
362 //case CIM_ENUMERATE_QUALIFIERS_RESPONSE_MESSAGE:
|
363 kumpf 1.1
364 // Instance operations
365 case CIM_GET_INSTANCE_RESPONSE_MESSAGE:
366 message = _deserializeCIMGetInstanceResponseMessage(parser);
367 break;
368 case CIM_DELETE_INSTANCE_RESPONSE_MESSAGE:
369 message = _deserializeCIMDeleteInstanceResponseMessage(parser);
370 break;
371 case CIM_CREATE_INSTANCE_RESPONSE_MESSAGE:
372 message = _deserializeCIMCreateInstanceResponseMessage(parser);
373 break;
374 case CIM_MODIFY_INSTANCE_RESPONSE_MESSAGE:
375 message = _deserializeCIMModifyInstanceResponseMessage(parser);
376 break;
377 case CIM_ENUMERATE_INSTANCES_RESPONSE_MESSAGE:
378 message = _deserializeCIMEnumerateInstancesResponseMessage(parser);
379 break;
380 case CIM_ENUMERATE_INSTANCE_NAMES_RESPONSE_MESSAGE:
381 message = _deserializeCIMEnumerateInstanceNamesResponseMessage(parser);
382 break;
383 case CIM_EXEC_QUERY_RESPONSE_MESSAGE:
384 kumpf 1.1 message = _deserializeCIMExecQueryResponseMessage(parser);
385 break;
386
387 // Property operations
388 case CIM_GET_PROPERTY_RESPONSE_MESSAGE:
389 message = _deserializeCIMGetPropertyResponseMessage(parser);
390 break;
391 case CIM_SET_PROPERTY_RESPONSE_MESSAGE:
392 message = _deserializeCIMSetPropertyResponseMessage(parser);
393 break;
394
395 // Association operations
396 case CIM_ASSOCIATORS_RESPONSE_MESSAGE:
397 message = _deserializeCIMAssociatorsResponseMessage(parser);
398 break;
399 case CIM_ASSOCIATOR_NAMES_RESPONSE_MESSAGE:
400 message = _deserializeCIMAssociatorNamesResponseMessage(parser);
401 break;
402 case CIM_REFERENCES_RESPONSE_MESSAGE:
403 message = _deserializeCIMReferencesResponseMessage(parser);
404 break;
405 kumpf 1.1 case CIM_REFERENCE_NAMES_RESPONSE_MESSAGE:
406 message = _deserializeCIMReferenceNamesResponseMessage(parser);
407 break;
408
409 // Method operations
410 case CIM_INVOKE_METHOD_RESPONSE_MESSAGE:
411 message = _deserializeCIMInvokeMethodResponseMessage(parser);
412 break;
413
414 //
415 // CIM Indication Response Messages
416 //
417
418 case CIM_CREATE_SUBSCRIPTION_RESPONSE_MESSAGE:
419 message = _deserializeCIMCreateSubscriptionResponseMessage(parser);
420 break;
421 case CIM_MODIFY_SUBSCRIPTION_RESPONSE_MESSAGE:
422 message = _deserializeCIMModifySubscriptionResponseMessage(parser);
423 break;
424 case CIM_DELETE_SUBSCRIPTION_RESPONSE_MESSAGE:
425 message = _deserializeCIMDeleteSubscriptionResponseMessage(parser);
426 kumpf 1.1 break;
427
428 //
429 // Other CIM Response Messages
430 //
431
432 case CIM_EXPORT_INDICATION_RESPONSE_MESSAGE:
433 message = _deserializeCIMExportIndicationResponseMessage(parser);
434 break;
435 case CIM_PROCESS_INDICATION_RESPONSE_MESSAGE:
436 message = _deserializeCIMProcessIndicationResponseMessage(parser);
437 break;
|
438 kumpf 1.29 //case CIM_NOTIFY_PROVIDER_REGISTRATION_RESPONSE_MESSAGE:
|
439 kumpf 1.1 // ATTN: No need to serialize this yet
440 //message = _deserializeCIMNotifyProviderRegistrationResponseMessage(parser);
|
441 kumpf 1.29 //break;
442 //case CIM_NOTIFY_PROVIDER_TERMINATION_RESPONSE_MESSAGE:
|
443 kumpf 1.1 // ATTN: No need to serialize this yet
444 //message = _deserializeCIMNotifyProviderTerminationResponseMessage(parser);
|
445 kumpf 1.29 //break;
446 //case CIM_HANDLE_INDICATION_RESPONSE_MESSAGE:
|
447 kumpf 1.1 // ATTN: No need to serialize this yet
448 //message = _deserializeCIMHandleIndicationResponseMessage(parser);
|
449 kumpf 1.29 //break;
|
450 kumpf 1.1 case CIM_DISABLE_MODULE_RESPONSE_MESSAGE:
451 message = _deserializeCIMDisableModuleResponseMessage(parser);
452 break;
453 case CIM_ENABLE_MODULE_RESPONSE_MESSAGE:
454 message = _deserializeCIMEnableModuleResponseMessage(parser);
455 break;
|
456 kumpf 1.29 //case CIM_NOTIFY_PROVIDER_ENABLE_RESPONSE_MESSAGE:
|
457 kumpf 1.1 // ATTN: No need to serialize this yet
458 //message = _deserializeCIMNotifyProviderEnableResponseMessage(parser);
|
459 kumpf 1.29 //break;
|
460 carolann.graves 1.34 //case CIM_NOTIFY_PROVIDER_FAIL_RESPONSE_MESSAGE:
461 // ATTN: No need to deserialize this yet
462 //message = _deserializeCIMNotifyProviderFailResponseMessage(parser);
463 //break;
|
464 kumpf 1.1 case CIM_STOP_ALL_PROVIDERS_RESPONSE_MESSAGE:
465 message = _deserializeCIMStopAllProvidersResponseMessage(parser);
466 break;
|
467 kumpf 1.2 case CIM_INITIALIZE_PROVIDER_RESPONSE_MESSAGE:
468 message = _deserializeCIMInitializeProviderResponseMessage(parser);
469 break;
|
470 kumpf 1.7 case CIM_INITIALIZE_PROVIDER_AGENT_RESPONSE_MESSAGE:
471 message =
472 _deserializeCIMInitializeProviderAgentResponseMessage(parser);
473 break;
|
474 kumpf 1.8 case CIM_NOTIFY_CONFIG_CHANGE_RESPONSE_MESSAGE:
475 message = _deserializeCIMNotifyConfigChangeResponseMessage(parser);
476 break;
|
477 carolann.graves 1.22 case CIM_SUBSCRIPTION_INIT_COMPLETE_RESPONSE_MESSAGE:
478 message =
479 _deserializeCIMSubscriptionInitCompleteResponseMessage
480 (parser);
481 break;
|
482 kumpf 1.1 }
|
483 kumpf 1.29 PEGASUS_ASSERT(message != 0);
|
484 kumpf 1.1
485 message->queueIds = queueIdStack;
486 message->cimException = cimException;
487
488 return message;
489 }
490
491
492 //
493 // Utility Methods
494 //
495
496 //
497 // _deserializeUserInfo consolidates decoding of these common message attributes
498 //
499 void CIMMessageDeserializer::_deserializeUserInfo(
500 XmlParser& parser,
501 String& authType,
502 String& userName)
503 {
504 CIMValue genericValue;
505 kumpf 1.1
506 XmlReader::getValueElement(parser, CIMTYPE_STRING, genericValue);
507 genericValue.get(authType);
508
509 XmlReader::getValueElement(parser, CIMTYPE_STRING, genericValue);
510 genericValue.get(userName);
511 }
512
513 //
514 // _deserializeQueueIdStack
515 //
516 void CIMMessageDeserializer::_deserializeQueueIdStack(
517 XmlParser& parser,
518 QueueIdStack& queueIdStack)
519 {
520 // ATTN: Incoming queueIdStack is presumed to be empty
521
522 XmlEntry entry;
523 CIMValue genericValue;
524 Uint32 genericUint32;
525 Array<Uint32> items;
526 kumpf 1.1
527 XmlReader::expectStartTag(parser, entry, "PGQIDSTACK");
528 while (XmlReader::getValueElement(parser, CIMTYPE_UINT32, genericValue))
529 {
530 genericValue.get(genericUint32);
531 items.append(genericUint32);
532 }
533 XmlReader::expectEndTag(parser, "PGQIDSTACK");
534
535 for (Uint32 i=items.size(); i>0; i--)
536 {
537 queueIdStack.push(items[i-1]);
538 }
539 }
540
541 //
542 // _deserializeOperationContext
543 //
544 void CIMMessageDeserializer::_deserializeOperationContext(
545 XmlParser& parser,
546 OperationContext& operationContext)
547 kumpf 1.1 {
|
548 kumpf 1.29 operationContext.clear();
|
549 kumpf 1.1
550 XmlEntry entry;
551 CIMValue genericValue;
552 String genericString;
553
554 XmlReader::expectStartTag(parser, entry, "PGOC");
555
556 if (XmlReader::testStartTag(parser, entry, "PGOCID"))
557 {
558 String userName;
559
560 XmlReader::getValueElement(parser, CIMTYPE_STRING, genericValue);
561 genericValue.get(userName);
562 operationContext.insert(IdentityContainer(userName));
563 XmlReader::expectEndTag(parser, "PGOCID");
564 }
565
566 if (XmlReader::testStartTag(parser, entry, "PGOCSI"))
567 {
568 CIMInstance subscriptionInstance;
569 _deserializeCIMInstance(parser, subscriptionInstance);
570 kumpf 1.1 operationContext.insert(
571 SubscriptionInstanceContainer(subscriptionInstance));
572 XmlReader::expectEndTag(parser, "PGOCSI");
573 }
574
575 if (XmlReader::testStartTag(parser, entry, "PGOCSFC"))
576 {
577 String filterCondition;
578 String queryLanguage;
579
580 XmlReader::getValueElement(parser, CIMTYPE_STRING, genericValue);
581 genericValue.get(filterCondition);
582 XmlReader::getValueElement(parser, CIMTYPE_STRING, genericValue);
583 genericValue.get(queryLanguage);
584 operationContext.insert(
585 SubscriptionFilterConditionContainer(
586 filterCondition, queryLanguage));
587 XmlReader::expectEndTag(parser, "PGOCSFC");
588 }
589
|
590 chuck 1.18 if (XmlReader::testStartTag(parser, entry, "PGOCSFQ"))
591 {
592 String filterQuery;
593 String queryLanguage;
594 CIMNamespaceName nameSpace;
595
596 XmlReader::getValueElement(parser, CIMTYPE_STRING, genericValue);
597 genericValue.get(filterQuery);
598 XmlReader::getValueElement(parser, CIMTYPE_STRING, genericValue);
599 genericValue.get(queryLanguage);
600 _deserializeCIMNamespaceName(parser, nameSpace);
601 operationContext.insert(
602 SubscriptionFilterQueryContainer(
603 filterQuery, queryLanguage, nameSpace));
604 XmlReader::expectEndTag(parser, "PGOCSFQ");
605 }
606
|
607 kumpf 1.1 if (XmlReader::testStartTag(parser, entry, "PGOCSIN"))
608 {
609 Array<CIMObjectPath> subscriptionInstanceNames;
610 CIMObjectPath genericObjectPath;
611
612 while (_deserializeCIMObjectPath(parser, genericObjectPath))
613 {
614 subscriptionInstanceNames.append(genericObjectPath);
615 }
616 operationContext.insert(
617 SubscriptionInstanceNamesContainer(subscriptionInstanceNames));
618 XmlReader::expectEndTag(parser, "PGOCSIN");
619 }
620
621 if (XmlReader::testStartTag(parser, entry, "PGOCTO"))
622 {
623 Uint32 timeout;
624
625 XmlReader::getValueElement(parser, CIMTYPE_UINT32, genericValue);
626 genericValue.get(timeout);
627 operationContext.insert(TimeoutContainer(timeout));
628 kumpf 1.1 XmlReader::expectEndTag(parser, "PGOCTO");
629 }
630
631 if (XmlReader::testStartTag(parser, entry, "PGOCALL"))
632 {
|
633 kumpf 1.27 AcceptLanguageList acceptLanguages;
|
634 kumpf 1.1
|
635 kumpf 1.27 _deserializeAcceptLanguageList(parser, acceptLanguages);
|
636 kumpf 1.1 operationContext.insert(AcceptLanguageListContainer(acceptLanguages));
637 XmlReader::expectEndTag(parser, "PGOCALL");
638 }
639
640 if (XmlReader::testStartTag(parser, entry, "PGOCCLL"))
641 {
|
642 kumpf 1.27 ContentLanguageList contentLanguages;
|
643 kumpf 1.1
|
644 kumpf 1.27 _deserializeContentLanguageList(parser, contentLanguages);
|
645 kumpf 1.1 operationContext.insert(
646 ContentLanguageListContainer(contentLanguages));
647 XmlReader::expectEndTag(parser, "PGOCCLL");
648 }
649
650 if (XmlReader::testStartTag(parser, entry, "PGOCSTO"))
651 {
652 String snmpTrapOid;
653
654 XmlReader::getValueElement(parser, CIMTYPE_STRING, genericValue);
655 genericValue.get(snmpTrapOid);
656 operationContext.insert(SnmpTrapOidContainer(snmpTrapOid));
657 XmlReader::expectEndTag(parser, "PGOCSTO");
658 }
659
660 if (XmlReader::testStartTag(parser, entry, "PGOCL"))
661 {
662 String languageId;
663
664 XmlReader::getValueElement(parser, CIMTYPE_STRING, genericValue);
665 genericValue.get(languageId);
666 kumpf 1.1 operationContext.insert(LocaleContainer(languageId));
667 XmlReader::expectEndTag(parser, "PGOCL");
668 }
669
670 if (XmlReader::testStartTag(parser, entry, "PGOCPI"))
671 {
|
672 kumpf 1.11 CIMValue genericValue;
|
673 kumpf 1.1 CIMInstance module;
674 CIMInstance provider;
|
675 kumpf 1.11 Boolean isRemoteNameSpace;
676 String remoteInfo;
|
677 kumpf 1.1
678 _deserializeCIMInstance(parser, module);
679 _deserializeCIMInstance(parser, provider);
|
680 kumpf 1.11
681 XmlReader::getValueElement(parser, CIMTYPE_BOOLEAN, genericValue);
682 genericValue.get(isRemoteNameSpace);
683
684 XmlReader::getValueElement(parser, CIMTYPE_STRING, genericValue);
685 genericValue.get(remoteInfo);
686
687 operationContext.insert(ProviderIdContainer(
688 module, provider, isRemoteNameSpace, remoteInfo));
|
689 kumpf 1.1 XmlReader::expectEndTag(parser, "PGOCPI");
690 }
691
692 XmlReader::expectEndTag(parser, "PGOC");
693 }
694
695 //
|
696 kumpf 1.27 // _deserializeContentLanguageList
|
697 kumpf 1.1 //
|
698 kumpf 1.27 void CIMMessageDeserializer::_deserializeContentLanguageList(
|
699 kumpf 1.1 XmlParser& parser,
|
700 kumpf 1.27 ContentLanguageList& contentLanguages)
|
701 kumpf 1.1 {
|
702 kumpf 1.29 contentLanguages.clear();
|
703 kumpf 1.1
704 XmlEntry entry;
705 CIMValue genericValue;
706 String genericString;
707
708 XmlReader::expectStartTag(parser, entry, "PGCONTLANGS");
709 while (XmlReader::getValueElement(parser, CIMTYPE_STRING, genericValue))
710 {
711 genericValue.get(genericString);
|
712 kumpf 1.26 contentLanguages.append(LanguageTag(genericString));
|
713 kumpf 1.1 }
714 XmlReader::expectEndTag(parser, "PGCONTLANGS");
715 }
716
717 //
|
718 kumpf 1.27 // _deserializeAcceptLanguageList
|
719 kumpf 1.1 //
|
720 kumpf 1.27 void CIMMessageDeserializer::_deserializeAcceptLanguageList(
|
721 kumpf 1.1 XmlParser& parser,
|
722 kumpf 1.27 AcceptLanguageList& acceptLanguages)
|
723 kumpf 1.1 {
|
724 kumpf 1.29 acceptLanguages.clear();
|
725 kumpf 1.1
726 XmlEntry entry;
727 CIMValue genericValue;
728 String genericString;
729 Real32 genericReal32;
730
731 XmlReader::expectStartTag(parser, entry, "PGACCLANGS");
732 while (XmlReader::getValueElement(parser, CIMTYPE_STRING, genericValue))
733 {
734 genericValue.get(genericString);
735 XmlReader::getValueElement(parser, CIMTYPE_REAL32, genericValue);
736 genericValue.get(genericReal32);
|
737 kumpf 1.26 acceptLanguages.insert(LanguageTag(genericString), genericReal32);
|
738 kumpf 1.1 }
739 XmlReader::expectEndTag(parser, "PGACCLANGS");
740 }
741
742 //
743 // _deserializeCIMException
744 //
745 void CIMMessageDeserializer::_deserializeCIMException(
746 XmlParser& parser,
747 CIMException& cimException)
748 {
749 XmlEntry entry;
750 CIMValue genericValue;
|
751 kumpf 1.9 Uint32 statusCode;
752 String message;
753 String cimMessage;
754 String file;
755 Uint32 line;
|
756 kumpf 1.27 ContentLanguageList contentLanguages;
|
757 kumpf 1.1
758 XmlReader::expectStartTag(parser, entry, "PGCIMEXC");
759
760 XmlReader::getValueElement(parser, CIMTYPE_UINT32, genericValue);
|
761 kumpf 1.9 genericValue.get(statusCode);
762 XmlReader::getValueElement(parser, CIMTYPE_STRING, genericValue);
763 genericValue.get(message);
|
764 kumpf 1.1 XmlReader::getValueElement(parser, CIMTYPE_STRING, genericValue);
|
765 kumpf 1.9 genericValue.get(cimMessage);
766 XmlReader::getValueElement(parser, CIMTYPE_STRING, genericValue);
767 genericValue.get(file);
768 XmlReader::getValueElement(parser, CIMTYPE_UINT32, genericValue);
769 genericValue.get(line);
|
770 kumpf 1.27 _deserializeContentLanguageList(parser, contentLanguages);
|
771 kumpf 1.1
772 XmlReader::expectEndTag(parser, "PGCIMEXC");
773
|
774 kumpf 1.9 TraceableCIMException e = TraceableCIMException(
775 contentLanguages,
776 CIMStatusCode(statusCode),
777 message,
778 file,
779 line);
780 e.setCIMMessage(cimMessage);
781 cimException = e;
|
782 kumpf 1.1 }
783
784 //
785 // _deserializeCIMPropertyList
786 //
787 void CIMMessageDeserializer::_deserializeCIMPropertyList(
788 XmlParser& parser,
789 CIMPropertyList& propertyList)
790 {
791 const char* name;
792 CIMValue genericValue;
|
793 kumpf 1.12 Boolean emptyTag;
|
794 kumpf 1.1
795 propertyList.clear();
|
796 kumpf 1.12 XmlReader::getIParamValueTag(parser, name, emptyTag);
797 PEGASUS_ASSERT(!emptyTag);
|
798 kumpf 1.1 PEGASUS_ASSERT(System::strcasecmp(name, "PropertyList") == 0);
799 if (XmlReader::getValueArrayElement(parser, CIMTYPE_STRING, genericValue))
800 {
801 Array<String> propertyListArray;
802 genericValue.get(propertyListArray);
803 Array<CIMName> cimNameArray;
804 for (Uint32 i = 0; i < propertyListArray.size(); i++)
805 {
806 cimNameArray.append(propertyListArray[i]);
807 }
808 propertyList.set(cimNameArray);
809 }
810 XmlReader::expectEndTag(parser, "IPARAMVALUE");
811 }
812
813 //
814 // _deserializeCIMObjectPath
815 //
816 Boolean CIMMessageDeserializer::_deserializeCIMObjectPath(
817 XmlParser& parser,
818 CIMObjectPath& cimObjectPath)
819 kumpf 1.1 {
820 XmlEntry entry;
821
822 if (!XmlReader::testStartTag(parser, entry, "PGPATH"))
823 {
824 return false;
825 }
826
827 // VALUE.REFERENCE element is absent when the object is uninitialized.
828 // In this case, XmlReader::getValueReferenceElement returns "false" and
829 // leaves cimObjectPath untouched.
830 if (!XmlReader::getValueReferenceElement(parser, cimObjectPath))
831 {
832 cimObjectPath = CIMObjectPath();
833 }
834
835 XmlReader::expectEndTag(parser, "PGPATH");
836
837 return true;
838 }
839
840 kumpf 1.1 //
841 // _deserializeCIMInstance
842 //
843 Boolean CIMMessageDeserializer::_deserializeCIMInstance(
844 XmlParser& parser,
845 CIMInstance& cimInstance)
846 {
847 XmlEntry entry;
848
849 if (!XmlReader::testStartTag(parser, entry, "PGINST"))
850 {
851 return false;
852 }
853
854 // INSTANCE element is absent when the object is uninitialized.
|
855 jenny.yu 1.20 // In this case, XmlReader::getInstanceElement returns "false" and
|
856 kumpf 1.1 // leaves cimInstance untouched.
|
857 jenny.yu 1.20 if (XmlReader::getInstanceElement(parser, cimInstance))
858 {
859 CIMObjectPath path;
860 _deserializeCIMObjectPath(parser, path);
861 cimInstance.setPath(path);
862 }
863 else
|
864 kumpf 1.1 {
865 cimInstance = CIMInstance();
866 }
867
868 XmlReader::expectEndTag(parser, "PGINST");
869
870 return true;
871 }
872
873 //
874 // _deserializeCIMNamespaceName
875 //
876 void CIMMessageDeserializer::_deserializeCIMNamespaceName(
877 XmlParser& parser,
878 CIMNamespaceName& cimNamespaceName)
879 {
880 CIMValue genericValue;
881 String genericString;
882
883 XmlReader::getValueElement(parser, CIMTYPE_STRING, genericValue);
884 genericValue.get(genericString);
885 kumpf 1.1 if (genericString.size() > 0)
886 {
887 cimNamespaceName = CIMNamespaceName(genericString);
888 }
889 }
890
891 //
892 // _deserializeCIMName
893 //
894 Boolean CIMMessageDeserializer::_deserializeCIMName(
895 XmlParser& parser,
896 CIMName& cimName)
897 {
898 CIMValue genericValue;
899 String genericString;
900
901 if (!XmlReader::getValueElement(parser, CIMTYPE_STRING, genericValue))
902 {
903 return false;
904 }
905
906 kumpf 1.1 genericValue.get(genericString);
907 if (genericString.size() > 0)
908 {
909 cimName = CIMName(genericString);
910 }
911 else
912 {
913 cimName = CIMName();
914 }
915
916 return true;
917 }
918
|
919 jenny.yu 1.20 //
920 // _deserializeCIMObject
921 //
922 Boolean CIMMessageDeserializer::_deserializeCIMObject(
923 XmlParser& parser,
924 CIMObject& object)
925 {
926 XmlEntry entry;
927
928 if (!XmlReader::testStartTag(parser, entry, "PGOBJ"))
929 {
930 return false;
931 }
932
933 CIMInstance cimInstance;
934 CIMClass cimClass;
935 CIMObjectPath path;
936
937 // INSTANCE or CLASS element is absent when the object is uninitialized
938 if (XmlReader::getInstanceElement(parser, cimInstance))
939 {
940 jenny.yu 1.20 _deserializeCIMObjectPath(parser, path);
941 cimInstance.setPath(path);
942 object = CIMObject(cimInstance);
943 }
944 else if (XmlReader::getClassElement(parser, cimClass))
945 {
946 _deserializeCIMObjectPath(parser, path);
947 cimClass.setPath(path);
948 object = CIMObject(cimClass);
949 }
950 else
951 {
952 // Uninitialized object
953 object = CIMObject();
954 }
955
956 XmlReader::expectEndTag(parser, "PGOBJ");
957
958 return true;
959 }
|
960 kumpf 1.1
961 //
962 //
963 // Response Messages
964 //
965 //
966
967 //
968 //
969 // CIMOperationRequestMessages
970 //
971 //
972
973 //
974 // _deserializeCIMGetInstanceRequestMessage
975 //
976 CIMGetInstanceRequestMessage*
977 CIMMessageDeserializer::_deserializeCIMGetInstanceRequestMessage(
978 XmlParser& parser)
979 {
980 CIMValue genericValue;
981 kumpf 1.1 CIMObjectPath instanceName;
982 Boolean localOnly;
983 Boolean includeQualifiers;
984 Boolean includeClassOrigin;
985 CIMPropertyList propertyList;
986
987 _deserializeCIMObjectPath(parser, instanceName);
988
989 XmlReader::getValueElement(parser, CIMTYPE_BOOLEAN, genericValue);
990 genericValue.get(localOnly);
991
992 XmlReader::getValueElement(parser, CIMTYPE_BOOLEAN, genericValue);
993 genericValue.get(includeQualifiers);
994
995 XmlReader::getValueElement(parser, CIMTYPE_BOOLEAN, genericValue);
996 genericValue.get(includeClassOrigin);
997
998 _deserializeCIMPropertyList(parser, propertyList);
999
1000 CIMGetInstanceRequestMessage* message =
1001 new CIMGetInstanceRequestMessage(
1002 kumpf 1.1 String::EMPTY, // messageId
1003 CIMNamespaceName(), // nameSpace
1004 instanceName,
1005 localOnly,
1006 includeQualifiers,
1007 includeClassOrigin,
1008 propertyList,
|
1009 kumpf 1.35 QueueIdStack());
|
1010 kumpf 1.1
1011 return(message);
1012 }
1013
1014 //
1015 // _deserializeCIMDeleteInstanceRequestMessage
1016 //
1017 CIMDeleteInstanceRequestMessage*
1018 CIMMessageDeserializer::_deserializeCIMDeleteInstanceRequestMessage(
1019 XmlParser& parser)
1020 {
1021 CIMObjectPath instanceName;
1022
1023 _deserializeCIMObjectPath(parser, instanceName);
1024
1025 CIMDeleteInstanceRequestMessage* message =
1026 new CIMDeleteInstanceRequestMessage(
1027 String::EMPTY, // messageId
1028 CIMNamespaceName(), // nameSpace
1029 instanceName,
|
1030 kumpf 1.35 QueueIdStack());
|
1031 kumpf 1.1
1032 return(message);
1033 }
1034
1035 //
1036 // _deserializeCIMCreateInstanceRequestMessage
1037 //
1038 CIMCreateInstanceRequestMessage*
1039 CIMMessageDeserializer::_deserializeCIMCreateInstanceRequestMessage(
1040 XmlParser& parser)
1041 {
1042 CIMInstance newInstance;
1043
1044 _deserializeCIMInstance(parser, newInstance);
1045
1046 CIMCreateInstanceRequestMessage* message =
1047 new CIMCreateInstanceRequestMessage(
1048 String::EMPTY, // messageId
1049 CIMNamespaceName(), // nameSpace
1050 newInstance,
|
1051 kumpf 1.35 QueueIdStack());
|
1052 kumpf 1.1
1053 return(message);
1054 }
1055
1056 //
1057 // _deserializeCIMModifyInstanceRequestMessage
1058 //
1059 CIMModifyInstanceRequestMessage*
1060 CIMMessageDeserializer::_deserializeCIMModifyInstanceRequestMessage(
1061 XmlParser& parser)
1062 {
1063 CIMValue genericValue;
1064 CIMInstance modifiedInstance;
1065 Boolean includeQualifiers;
1066 CIMPropertyList propertyList;
1067
1068 _deserializeCIMInstance(parser, modifiedInstance);
1069
1070 XmlReader::getValueElement(parser, CIMTYPE_BOOLEAN, genericValue);
1071 genericValue.get(includeQualifiers);
1072
1073 kumpf 1.1 _deserializeCIMPropertyList(parser, propertyList);
1074
1075 CIMModifyInstanceRequestMessage* message =
1076 new CIMModifyInstanceRequestMessage(
1077 String::EMPTY, // messageId
1078 CIMNamespaceName(), // nameSpace
1079 modifiedInstance,
1080 includeQualifiers,
1081 propertyList,
|
1082 kumpf 1.35 QueueIdStack());
|
1083 kumpf 1.1
1084 return(message);
1085 }
1086
1087 //
1088 // _deserializeCIMEnumerateInstancesRequestMessage
1089 //
1090 CIMEnumerateInstancesRequestMessage*
1091 CIMMessageDeserializer::_deserializeCIMEnumerateInstancesRequestMessage(
1092 XmlParser& parser)
1093 {
1094 CIMValue genericValue;
1095 CIMObjectPath instanceName;
1096 Boolean deepInheritance;
1097 Boolean localOnly;
1098 Boolean includeQualifiers;
1099 Boolean includeClassOrigin;
1100 CIMPropertyList propertyList;
1101
1102 XmlReader::getValueElement(parser, CIMTYPE_BOOLEAN, genericValue);
1103 genericValue.get(deepInheritance);
1104 kumpf 1.1
1105 XmlReader::getValueElement(parser, CIMTYPE_BOOLEAN, genericValue);
1106 genericValue.get(localOnly);
1107
1108 XmlReader::getValueElement(parser, CIMTYPE_BOOLEAN, genericValue);
1109 genericValue.get(includeQualifiers);
1110
1111 XmlReader::getValueElement(parser, CIMTYPE_BOOLEAN, genericValue);
1112 genericValue.get(includeClassOrigin);
1113
1114 _deserializeCIMPropertyList(parser, propertyList);
1115
1116 CIMEnumerateInstancesRequestMessage* message =
1117 new CIMEnumerateInstancesRequestMessage(
1118 String::EMPTY, // messageId
1119 CIMNamespaceName(), // nameSpace
1120 CIMName(), // className
1121 deepInheritance,
1122 localOnly,
1123 includeQualifiers,
1124 includeClassOrigin,
1125 kumpf 1.1 propertyList,
|
1126 kumpf 1.35 QueueIdStack());
|
1127 kumpf 1.1
1128 return(message);
1129 }
1130
1131 //
1132 // _deserializeCIMEnumerateInstanceNamesRequestMessage
1133 //
1134 CIMEnumerateInstanceNamesRequestMessage*
1135 CIMMessageDeserializer::_deserializeCIMEnumerateInstanceNamesRequestMessage(
1136 XmlParser& parser)
1137 {
1138 CIMEnumerateInstanceNamesRequestMessage* message =
1139 new CIMEnumerateInstanceNamesRequestMessage(
1140 String::EMPTY, // messageId
1141 CIMNamespaceName(), // nameSpace
1142 CIMName(), // className
|
1143 kumpf 1.35 QueueIdStack());
|
1144 kumpf 1.1
1145 return(message);
1146 }
1147
1148 //
1149 // _deserializeCIMExecQueryRequestMessage
1150 //
1151 CIMExecQueryRequestMessage*
1152 CIMMessageDeserializer::_deserializeCIMExecQueryRequestMessage(
1153 XmlParser& parser)
1154 {
1155 CIMValue genericValue;
1156 String queryLanguage;
1157 String query;
1158
1159 XmlReader::getValueElement(parser, CIMTYPE_STRING, genericValue);
1160 genericValue.get(queryLanguage);
1161
1162 XmlReader::getValueElement(parser, CIMTYPE_STRING, genericValue);
1163 genericValue.get(query);
1164
1165 kumpf 1.1 CIMExecQueryRequestMessage* message =
1166 new CIMExecQueryRequestMessage(
1167 String::EMPTY, // messageId
1168 CIMNamespaceName(), // nameSpace
1169 queryLanguage,
1170 query,
|
1171 kumpf 1.35 QueueIdStack());
|
1172 kumpf 1.1
1173 return(message);
1174 }
1175
1176 //
1177 // _deserializeCIMAssociatorsRequestMessage
1178 //
1179 CIMAssociatorsRequestMessage*
1180 CIMMessageDeserializer::_deserializeCIMAssociatorsRequestMessage(
1181 XmlParser& parser)
1182 {
1183 CIMValue genericValue;
1184 CIMObjectPath objectName;
1185 CIMName assocClass;
1186 CIMName resultClass;
1187 String role;
1188 String resultRole;
1189 Boolean includeQualifiers;
1190 Boolean includeClassOrigin;
1191 CIMPropertyList propertyList;
1192
1193 kumpf 1.1 _deserializeCIMObjectPath(parser, objectName);
1194 _deserializeCIMName(parser, assocClass);
1195 _deserializeCIMName(parser, resultClass);
1196
1197 XmlReader::getValueElement(parser, CIMTYPE_STRING, genericValue);
1198 genericValue.get(role);
1199
1200 XmlReader::getValueElement(parser, CIMTYPE_STRING, genericValue);
1201 genericValue.get(resultRole);
1202
1203 XmlReader::getValueElement(parser, CIMTYPE_BOOLEAN, genericValue);
1204 genericValue.get(includeQualifiers);
1205
1206 XmlReader::getValueElement(parser, CIMTYPE_BOOLEAN, genericValue);
1207 genericValue.get(includeClassOrigin);
1208
1209 _deserializeCIMPropertyList(parser, propertyList);
1210
1211 CIMAssociatorsRequestMessage* message =
1212 new CIMAssociatorsRequestMessage(
1213 String::EMPTY, // messageId
1214 kumpf 1.1 CIMNamespaceName(), // nameSpace
1215 objectName,
1216 assocClass,
1217 resultClass,
1218 role,
1219 resultRole,
1220 includeQualifiers,
1221 includeClassOrigin,
1222 propertyList,
|
1223 kumpf 1.35 QueueIdStack());
|
1224 kumpf 1.1
1225 return(message);
1226 }
1227
1228 //
1229 // _deserializeCIMAssociatorNamesRequestMessage
1230 //
1231 CIMAssociatorNamesRequestMessage*
1232 CIMMessageDeserializer::_deserializeCIMAssociatorNamesRequestMessage(
1233 XmlParser& parser)
1234 {
1235 CIMValue genericValue;
1236 CIMObjectPath objectName;
1237 CIMName assocClass;
1238 CIMName resultClass;
1239 String role;
1240 String resultRole;
1241
1242 _deserializeCIMObjectPath(parser, objectName);
1243 _deserializeCIMName(parser, assocClass);
1244 _deserializeCIMName(parser, resultClass);
1245 kumpf 1.1
1246 XmlReader::getValueElement(parser, CIMTYPE_STRING, genericValue);
1247 genericValue.get(role);
1248
1249 XmlReader::getValueElement(parser, CIMTYPE_STRING, genericValue);
1250 genericValue.get(resultRole);
1251
1252 CIMAssociatorNamesRequestMessage* message =
1253 new CIMAssociatorNamesRequestMessage(
1254 String::EMPTY, // messageId
1255 CIMNamespaceName(), // nameSpace
1256 objectName,
1257 assocClass,
1258 resultClass,
1259 role,
1260 resultRole,
|
1261 kumpf 1.35 QueueIdStack());
|
1262 kumpf 1.1
1263 return(message);
1264 }
1265
1266 //
1267 // _deserializeCIMReferencesRequestMessage
1268 //
1269 CIMReferencesRequestMessage*
1270 CIMMessageDeserializer::_deserializeCIMReferencesRequestMessage(
1271 XmlParser& parser)
1272 {
1273 CIMValue genericValue;
1274 CIMObjectPath objectName;
1275 CIMName resultClass;
1276 String role;
1277 Boolean includeQualifiers;
1278 Boolean includeClassOrigin;
1279 CIMPropertyList propertyList;
1280
1281 _deserializeCIMObjectPath(parser, objectName);
1282 _deserializeCIMName(parser, resultClass);
1283 kumpf 1.1
1284 XmlReader::getValueElement(parser, CIMTYPE_STRING, genericValue);
1285 genericValue.get(role);
1286
1287 XmlReader::getValueElement(parser, CIMTYPE_BOOLEAN, genericValue);
1288 genericValue.get(includeQualifiers);
1289
1290 XmlReader::getValueElement(parser, CIMTYPE_BOOLEAN, genericValue);
1291 genericValue.get(includeClassOrigin);
1292
1293 _deserializeCIMPropertyList(parser, propertyList);
1294
1295 CIMReferencesRequestMessage* message =
1296 new CIMReferencesRequestMessage(
1297 String::EMPTY, // messageId
1298 CIMNamespaceName(), // nameSpace
1299 objectName,
1300 resultClass,
1301 role,
1302 includeQualifiers,
1303 includeClassOrigin,
1304 kumpf 1.1 propertyList,
|
1305 kumpf 1.35 QueueIdStack());
|
1306 kumpf 1.1
1307 return(message);
1308 }
1309
1310 //
1311 // _deserializeCIMReferenceNamesRequestMessage
1312 //
1313 CIMReferenceNamesRequestMessage*
1314 CIMMessageDeserializer::_deserializeCIMReferenceNamesRequestMessage(
1315 XmlParser& parser)
1316 {
1317 CIMValue genericValue;
1318 CIMObjectPath objectName;
1319 CIMName resultClass;
1320 String role;
1321
1322 _deserializeCIMObjectPath(parser, objectName);
1323 _deserializeCIMName(parser, resultClass);
1324
1325 XmlReader::getValueElement(parser, CIMTYPE_STRING, genericValue);
1326 genericValue.get(role);
1327 kumpf 1.1
1328 CIMReferenceNamesRequestMessage* message =
1329 new CIMReferenceNamesRequestMessage(
1330 String::EMPTY, // messageId
1331 CIMNamespaceName(), // nameSpace
1332 objectName,
1333 resultClass,
1334 role,
|
1335 kumpf 1.35 QueueIdStack());
|
1336 kumpf 1.1
1337 return(message);
1338 }
1339
1340 //
1341 // _deserializeCIMGetPropertyRequestMessage
1342 //
1343 CIMGetPropertyRequestMessage*
1344 CIMMessageDeserializer::_deserializeCIMGetPropertyRequestMessage(
1345 XmlParser& parser)
1346 {
1347 CIMObjectPath instanceName;
1348 CIMName propertyName;
1349
1350 _deserializeCIMObjectPath(parser, instanceName);
1351 _deserializeCIMName(parser, propertyName);
1352
1353 CIMGetPropertyRequestMessage* message =
1354 new CIMGetPropertyRequestMessage(
1355 String::EMPTY, // messageId
1356 CIMNamespaceName(), // nameSpace
1357 kumpf 1.1 instanceName,
1358 propertyName,
|
1359 kumpf 1.35 QueueIdStack());
|
1360 kumpf 1.1
1361 return(message);
1362 }
1363
1364 //
1365 // _deserializeCIMSetPropertyRequestMessage
1366 //
1367 CIMSetPropertyRequestMessage*
1368 CIMMessageDeserializer::_deserializeCIMSetPropertyRequestMessage(
1369 XmlParser& parser)
1370 {
1371 CIMObjectPath instanceName;
1372 CIMParamValue newValue;
1373
1374 _deserializeCIMObjectPath(parser, instanceName);
1375
1376 XmlReader::getParamValueElement(parser, newValue);
1377
1378 CIMSetPropertyRequestMessage* message =
1379 new CIMSetPropertyRequestMessage(
1380 String::EMPTY, // messageId
1381 kumpf 1.1 CIMNamespaceName(), // nameSpace
1382 instanceName,
1383 newValue.getParameterName(),
1384 newValue.getValue(),
|
1385 kumpf 1.35 QueueIdStack());
|
1386 kumpf 1.1
1387 return(message);
1388 }
1389
1390 //
1391 // _deserializeCIMInvokeMethodRequestMessage
1392 //
1393 CIMInvokeMethodRequestMessage*
1394 CIMMessageDeserializer::_deserializeCIMInvokeMethodRequestMessage(
1395 XmlParser& parser)
1396 {
1397 XmlEntry entry;
1398 CIMParamValue genericParamValue;
1399 CIMObjectPath instanceName;
1400 CIMName methodName;
1401 Array<CIMParamValue> inParameters;
1402
1403 _deserializeCIMObjectPath(parser, instanceName);
1404 _deserializeCIMName(parser, methodName);
1405
1406 // Get inParameter array
1407 kumpf 1.1 XmlReader::expectStartTag(parser, entry, "PGPARAMS");
1408 while (XmlReader::getParamValueElement(parser, genericParamValue))
1409 {
1410 inParameters.append(genericParamValue);
1411 }
1412 XmlReader::expectEndTag(parser, "PGPARAMS");
1413
1414 CIMInvokeMethodRequestMessage* message =
1415 new CIMInvokeMethodRequestMessage(
1416 String::EMPTY, // messageId
1417 CIMNamespaceName(), // nameSpace
1418 instanceName,
1419 methodName,
1420 inParameters,
|
1421 kumpf 1.35 QueueIdStack());
|
1422 kumpf 1.1
1423 return(message);
1424 }
1425
1426
1427 //
1428 //
1429 // CIMIndicationRequestMessages
1430 //
1431 //
1432
1433 //
1434 // _deserializeCIMCreateSubscriptionRequestMessage
1435 //
1436 CIMCreateSubscriptionRequestMessage*
1437 CIMMessageDeserializer::_deserializeCIMCreateSubscriptionRequestMessage(
1438 XmlParser& parser)
1439 {
1440 XmlEntry entry;
1441 CIMValue genericValue;
1442 CIMName genericName;
1443 kumpf 1.1 CIMNamespaceName nameSpace;
1444 CIMInstance subscriptionInstance;
1445 Array<CIMName> classNames;
1446 CIMPropertyList propertyList;
1447 Uint16 repeatNotificationPolicy;
|
1448 kumpf 1.3 String query;
|
1449 kumpf 1.1
1450 _deserializeCIMNamespaceName(parser, nameSpace);
1451 _deserializeCIMInstance(parser, subscriptionInstance);
1452
1453 // Get classNames array
1454 XmlReader::expectStartTag(parser, entry, "PGNAMEARRAY");
1455 while (_deserializeCIMName(parser, genericName))
1456 {
1457 classNames.append(genericName);
1458 }
1459 XmlReader::expectEndTag(parser, "PGNAMEARRAY");
1460
1461 _deserializeCIMPropertyList(parser, propertyList);
1462
1463 // Decode repeatNotificationPolicy
1464 XmlReader::getValueElement(parser, CIMTYPE_UINT16, genericValue);
1465 genericValue.get(repeatNotificationPolicy);
1466
1467 XmlReader::getValueElement(parser, CIMTYPE_STRING, genericValue);
|
1468 kumpf 1.3 genericValue.get(query);
1469
|
1470 kumpf 1.1 CIMCreateSubscriptionRequestMessage* message =
1471 new CIMCreateSubscriptionRequestMessage(
1472 String::EMPTY, // messageId
1473 nameSpace,
1474 subscriptionInstance,
1475 classNames,
1476 propertyList,
1477 repeatNotificationPolicy,
|
1478 kumpf 1.3 query,
|
1479 kumpf 1.35 QueueIdStack());
|
1480 kumpf 1.1
1481 return(message);
1482 }
1483
1484 //
1485 // _deserializeCIMModifySubscriptionRequestMessage
1486 //
1487 CIMModifySubscriptionRequestMessage*
1488 CIMMessageDeserializer::_deserializeCIMModifySubscriptionRequestMessage(
1489 XmlParser& parser)
1490 {
1491 XmlEntry entry;
1492 CIMValue genericValue;
1493 CIMName genericName;
1494 CIMNamespaceName nameSpace;
1495 CIMInstance subscriptionInstance;
1496 Array<CIMName> classNames;
1497 CIMPropertyList propertyList;
1498 Uint16 repeatNotificationPolicy;
|
1499 kumpf 1.3 String query;
|
1500 kumpf 1.1
1501 _deserializeCIMNamespaceName(parser, nameSpace);
1502 _deserializeCIMInstance(parser, subscriptionInstance);
1503
1504 // Get classNames array
1505 XmlReader::expectStartTag(parser, entry, "PGNAMEARRAY");
1506 while (_deserializeCIMName(parser, genericName))
1507 {
1508 classNames.append(genericName);
1509 }
1510 XmlReader::expectEndTag(parser, "PGNAMEARRAY");
1511
1512 _deserializeCIMPropertyList(parser, propertyList);
1513
1514 // Decode repeatNotificationPolicy
1515 XmlReader::getValueElement(parser, CIMTYPE_UINT16, genericValue);
1516 genericValue.get(repeatNotificationPolicy);
1517
1518 XmlReader::getValueElement(parser, CIMTYPE_STRING, genericValue);
|
1519 kumpf 1.3 genericValue.get(query);
1520
|
1521 kumpf 1.1 CIMModifySubscriptionRequestMessage* message =
1522 new CIMModifySubscriptionRequestMessage(
1523 String::EMPTY, // messageId
1524 nameSpace,
1525 subscriptionInstance,
1526 classNames,
1527 propertyList,
1528 repeatNotificationPolicy,
|
1529 kumpf 1.3 query,
|
1530 kumpf 1.35 QueueIdStack());
|
1531 kumpf 1.1
1532 return(message);
1533 }
1534
1535 //
1536 // _deserializeCIMDeleteSubscriptionRequestMessage
1537 //
1538 CIMDeleteSubscriptionRequestMessage*
1539 CIMMessageDeserializer::_deserializeCIMDeleteSubscriptionRequestMessage(
1540 XmlParser& parser)
1541 {
1542 XmlEntry entry;
1543 CIMName genericName;
1544 CIMNamespaceName nameSpace;
1545 CIMInstance subscriptionInstance;
1546 Array<CIMName> classNames;
1547
1548 _deserializeCIMNamespaceName(parser, nameSpace);
1549 _deserializeCIMInstance(parser, subscriptionInstance);
1550
1551 // Get classNames array
1552 kumpf 1.1 XmlReader::expectStartTag(parser, entry, "PGNAMEARRAY");
1553 while (_deserializeCIMName(parser, genericName))
1554 {
1555 classNames.append(genericName);
1556 }
1557 XmlReader::expectEndTag(parser, "PGNAMEARRAY");
1558
1559 CIMDeleteSubscriptionRequestMessage* message =
1560 new CIMDeleteSubscriptionRequestMessage(
1561 String::EMPTY, // messageId
1562 nameSpace,
1563 subscriptionInstance,
1564 classNames,
|
1565 kumpf 1.35 QueueIdStack());
|
1566 kumpf 1.1
1567 return(message);
1568 }
1569
1570
1571 //
1572 //
1573 // Other CIMRequestMessages
1574 //
1575 //
1576
1577 //
1578 // _deserializeCIMExportIndicationRequestMessage
1579 //
1580 CIMExportIndicationRequestMessage*
1581 CIMMessageDeserializer::_deserializeCIMExportIndicationRequestMessage(
1582 XmlParser& parser)
1583 {
1584 CIMValue genericValue;
1585 String authType;
1586 String userName;
1587 kumpf 1.1 String destinationPath;
1588 CIMInstance indicationInstance;
1589
1590 _deserializeUserInfo(parser, authType, userName);
1591
1592 XmlReader::getValueElement(parser, CIMTYPE_STRING, genericValue);
1593 genericValue.get(destinationPath);
1594
1595 _deserializeCIMInstance(parser, indicationInstance);
1596
1597 CIMExportIndicationRequestMessage* message =
1598 new CIMExportIndicationRequestMessage(
1599 String::EMPTY, // messageId
1600 destinationPath,
1601 indicationInstance,
1602 QueueIdStack(), // queueIds
1603 authType,
1604 userName);
1605
1606 return(message);
1607 }
1608 kumpf 1.1
1609 //
1610 // _deserializeCIMProcessIndicationRequestMessage
1611 //
1612 CIMProcessIndicationRequestMessage*
1613 CIMMessageDeserializer::_deserializeCIMProcessIndicationRequestMessage(
1614 XmlParser& parser)
1615 {
1616 XmlEntry entry;
1617 CIMObjectPath genericObjectPath;
1618 CIMNamespaceName nameSpace;
1619 CIMInstance indicationInstance;
1620 Array<CIMObjectPath> subscriptionInstanceNames;
1621 CIMInstance provider;
1622
1623 _deserializeCIMNamespaceName(parser, nameSpace);
1624 _deserializeCIMInstance(parser, indicationInstance);
1625
1626 // Get subscriptionInstanceNames array
1627 XmlReader::expectStartTag(parser, entry, "PGPATHARRAY");
1628 while (_deserializeCIMObjectPath(parser, genericObjectPath))
1629 kumpf 1.1 {
1630 subscriptionInstanceNames.append(genericObjectPath);
1631 }
1632 XmlReader::expectEndTag(parser, "PGPATHARRAY");
1633
1634 _deserializeCIMInstance(parser, provider);
1635
1636 CIMProcessIndicationRequestMessage* message =
1637 new CIMProcessIndicationRequestMessage(
1638 String::EMPTY, // messageId
1639 nameSpace,
1640 indicationInstance,
1641 subscriptionInstanceNames,
1642 provider,
1643 QueueIdStack()); // queueIds
1644
1645 return(message);
1646 }
1647
1648 //
1649 // _deserializeCIMDisableModuleRequestMessage
1650 kumpf 1.1 //
1651 CIMDisableModuleRequestMessage*
1652 CIMMessageDeserializer::_deserializeCIMDisableModuleRequestMessage(
1653 XmlParser& parser)
1654 {
1655 XmlEntry entry;
1656 CIMValue genericValue;
1657 CIMInstance genericInstance;
1658 Boolean genericBoolean;
1659 String authType;
1660 String userName;
1661 CIMInstance providerModule;
1662 Array<CIMInstance> providers;
1663 Boolean disableProviderOnly;
1664 Array<Boolean> indicationProviders;
1665
1666 _deserializeUserInfo(parser, authType, userName);
1667
1668 _deserializeCIMInstance(parser, providerModule);
1669
1670 // Get providers array
1671 kumpf 1.1 XmlReader::expectStartTag(parser, entry, "PGINSTARRAY");
1672 while (_deserializeCIMInstance(parser, genericInstance))
1673 {
1674 providers.append(genericInstance);
1675 }
1676 XmlReader::expectEndTag(parser, "PGINSTARRAY");
1677
1678 XmlReader::getValueElement(parser, CIMTYPE_BOOLEAN, genericValue);
1679 genericValue.get(disableProviderOnly);
1680
1681 // Get indicationProviders array
1682 XmlReader::expectStartTag(parser, entry, "PGBOOLARRAY");
1683 while (XmlReader::getValueElement(parser, CIMTYPE_BOOLEAN, genericValue))
1684 {
1685 genericValue.get(genericBoolean);
1686 indicationProviders.append(genericBoolean);
1687 }
1688 XmlReader::expectEndTag(parser, "PGBOOLARRAY");
1689
1690 CIMDisableModuleRequestMessage* message =
1691 new CIMDisableModuleRequestMessage(
1692 kumpf 1.1 String::EMPTY, // messageId
1693 providerModule,
1694 providers,
1695 disableProviderOnly,
1696 indicationProviders,
1697 QueueIdStack(), // queueIds
1698 authType,
1699 userName);
1700
1701 return(message);
1702 }
1703
1704 //
1705 // _deserializeCIMEnableModuleRequestMessage
1706 //
1707 CIMEnableModuleRequestMessage*
1708 CIMMessageDeserializer::_deserializeCIMEnableModuleRequestMessage(
1709 XmlParser& parser)
1710 {
1711 String authType;
1712 String userName;
1713 kumpf 1.1 CIMInstance providerModule;
1714
1715 _deserializeUserInfo(parser, authType, userName);
1716
1717 _deserializeCIMInstance(parser, providerModule);
1718
1719 CIMEnableModuleRequestMessage* message =
1720 new CIMEnableModuleRequestMessage(
1721 String::EMPTY, // messageId
1722 providerModule,
1723 QueueIdStack(), // queueIds
1724 authType,
1725 userName);
1726
1727 return(message);
1728 }
1729
1730 //
1731 // _deserializeCIMStopAllProvidersRequestMessage
1732 //
1733 CIMStopAllProvidersRequestMessage*
1734 kumpf 1.1 CIMMessageDeserializer::_deserializeCIMStopAllProvidersRequestMessage(
1735 XmlParser& parser)
1736 {
1737 CIMStopAllProvidersRequestMessage* message =
1738 new CIMStopAllProvidersRequestMessage(
1739 String::EMPTY, // messageId
1740 QueueIdStack()); // queueIds
1741
1742 return(message);
1743 }
1744
|
1745 kumpf 1.2 //
1746 // _deserializeCIMInitializeProviderRequestMessage
1747 //
1748 CIMInitializeProviderRequestMessage*
1749 CIMMessageDeserializer::_deserializeCIMInitializeProviderRequestMessage(
1750 XmlParser& parser)
1751 {
1752 CIMInitializeProviderRequestMessage* message =
1753 new CIMInitializeProviderRequestMessage(
1754 String::EMPTY, // messageId
1755 QueueIdStack()); // queueIds
1756
1757 return(message);
1758 }
1759
|
1760 kumpf 1.7 //
1761 // _deserializeCIMInitializeProviderAgentRequestMessage
1762 //
1763 CIMInitializeProviderAgentRequestMessage*
1764 CIMMessageDeserializer::_deserializeCIMInitializeProviderAgentRequestMessage(
1765 XmlParser& parser)
1766 {
1767 XmlEntry entry;
1768 CIMValue genericValue;
1769 String pegasusHome;
1770 Array<Pair<String, String> > configProperties;
1771 Boolean bindVerbose;
|
1772 carolann.graves 1.22 Boolean subscriptionInitComplete;
|
1773 kumpf 1.7
1774 XmlReader::getValueElement(parser, CIMTYPE_STRING, genericValue);
1775 genericValue.get(pegasusHome);
1776
1777 // Get configProperties array
1778 XmlReader::expectStartTag(parser, entry, "PGCONFARRAY");
1779 while (XmlReader::getValueElement(parser, CIMTYPE_STRING, genericValue))
1780 {
1781 String propertyName;
1782 String propertyValue;
1783
1784 genericValue.get(propertyName);
1785
1786 XmlReader::getValueElement(parser, CIMTYPE_STRING, genericValue);
1787 genericValue.get(propertyValue);
1788
1789 configProperties.append(
1790 Pair<String, String>(propertyName, propertyValue));
1791 }
1792 XmlReader::expectEndTag(parser, "PGCONFARRAY");
1793
1794 kumpf 1.7 XmlReader::getValueElement(parser, CIMTYPE_BOOLEAN, genericValue);
1795 genericValue.get(bindVerbose);
1796
|
1797 carolann.graves 1.22 XmlReader::getValueElement(parser, CIMTYPE_BOOLEAN, genericValue);
1798 genericValue.get(subscriptionInitComplete);
1799
|
1800 kumpf 1.7 CIMInitializeProviderAgentRequestMessage* message =
1801 new CIMInitializeProviderAgentRequestMessage(
1802 String::EMPTY, // messageId
1803 pegasusHome,
1804 configProperties,
1805 bindVerbose,
|
1806 carolann.graves 1.22 subscriptionInitComplete,
|
1807 kumpf 1.7 QueueIdStack()); // queueIds
1808
1809 return(message);
1810 }
1811
|
1812 kumpf 1.8 //
1813 // _deserializeCIMNotifyConfigChangeRequestMessage
1814 //
1815 CIMNotifyConfigChangeRequestMessage*
1816 CIMMessageDeserializer::_deserializeCIMNotifyConfigChangeRequestMessage(
1817 XmlParser& parser)
1818 {
1819 CIMValue genericValue;
1820 String propertyName;
1821 String newPropertyValue;
1822 Boolean currentValueModified;
1823
1824 XmlReader::getValueElement(parser, CIMTYPE_STRING, genericValue);
1825 genericValue.get(propertyName);
1826
1827 XmlReader::getValueElement(parser, CIMTYPE_STRING, genericValue);
1828 genericValue.get(newPropertyValue);
1829
1830 XmlReader::getValueElement(parser, CIMTYPE_BOOLEAN, genericValue);
1831 genericValue.get(currentValueModified);
1832
1833 kumpf 1.8 CIMNotifyConfigChangeRequestMessage* message =
1834 new CIMNotifyConfigChangeRequestMessage(
1835 String::EMPTY, // messageId
1836 propertyName,
1837 newPropertyValue,
1838 currentValueModified,
1839 QueueIdStack()); // queueIds
1840
1841 return(message);
1842 }
|
1843 kumpf 1.1
1844 //
|
1845 carolann.graves 1.22 // _deserializeCIMSubscriptionInitCompleteRequestMessage
1846 //
1847 CIMSubscriptionInitCompleteRequestMessage*
1848 CIMMessageDeserializer::_deserializeCIMSubscriptionInitCompleteRequestMessage(
1849 XmlParser& parser)
1850 {
1851 CIMSubscriptionInitCompleteRequestMessage* message =
1852 new CIMSubscriptionInitCompleteRequestMessage(
1853 String::EMPTY, // messageId
1854 QueueIdStack()); // queueIds
1855
1856 return(message);
1857 }
1858
1859 //
|
1860 kumpf 1.1 //
1861 // Response Messages
1862 //
1863 //
1864
1865 //
1866 //
1867 // CIM Operation Response Messages
1868 //
1869 //
1870
1871 //
1872 // _deserializeCIMGetInstanceResponseMessage
1873 //
1874 CIMGetInstanceResponseMessage*
1875 CIMMessageDeserializer::_deserializeCIMGetInstanceResponseMessage(
1876 XmlParser& parser)
1877 {
1878 CIMInstance cimInstance;
1879
1880 _deserializeCIMInstance(parser, cimInstance);
1881 kumpf 1.1
1882 CIMGetInstanceResponseMessage* message =
1883 new CIMGetInstanceResponseMessage(
1884 String::EMPTY, // messageId
1885 CIMException(), // cimException
1886 QueueIdStack(), // queueIds
1887 cimInstance);
1888
1889 return(message);
1890 }
1891
1892 //
1893 // _deserializeCIMDeleteInstanceResponseMessage
1894 //
1895 CIMDeleteInstanceResponseMessage*
1896 CIMMessageDeserializer::_deserializeCIMDeleteInstanceResponseMessage(
1897 XmlParser& parser)
1898 {
1899 CIMDeleteInstanceResponseMessage* message =
1900 new CIMDeleteInstanceResponseMessage(
1901 String::EMPTY, // messageId
1902 kumpf 1.1 CIMException(), // cimException
1903 QueueIdStack()); // queueIds
1904
1905 return(message);
1906 }
1907
1908 //
1909 // _deserializeCIMCreateInstanceResponseMessage
1910 //
1911 CIMCreateInstanceResponseMessage*
1912 CIMMessageDeserializer::_deserializeCIMCreateInstanceResponseMessage(
1913 XmlParser& parser)
1914 {
1915 CIMObjectPath instanceName;
1916
1917 _deserializeCIMObjectPath(parser, instanceName);
1918
1919 CIMCreateInstanceResponseMessage* message =
1920 new CIMCreateInstanceResponseMessage(
1921 String::EMPTY, // messageId
1922 CIMException(), // cimException
1923 kumpf 1.1 QueueIdStack(), // queueIds
1924 instanceName);
1925
1926 return(message);
1927 }
1928
1929 //
1930 // _deserializeCIMModifyInstanceResponseMessage
1931 //
1932 CIMModifyInstanceResponseMessage*
1933 CIMMessageDeserializer::_deserializeCIMModifyInstanceResponseMessage(
1934 XmlParser& parser)
1935 {
1936 CIMModifyInstanceResponseMessage* message =
1937 new CIMModifyInstanceResponseMessage(
1938 String::EMPTY, // messageId
1939 CIMException(), // cimException
1940 QueueIdStack()); // queueIds
1941
1942 return(message);
1943 }
1944 kumpf 1.1
1945 //
1946 // _deserializeCIMEnumerateInstancesResponseMessage
1947 //
1948 CIMEnumerateInstancesResponseMessage*
1949 CIMMessageDeserializer::_deserializeCIMEnumerateInstancesResponseMessage(
1950 XmlParser& parser)
1951 {
1952 XmlEntry entry;
1953 CIMInstance genericInstance;
1954 Array<CIMInstance> cimNamedInstances;
1955
1956 // Get cimNamedInstances array
1957 XmlReader::expectStartTag(parser, entry, "PGINSTARRAY");
1958 while (_deserializeCIMInstance(parser, genericInstance))
1959 {
1960 cimNamedInstances.append(genericInstance);
1961 }
1962 XmlReader::expectEndTag(parser, "PGINSTARRAY");
1963
1964 CIMEnumerateInstancesResponseMessage* message =
1965 kumpf 1.1 new CIMEnumerateInstancesResponseMessage(
1966 String::EMPTY, // messageId
1967 CIMException(), // cimException
1968 QueueIdStack(), // queueIds
1969 cimNamedInstances);
1970
1971 return(message);
1972 }
1973
1974 //
1975 // _deserializeCIMEnumerateInstanceNamesResponseMessage
1976 //
1977 CIMEnumerateInstanceNamesResponseMessage*
1978 CIMMessageDeserializer::_deserializeCIMEnumerateInstanceNamesResponseMessage(
1979 XmlParser& parser)
1980 {
1981 XmlEntry entry;
1982 CIMObjectPath genericObjectPath;
1983 Array<CIMObjectPath> instanceNames;
1984
1985 // Get instanceNames array
1986 kumpf 1.1 XmlReader::expectStartTag(parser, entry, "PGPATHARRAY");
1987 while (_deserializeCIMObjectPath(parser, genericObjectPath))
1988 {
1989 instanceNames.append(genericObjectPath);
1990 }
1991 XmlReader::expectEndTag(parser, "PGPATHARRAY");
1992
1993 CIMEnumerateInstanceNamesResponseMessage* message =
1994 new CIMEnumerateInstanceNamesResponseMessage(
1995 String::EMPTY, // messageId
1996 CIMException(), // cimException
1997 QueueIdStack(), // queueIds
1998 instanceNames);
1999
2000 return(message);
2001 }
2002
2003 //
2004 // _deserializeCIMExecQueryResponseMessage
2005 //
2006 CIMExecQueryResponseMessage*
2007 kumpf 1.1 CIMMessageDeserializer::_deserializeCIMExecQueryResponseMessage(
2008 XmlParser& parser)
2009 {
2010 XmlEntry entry;
2011 CIMObject genericObject;
2012 Array<CIMObject> cimObjects;
2013
2014 // Get cimObjects array
2015 XmlReader::expectStartTag(parser, entry, "PGOBJARRAY");
|
2016 jenny.yu 1.20 while (_deserializeCIMObject(parser, genericObject))
|
2017 kumpf 1.1 {
2018 cimObjects.append(genericObject);
2019 }
2020 XmlReader::expectEndTag(parser, "PGOBJARRAY");
2021
2022 CIMExecQueryResponseMessage* message =
2023 new CIMExecQueryResponseMessage(
2024 String::EMPTY, // messageId
2025 CIMException(), // cimException
2026 QueueIdStack(), // queueIds
2027 cimObjects);
2028
2029 return(message);
2030 }
2031
2032 //
2033 // _deserializeCIMAssociatorsResponseMessage
2034 //
2035 CIMAssociatorsResponseMessage*
2036 CIMMessageDeserializer::_deserializeCIMAssociatorsResponseMessage(
2037 XmlParser& parser)
2038 kumpf 1.1 {
2039 XmlEntry entry;
2040 CIMObject genericObject;
2041 Array<CIMObject> cimObjects;
2042
2043 // Get cimObjects array
2044 XmlReader::expectStartTag(parser, entry, "PGOBJARRAY");
|
2045 jenny.yu 1.20 while (_deserializeCIMObject(parser, genericObject))
|
2046 kumpf 1.1 {
2047 cimObjects.append(genericObject);
2048 }
2049 XmlReader::expectEndTag(parser, "PGOBJARRAY");
2050
2051 CIMAssociatorsResponseMessage* message =
2052 new CIMAssociatorsResponseMessage(
2053 String::EMPTY, // messageId
2054 CIMException(), // cimException
2055 QueueIdStack(), // queueIds
2056 cimObjects);
2057
2058 return(message);
2059 }
2060
2061 //
2062 // _deserializeCIMAssociatorNamesResponseMessage
2063 //
2064 CIMAssociatorNamesResponseMessage*
2065 CIMMessageDeserializer::_deserializeCIMAssociatorNamesResponseMessage(
2066 XmlParser& parser)
2067 kumpf 1.1 {
2068 XmlEntry entry;
2069 CIMObjectPath genericObjectPath;
2070 Array<CIMObjectPath> objectNames;
2071
2072 // Get objectNames array
2073 XmlReader::expectStartTag(parser, entry, "PGPATHARRAY");
2074 while (_deserializeCIMObjectPath(parser, genericObjectPath))
2075 {
2076 objectNames.append(genericObjectPath);
2077 }
2078 XmlReader::expectEndTag(parser, "PGPATHARRAY");
2079
2080 CIMAssociatorNamesResponseMessage* message =
2081 new CIMAssociatorNamesResponseMessage(
2082 String::EMPTY, // messageId
2083 CIMException(), // cimException
2084 QueueIdStack(), // queueIds
2085 objectNames);
2086
2087 return(message);
2088 kumpf 1.1 }
2089
2090 //
2091 // _deserializeCIMReferencesResponseMessage
2092 //
2093 CIMReferencesResponseMessage*
2094 CIMMessageDeserializer::_deserializeCIMReferencesResponseMessage(
2095 XmlParser& parser)
2096 {
2097 XmlEntry entry;
2098 CIMObject genericObject;
2099 Array<CIMObject> cimObjects;
2100
2101 // Get cimObjects array
2102 XmlReader::expectStartTag(parser, entry, "PGOBJARRAY");
|
2103 jenny.yu 1.20 while (_deserializeCIMObject(parser, genericObject))
|
2104 kumpf 1.1 {
2105 cimObjects.append(genericObject);
2106 }
2107 XmlReader::expectEndTag(parser, "PGOBJARRAY");
2108
2109 CIMReferencesResponseMessage* message =
2110 new CIMReferencesResponseMessage(
2111 String::EMPTY, // messageId
2112 CIMException(), // cimException
2113 QueueIdStack(), // queueIds
2114 cimObjects);
2115
2116 return(message);
2117 }
2118
2119 //
2120 // _deserializeCIMReferenceNamesResponseMessage
2121 //
2122 CIMReferenceNamesResponseMessage*
2123 CIMMessageDeserializer::_deserializeCIMReferenceNamesResponseMessage(
2124 XmlParser& parser)
2125 kumpf 1.1 {
2126 XmlEntry entry;
2127 CIMObjectPath genericObjectPath;
2128 Array<CIMObjectPath> objectNames;
2129
2130 // Get objectNames array
2131 XmlReader::expectStartTag(parser, entry, "PGPATHARRAY");
2132 while (_deserializeCIMObjectPath(parser, genericObjectPath))
2133 {
2134 objectNames.append(genericObjectPath);
2135 }
2136 XmlReader::expectEndTag(parser, "PGPATHARRAY");
2137
2138 CIMReferenceNamesResponseMessage* message =
2139 new CIMReferenceNamesResponseMessage(
2140 String::EMPTY, // messageId
2141 CIMException(), // cimException
2142 QueueIdStack(), // queueIds
2143 objectNames);
2144
2145 return(message);
2146 kumpf 1.1 }
2147
2148 //
2149 // _deserializeCIMGetPropertyResponseMessage
2150 //
2151 CIMGetPropertyResponseMessage*
2152 CIMMessageDeserializer::_deserializeCIMGetPropertyResponseMessage(
2153 XmlParser& parser)
2154 {
2155 CIMParamValue value;
2156
2157 XmlReader::getParamValueElement(parser, value);
2158
2159 CIMGetPropertyResponseMessage* message =
2160 new CIMGetPropertyResponseMessage(
2161 String::EMPTY, // messageId
2162 CIMException(), // cimException
2163 QueueIdStack(), // queueIds
2164 value.getValue());
2165
2166 return(message);
2167 kumpf 1.1 }
2168
2169 //
2170 // _deserializeCIMSetPropertyResponseMessage
2171 //
2172 CIMSetPropertyResponseMessage*
2173 CIMMessageDeserializer::_deserializeCIMSetPropertyResponseMessage(
2174 XmlParser& parser)
2175 {
2176 CIMSetPropertyResponseMessage* message =
2177 new CIMSetPropertyResponseMessage(
2178 String::EMPTY, // messageId
2179 CIMException(), // cimException
2180 QueueIdStack()); // queueIds
2181
2182 return(message);
2183 }
2184
2185 //
2186 // _deserializeCIMInvokeMethodResponseMessage
2187 //
2188 kumpf 1.1 CIMInvokeMethodResponseMessage*
2189 CIMMessageDeserializer::_deserializeCIMInvokeMethodResponseMessage(
2190 XmlParser& parser)
2191 {
2192 XmlEntry entry;
2193 CIMParamValue genericParamValue;
2194 CIMParamValue retValue;
2195 CIMName methodName;
2196 Array<CIMParamValue> outParameters;
2197
2198 XmlReader::getParamValueElement(parser, retValue);
2199
2200 // Get outParameter array
2201 XmlReader::expectStartTag(parser, entry, "PGPARAMS");
2202 while (XmlReader::getParamValueElement(parser, genericParamValue))
2203 {
2204 outParameters.append(genericParamValue);
2205 }
2206 XmlReader::expectEndTag(parser, "PGPARAMS");
2207
2208 _deserializeCIMName(parser, methodName);
2209 kumpf 1.1
2210 CIMInvokeMethodResponseMessage* message =
2211 new CIMInvokeMethodResponseMessage(
2212 String::EMPTY, // messageId
2213 CIMException(), // cimException
2214 QueueIdStack(), // queueIds
2215 retValue.getValue(),
2216 outParameters,
2217 methodName);
2218
2219 return(message);
2220 }
2221
2222
2223 //
2224 //
2225 // CIM Indication Response Messages
2226 //
2227 //
2228
2229 //
2230 kumpf 1.1 // _deserializeCIMCreateSubscriptionResponseMessage
2231 //
2232 CIMCreateSubscriptionResponseMessage*
2233 CIMMessageDeserializer::_deserializeCIMCreateSubscriptionResponseMessage(
2234 XmlParser& parser)
2235 {
2236 CIMCreateSubscriptionResponseMessage* message =
2237 new CIMCreateSubscriptionResponseMessage(
2238 String::EMPTY, // messageId
2239 CIMException(), // cimException
2240 QueueIdStack()); // queueIds
2241
2242 return(message);
2243 }
2244
2245 //
2246 // _deserializeCIMModifySubscriptionResponseMessage
2247 //
2248 CIMModifySubscriptionResponseMessage*
2249 CIMMessageDeserializer::_deserializeCIMModifySubscriptionResponseMessage(
2250 XmlParser& parser)
2251 kumpf 1.1 {
2252 CIMModifySubscriptionResponseMessage* message =
2253 new CIMModifySubscriptionResponseMessage(
2254 String::EMPTY, // messageId
2255 CIMException(), // cimException
2256 QueueIdStack()); // queueIds
2257
2258 return(message);
2259 }
2260
2261 //
2262 // _deserializeCIMDeleteSubscriptionResponseMessage
2263 //
2264 CIMDeleteSubscriptionResponseMessage*
2265 CIMMessageDeserializer::_deserializeCIMDeleteSubscriptionResponseMessage(
2266 XmlParser& parser)
2267 {
2268 CIMDeleteSubscriptionResponseMessage* message =
2269 new CIMDeleteSubscriptionResponseMessage(
2270 String::EMPTY, // messageId
2271 CIMException(), // cimException
2272 kumpf 1.1 QueueIdStack()); // queueIds
2273
2274 return(message);
2275 }
2276
2277
2278 //
2279 //
2280 // Other CIMResponseMessages
2281 //
2282 //
2283
2284 //
2285 // _deserializeCIMExportIndicationResponseMessage
2286 //
2287 CIMExportIndicationResponseMessage*
2288 CIMMessageDeserializer::_deserializeCIMExportIndicationResponseMessage(
2289 XmlParser& parser)
2290 {
2291 CIMExportIndicationResponseMessage* message =
2292 new CIMExportIndicationResponseMessage(
2293 kumpf 1.1 String::EMPTY, // messageId
2294 CIMException(), // cimException
2295 QueueIdStack()); // queueIds
2296
2297 return(message);
2298 }
2299
2300 //
2301 // _deserializeCIMProcessIndicationResponseMessage
2302 //
2303 CIMProcessIndicationResponseMessage*
2304 CIMMessageDeserializer::_deserializeCIMProcessIndicationResponseMessage(
2305 XmlParser& parser)
2306 {
2307 CIMProcessIndicationResponseMessage* message =
2308 new CIMProcessIndicationResponseMessage(
2309 String::EMPTY, // messageId
2310 CIMException(), // cimException
2311 QueueIdStack()); // queueIds
2312
2313 return(message);
2314 kumpf 1.1 }
2315
2316 //
2317 // _deserializeCIMDisableModuleResponseMessage
2318 //
2319 CIMDisableModuleResponseMessage*
2320 CIMMessageDeserializer::_deserializeCIMDisableModuleResponseMessage(
2321 XmlParser& parser)
2322 {
2323 XmlEntry entry;
2324 CIMValue genericValue;
2325 Uint16 genericUint16;
2326 Array<Uint16> operationalStatus;
2327
2328 // Get operationalStatus array
2329 XmlReader::expectStartTag(parser, entry, "PGUINT16ARRAY");
2330 while (XmlReader::getValueElement(parser, CIMTYPE_UINT16, genericValue))
2331 {
2332 genericValue.get(genericUint16);
2333 operationalStatus.append(genericUint16);
2334 }
2335 kumpf 1.1 XmlReader::expectEndTag(parser, "PGUINT16ARRAY");
2336
2337 CIMDisableModuleResponseMessage* message =
2338 new CIMDisableModuleResponseMessage(
2339 String::EMPTY, // messageId
2340 CIMException(), // cimException
2341 QueueIdStack(), // queueIds
2342 operationalStatus);
2343
2344 return(message);
2345 }
2346
2347 //
2348 // _deserializeCIMEnableModuleResponseMessage
2349 //
2350 CIMEnableModuleResponseMessage*
2351 CIMMessageDeserializer::_deserializeCIMEnableModuleResponseMessage(
2352 XmlParser& parser)
2353 {
2354 XmlEntry entry;
2355 CIMValue genericValue;
2356 kumpf 1.1 Uint16 genericUint16;
2357 Array<Uint16> operationalStatus;
2358
2359 // Get operationalStatus array
2360 XmlReader::expectStartTag(parser, entry, "PGUINT16ARRAY");
2361 while (XmlReader::getValueElement(parser, CIMTYPE_UINT16, genericValue))
2362 {
2363 genericValue.get(genericUint16);
2364 operationalStatus.append(genericUint16);
2365 }
2366 XmlReader::expectEndTag(parser, "PGUINT16ARRAY");
2367
2368 CIMEnableModuleResponseMessage* message =
2369 new CIMEnableModuleResponseMessage(
2370 String::EMPTY, // messageId
2371 CIMException(), // cimException
2372 QueueIdStack(), // queueIds
2373 operationalStatus);
2374
2375 return(message);
2376 }
2377 kumpf 1.1
2378 //
2379 // _deserializeCIMStopAllProvidersResponseMessage
2380 //
2381 CIMStopAllProvidersResponseMessage*
2382 CIMMessageDeserializer::_deserializeCIMStopAllProvidersResponseMessage(
2383 XmlParser& parser)
2384 {
2385 CIMStopAllProvidersResponseMessage* message =
2386 new CIMStopAllProvidersResponseMessage(
2387 String::EMPTY, // messageId
2388 CIMException(), // cimException
2389 QueueIdStack()); // queueIds
2390
2391 return(message);
2392 }
2393
|
2394 kumpf 1.2 //
2395 // _deserializeCIMInitializeProviderResponseMessage
2396 //
2397 CIMInitializeProviderResponseMessage*
2398 CIMMessageDeserializer::_deserializeCIMInitializeProviderResponseMessage(
2399 XmlParser& parser)
2400 {
2401 CIMInitializeProviderResponseMessage* message =
2402 new CIMInitializeProviderResponseMessage(
2403 String::EMPTY, // messageId
2404 CIMException(), // cimException
2405 QueueIdStack()); // queueIds
2406
2407 return(message);
2408 }
2409
|
2410 kumpf 1.7 //
2411 // _deserializeCIMInitializeProviderAgentResponseMessage
2412 //
2413 CIMInitializeProviderAgentResponseMessage*
2414 CIMMessageDeserializer::_deserializeCIMInitializeProviderAgentResponseMessage(
2415 XmlParser& parser)
2416 {
2417 CIMInitializeProviderAgentResponseMessage* message =
2418 new CIMInitializeProviderAgentResponseMessage(
2419 String::EMPTY, // messageId
2420 CIMException(), // cimException
2421 QueueIdStack()); // queueIds
2422
2423 return(message);
2424 }
2425
|
2426 kumpf 1.8 //
2427 // _deserializeCIMNotifyConfigChangeResponseMessage
2428 //
2429 CIMNotifyConfigChangeResponseMessage*
2430 CIMMessageDeserializer::_deserializeCIMNotifyConfigChangeResponseMessage(
2431 XmlParser& parser)
2432 {
2433 CIMNotifyConfigChangeResponseMessage* message =
2434 new CIMNotifyConfigChangeResponseMessage(
2435 String::EMPTY, // messageId
2436 CIMException(), // cimException
2437 QueueIdStack()); // queueIds
2438
2439 return(message);
2440 }
2441
|
2442 carolann.graves 1.22 //
2443 // _deserializeCIMSubscriptionInitCompleteResponseMessage
2444 //
2445 CIMSubscriptionInitCompleteResponseMessage*
2446 CIMMessageDeserializer::_deserializeCIMSubscriptionInitCompleteResponseMessage(
2447 XmlParser& parser)
2448 {
2449 CIMSubscriptionInitCompleteResponseMessage* message =
2450 new CIMSubscriptionInitCompleteResponseMessage(
2451 String::EMPTY, // messageId
2452 CIMException(), // cimException
2453 QueueIdStack()); // queueIds
2454
2455 return(message);
2456 }
|
2457 kumpf 1.1
2458 PEGASUS_NAMESPACE_END
|