(file) Return to CIMOperationRequestEncoder.cpp CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / Client

  1 karl  1.22 //%2004////////////////////////////////////////////////////////////////////////
  2 mike  1.2  //
  3 karl  1.22 // 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 karl  1.19 // IBM Corp.; EMC Corporation, The Open Group.
  7 karl  1.22 // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
  8            // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
  9 mike  1.2  //
 10            // Permission is hereby granted, free of charge, to any person obtaining a copy
 11            // of this software and associated documentation files (the "Software"), to
 12            // deal in the Software without restriction, including without limitation the
 13            // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
 14            // sell copies of the Software, and to permit persons to whom the Software is
 15            // furnished to do so, subject to the following conditions:
 16 kumpf 1.11 // 
 17 mike  1.2  // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
 18            // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
 19            // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
 20            // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
 21            // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 22            // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
 23            // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 24            // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 25            //
 26            //==============================================================================
 27            //
 28            // Author: Mike Brasher (mbrasher@bmc.com)
 29            //
 30            // Modified By: Nitin Upasani, Hewlett-Packard Company (Nitin_Upasani@hp.com)
 31            //              Nag Boranna, Hewlett-Packard Company (nagaraja_boranna@hp.com)
 32            //              Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com)
 33 kumpf 1.13 //              Carol Ann Krug Graves, Hewlett-Packard Company
 34            //                (carolann_graves@hp.com)
 35 se.gupta 1.20 //				Seema Gupta (gseema@in.ibm.com) for PEP135
 36 mike     1.2  //
 37               //%/////////////////////////////////////////////////////////////////////////////
 38               
 39               #include <Pegasus/Common/Config.h>
 40               #include <iostream>
 41 kumpf    1.10 #include <Pegasus/Common/Constants.h>
 42 mike     1.2  #include <Pegasus/Common/XmlWriter.h>
 43               #include <Pegasus/Common/HTTPMessage.h>
 44               #include "CIMOperationRequestEncoder.h"
 45               
 46               PEGASUS_USING_STD;
 47               
 48               PEGASUS_NAMESPACE_BEGIN
 49               
 50 karl     1.18 
 51 mike     1.2  CIMOperationRequestEncoder::CIMOperationRequestEncoder(
 52 kumpf    1.21     MessageQueue* outputQueue,
 53                   const String& hostName,
 54                   ClientAuthenticator* authenticator,
 55                   Uint32 showOutput)
 56 mike     1.2      :
 57 kumpf    1.10     MessageQueue(PEGASUS_QUEUENAME_OPREQENCODER),
 58 mike     1.2      _outputQueue(outputQueue),
 59 kumpf    1.21     _hostName(hostName.getCString()),
 60 karl     1.18     _authenticator(authenticator),
 61 kumpf    1.21     _showOutput(showOutput)
 62 mike     1.2  {
 63               }
 64               
 65               CIMOperationRequestEncoder::~CIMOperationRequestEncoder()
 66               {
 67               }
 68               
 69               void CIMOperationRequestEncoder::handleEnqueue()
 70               {
 71                   Message* message = dequeue();
 72               
 73                   if (!message)
 74               	return;
 75               
 76                   _authenticator->setRequestMessage(message);
 77               
 78                   switch (message->getType())
 79                   {
 80               	case CIM_CREATE_CLASS_REQUEST_MESSAGE:
 81               	    _encodeCreateClassRequest(
 82               		(CIMCreateClassRequestMessage*)message);
 83 mike     1.2  	    break;
 84               
 85               	case CIM_GET_CLASS_REQUEST_MESSAGE:
 86               	    _encodeGetClassRequest((CIMGetClassRequestMessage*)message);
 87               	    break;
 88               
 89               	case CIM_MODIFY_CLASS_REQUEST_MESSAGE:
 90               	    _encodeModifyClassRequest(
 91               		(CIMModifyClassRequestMessage*)message);
 92               	    break;
 93               
 94               	case CIM_ENUMERATE_CLASS_NAMES_REQUEST_MESSAGE:
 95               	    _encodeEnumerateClassNamesRequest(
 96               		(CIMEnumerateClassNamesRequestMessage*)message);
 97               	    break;
 98               
 99               	case CIM_ENUMERATE_CLASSES_REQUEST_MESSAGE:
100               	    _encodeEnumerateClassesRequest(
101               		(CIMEnumerateClassesRequestMessage*)message);
102               	    break;
103               
104 mike     1.2  	case CIM_DELETE_CLASS_REQUEST_MESSAGE:
105               	    _encodeDeleteClassRequest(
106               		(CIMDeleteClassRequestMessage*)message);
107               	    break;
108               
109               	case CIM_CREATE_INSTANCE_REQUEST_MESSAGE:
110               	    _encodeCreateInstanceRequest(
111               		(CIMCreateInstanceRequestMessage*)message);
112               	    break;
113               
114               	case CIM_GET_INSTANCE_REQUEST_MESSAGE:
115               	    _encodeGetInstanceRequest((CIMGetInstanceRequestMessage*)message);
116               	    break;
117               
118               	case CIM_MODIFY_INSTANCE_REQUEST_MESSAGE:
119               	    _encodeModifyInstanceRequest(
120               		(CIMModifyInstanceRequestMessage*)message);
121               	    break;
122               
123               	case CIM_ENUMERATE_INSTANCE_NAMES_REQUEST_MESSAGE:
124               	    _encodeEnumerateInstanceNamesRequest(
125 mike     1.2  		(CIMEnumerateInstanceNamesRequestMessage*)message);
126               	    break;
127               
128               	case CIM_ENUMERATE_INSTANCES_REQUEST_MESSAGE:
129               	    _encodeEnumerateInstancesRequest(
130               		(CIMEnumerateInstancesRequestMessage*)message);
131               	    break;
132               
133               	case CIM_DELETE_INSTANCE_REQUEST_MESSAGE:
134               	    _encodeDeleteInstanceRequest(
135               		(CIMDeleteInstanceRequestMessage*)message);
136               	    break;
137               
138               	case CIM_SET_QUALIFIER_REQUEST_MESSAGE:
139               	    _encodeSetQualifierRequest(
140               		(CIMSetQualifierRequestMessage*)message);
141               	    break;
142               
143               	case CIM_GET_QUALIFIER_REQUEST_MESSAGE:
144               	    _encodeGetQualifierRequest(
145               		(CIMGetQualifierRequestMessage*)message);
146 mike     1.2  	    break;
147               
148               	case CIM_ENUMERATE_QUALIFIERS_REQUEST_MESSAGE:
149               	    _encodeEnumerateQualifiersRequest(
150               		(CIMEnumerateQualifiersRequestMessage*)message);
151               	    break;
152               
153               	case CIM_DELETE_QUALIFIER_REQUEST_MESSAGE:
154               	    _encodeDeleteQualifierRequest(
155               		(CIMDeleteQualifierRequestMessage*)message);
156               	    break;
157               
158               	case CIM_REFERENCE_NAMES_REQUEST_MESSAGE:
159               	    _encodeReferenceNamesRequest(
160               		(CIMReferenceNamesRequestMessage*)message);
161               	    break;
162               
163               	case CIM_REFERENCES_REQUEST_MESSAGE:
164               	    _encodeReferencesRequest(
165               		(CIMReferencesRequestMessage*)message);
166               	    break;
167 mike     1.2  
168               	case CIM_ASSOCIATOR_NAMES_REQUEST_MESSAGE:
169               	    _encodeAssociatorNamesRequest(
170               		(CIMAssociatorNamesRequestMessage*)message);
171               	    break;
172               
173               	case CIM_ASSOCIATORS_REQUEST_MESSAGE:
174               	    _encodeAssociatorsRequest(
175               		(CIMAssociatorsRequestMessage*)message);
176               	    break;
177               
178               	case CIM_EXEC_QUERY_REQUEST_MESSAGE:
179 kumpf    1.9  	    _encodeExecQueryRequest(
180               		(CIMExecQueryRequestMessage*)message);
181 mike     1.2  	    break;
182               
183               	case CIM_GET_PROPERTY_REQUEST_MESSAGE:
184               	    _encodeGetPropertyRequest((CIMGetPropertyRequestMessage*)message);
185               	    break;
186               
187               	case CIM_SET_PROPERTY_REQUEST_MESSAGE:
188               	    _encodeSetPropertyRequest((CIMSetPropertyRequestMessage*)message);
189               	    break;
190               
191               	case CIM_INVOKE_METHOD_REQUEST_MESSAGE:
192               	    _encodeInvokeMethodRequest(
193               		(CIMInvokeMethodRequestMessage*)message);
194               	    break;
195                   }
196               
197                   //ATTN: Do not delete the message here.
198                   //
199                   // ClientAuthenticator needs this message for resending the request on
200                   // authentication challenge from the server. The message is deleted in
201                   // the decoder after receiving the valid response from thr server.
202 mike     1.2      //
203                   //delete message;
204               }
205               
206 chuck    1.17 // l10n Added accept language and content language support starting here
207               
208 mike     1.2  void CIMOperationRequestEncoder::_encodeCreateClassRequest(
209                   CIMCreateClassRequestMessage* message)
210               {
211                   Array<Sint8> params;
212 kumpf    1.4      XmlWriter::appendClassIParameter(params, "NewClass", message->newClass);
213 mike     1.2  	
214 se.gupta 1.20 	Array<Sint8> buffer = XmlWriter::formatSimpleIMethodReqMessage(_hostName, 
215 kumpf    1.13         message->nameSpace, CIMName ("CreateClass"), message->messageId,
216 kumpf    1.14         message->getHttpMethod(), 
217 chuck    1.17         _authenticator->buildRequestAuthHeader(), 
218 se.gupta 1.20 		((AcceptLanguageListContainer)message->operationContext.get(AcceptLanguageListContainer::NAME)).getLanguages(),
219               		((ContentLanguageListContainer)message->operationContext.get(ContentLanguageListContainer::NAME)).getLanguages(),
220 chuck    1.17         params);
221 karl     1.18     _sendRequest(buffer);
222 mike     1.2  }
223               
224               void CIMOperationRequestEncoder::_encodeGetClassRequest(
225                   CIMGetClassRequestMessage* message)
226               {
227                   Array<Sint8> params;
228               
229 kumpf    1.4      XmlWriter::appendClassNameIParameter(
230 mike     1.2  	params, "ClassName", message->className);
231               	
232                   if (message->localOnly != true)
233 kumpf    1.4  	XmlWriter::appendBooleanIParameter(params, "LocalOnly", false);
234 mike     1.2  
235                   if (message->includeQualifiers != true)
236 kumpf    1.4  	XmlWriter::appendBooleanIParameter(params, "IncludeQualifiers", false);
237 mike     1.2  
238                   if (message->includeClassOrigin != false)
239 kumpf    1.4  	XmlWriter::appendBooleanIParameter(params, "IncludeClassOrigin", true);
240 mike     1.2  
241                   if (!message->propertyList.isNull())
242 kumpf    1.4  	XmlWriter::appendPropertyListIParameter(
243 mike     1.2  	    params, message->propertyList);
244               
245                   Array<Sint8> buffer = XmlWriter::formatSimpleIMethodReqMessage(
246 kumpf    1.13         _hostName, message->nameSpace, CIMName ("GetClass"), message->messageId,
247 kumpf    1.14         message->getHttpMethod(),
248 chuck    1.17         _authenticator->buildRequestAuthHeader(),
249 se.gupta 1.20 		((AcceptLanguageListContainer)message->operationContext.get(AcceptLanguageListContainer::NAME)).getLanguages(),
250               		((ContentLanguageListContainer)message->operationContext.get(ContentLanguageListContainer::NAME)).getLanguages(),
251 chuck    1.17          params);
252 mike     1.2  
253 karl     1.18     _sendRequest(buffer);
254 mike     1.2  }
255               
256               void CIMOperationRequestEncoder::_encodeModifyClassRequest(
257                   CIMModifyClassRequestMessage* message)
258               {
259                   Array<Sint8> params;
260               
261 kumpf    1.4      XmlWriter::appendClassIParameter(
262 mike     1.2  	params, "ModifiedClass", message->modifiedClass);
263               	
264                   Array<Sint8> buffer = XmlWriter::formatSimpleIMethodReqMessage(_hostName,
265 kumpf    1.13         message->nameSpace, CIMName ("ModifyClass"), message->messageId,
266 kumpf    1.14         message->getHttpMethod(),
267 chuck    1.17         _authenticator->buildRequestAuthHeader(),
268 se.gupta 1.20 		((AcceptLanguageListContainer)message->operationContext.get(AcceptLanguageListContainer::NAME)).getLanguages(),
269               		((ContentLanguageListContainer)message->operationContext.get(ContentLanguageListContainer::NAME)).getLanguages(),
270 chuck    1.17          params);
271 mike     1.2  
272 karl     1.18     _sendRequest(buffer);
273 mike     1.2  }
274               
275               void CIMOperationRequestEncoder::_encodeEnumerateClassNamesRequest(
276                   CIMEnumerateClassNamesRequestMessage* message)
277               {
278                   Array<Sint8> params;
279               
280 kumpf    1.13     if (!message->className.isNull())
281 kumpf    1.4  	XmlWriter::appendClassNameIParameter(
282 mike     1.2  	    params, "ClassName", message->className);
283               	
284                   if (message->deepInheritance != false)
285 kumpf    1.4  	XmlWriter::appendBooleanIParameter(params, "DeepInheritance", true);
286 mike     1.2  
287                   Array<Sint8> buffer = XmlWriter::formatSimpleIMethodReqMessage(_hostName,
288 kumpf    1.13         message->nameSpace, CIMName ("EnumerateClassNames"), message->messageId,
289 kumpf    1.14         message->getHttpMethod(),
290 chuck    1.17         _authenticator->buildRequestAuthHeader(),
291 se.gupta 1.20 		((AcceptLanguageListContainer)message->operationContext.get(AcceptLanguageListContainer::NAME)).getLanguages(),
292               		((ContentLanguageListContainer)message->operationContext.get(ContentLanguageListContainer::NAME)).getLanguages(),
293 chuck    1.17          params);
294 mike     1.2  
295 karl     1.18     _sendRequest(buffer);
296 mike     1.2  }
297               
298               void CIMOperationRequestEncoder::_encodeEnumerateClassesRequest(
299                   CIMEnumerateClassesRequestMessage* message)
300               {
301                   Array<Sint8> params;
302               
303 kumpf    1.13     if (!message->className.isNull())
304 kumpf    1.4  	XmlWriter::appendClassNameIParameter(
305 mike     1.2  	    params, "ClassName", message->className);
306               	
307                   if (message->deepInheritance != false)
308 kumpf    1.4  	XmlWriter::appendBooleanIParameter(params, "DeepInheritance", true);
309 mike     1.2  
310                   if (message->localOnly != true)
311 kumpf    1.4  	XmlWriter::appendBooleanIParameter(params, "LocalOnly", false);
312 mike     1.2  
313                   if (message->includeQualifiers != true)
314 kumpf    1.4  	XmlWriter::appendBooleanIParameter(
315 mike     1.2  	    params, "IncludeQualifiers", false);
316               
317                   if (message->includeClassOrigin != false)
318 kumpf    1.4  	XmlWriter::appendBooleanIParameter(
319 mike     1.2  	    params, "IncludeClassOrigin", true);
320               
321                   Array<Sint8> buffer = XmlWriter::formatSimpleIMethodReqMessage(_hostName,
322 kumpf    1.13         message->nameSpace, CIMName ("EnumerateClasses"), message->messageId,
323 kumpf    1.14         message->getHttpMethod(),
324 chuck    1.17         _authenticator->buildRequestAuthHeader(),
325 se.gupta 1.20 		((AcceptLanguageListContainer)message->operationContext.get(AcceptLanguageListContainer::NAME)).getLanguages(),
326               		((ContentLanguageListContainer)message->operationContext.get(ContentLanguageListContainer::NAME)).getLanguages(),
327 chuck    1.17          params);
328 mike     1.2  
329 karl     1.18     _sendRequest(buffer);
330 mike     1.2  }
331               
332               void CIMOperationRequestEncoder::_encodeDeleteClassRequest(
333                   CIMDeleteClassRequestMessage* message)
334               {
335                   Array<Sint8> params;
336               
337 kumpf    1.13     if (!message->className.isNull())
338 kumpf    1.4  	XmlWriter::appendClassNameIParameter(
339 mike     1.2  	    params, "ClassName", message->className);
340               
341                   Array<Sint8> buffer = XmlWriter::formatSimpleIMethodReqMessage(_hostName,
342 kumpf    1.13         message->nameSpace, CIMName ("DeleteClass"), message->messageId,
343 kumpf    1.14         message->getHttpMethod(),
344 chuck    1.17         _authenticator->buildRequestAuthHeader(),
345 se.gupta 1.20 		((AcceptLanguageListContainer)message->operationContext.get(AcceptLanguageListContainer::NAME)).getLanguages(),
346               		((ContentLanguageListContainer)message->operationContext.get(ContentLanguageListContainer::NAME)).getLanguages(),
347 chuck    1.17          params);
348 mike     1.2  
349 karl     1.18     _sendRequest(buffer);
350 mike     1.2  }
351               
352               void CIMOperationRequestEncoder::_encodeCreateInstanceRequest(
353                   CIMCreateInstanceRequestMessage* message)
354               {
355                   Array<Sint8> params;
356               
357 kumpf    1.4      XmlWriter::appendInstanceIParameter(
358 mike     1.2  	params, "NewInstance", message->newInstance);
359               	
360                   Array<Sint8> buffer = XmlWriter::formatSimpleIMethodReqMessage(_hostName,
361 kumpf    1.13         message->nameSpace, CIMName ("CreateInstance"), message->messageId,
362 kumpf    1.14         message->getHttpMethod(),
363 chuck    1.17         _authenticator->buildRequestAuthHeader(),
364 se.gupta 1.20 		((AcceptLanguageListContainer)message->operationContext.get(AcceptLanguageListContainer::NAME)).getLanguages(),
365               		((ContentLanguageListContainer)message->operationContext.get(ContentLanguageListContainer::NAME)).getLanguages(),
366 chuck    1.17          params);
367 mike     1.2  
368 karl     1.18     _sendRequest(buffer);
369 mike     1.2  }
370               
371               void CIMOperationRequestEncoder::_encodeGetInstanceRequest(
372                   CIMGetInstanceRequestMessage* message)
373               {
374                   Array<Sint8> params;
375               
376 kumpf    1.4      XmlWriter::appendInstanceNameIParameter(
377 mike     1.2  	params, "InstanceName", message->instanceName);
378               	
379                   if (message->localOnly != true)
380 kumpf    1.4  	XmlWriter::appendBooleanIParameter(
381 mike     1.2  	    params, "LocalOnly", false);
382               
383                   if (message->includeQualifiers != false)
384 kumpf    1.4  	XmlWriter::appendBooleanIParameter(
385 mike     1.2  	    params, "IncludeQualifiers", true);
386               
387                   if (message->includeClassOrigin != false)
388 kumpf    1.4  	XmlWriter::appendBooleanIParameter(
389 mike     1.2  	    params, "IncludeClassOrigin", true);
390               
391                   if (!message->propertyList.isNull())
392 kumpf    1.4  	XmlWriter::appendPropertyListIParameter(
393 mike     1.2  	    params, message->propertyList);
394               
395 se.gupta 1.20 	Array<Sint8> buffer = XmlWriter::formatSimpleIMethodReqMessage(_hostName, 
396 kumpf    1.13         message->nameSpace, CIMName ("GetInstance"), message->messageId,
397 kumpf    1.14         message->getHttpMethod(),
398 chuck    1.17         _authenticator->buildRequestAuthHeader(),
399 se.gupta 1.20 		((AcceptLanguageListContainer)message->operationContext.get(AcceptLanguageListContainer::NAME)).getLanguages(),
400               		((ContentLanguageListContainer)message->operationContext.get(ContentLanguageListContainer::NAME)).getLanguages(),
401 chuck    1.17          params);
402 mike     1.2  
403 karl     1.18     _sendRequest(buffer);
404 mike     1.2  }
405               
406               void CIMOperationRequestEncoder::_encodeModifyInstanceRequest(
407                   CIMModifyInstanceRequestMessage* message)
408               {
409                   Array<Sint8> params;
410 kumpf    1.4      XmlWriter::appendNamedInstanceIParameter(
411 mike     1.2  	params, "ModifiedInstance", message->modifiedInstance);
412               	
413                   if (message->includeQualifiers != true)
414 kumpf    1.4  	XmlWriter::appendBooleanIParameter(
415 mike     1.2  	    params, "IncludeQualifiers", false);
416               
417                   if (!message->propertyList.isNull())
418 kumpf    1.4  	XmlWriter::appendPropertyListIParameter(
419 mike     1.2  	    params, message->propertyList);
420               
421                   Array<Sint8> buffer = XmlWriter::formatSimpleIMethodReqMessage(_hostName, 
422 kumpf    1.13         message->nameSpace, CIMName ("ModifyInstance"), message->messageId,
423 kumpf    1.14         message->getHttpMethod(),
424 chuck    1.17         _authenticator->buildRequestAuthHeader(),
425 se.gupta 1.20 		((AcceptLanguageListContainer)message->operationContext.get(AcceptLanguageListContainer::NAME)).getLanguages(),
426               		((ContentLanguageListContainer)message->operationContext.get(ContentLanguageListContainer::NAME)).getLanguages(),
427 chuck    1.17          params);
428 mike     1.2  
429 karl     1.18     _sendRequest(buffer);
430 mike     1.2  }
431               
432               void CIMOperationRequestEncoder::_encodeEnumerateInstanceNamesRequest(
433                   CIMEnumerateInstanceNamesRequestMessage* message)
434               {
435                   Array<Sint8> params;
436               
437 kumpf    1.4      XmlWriter::appendClassNameIParameter(
438 mike     1.2  	params, "ClassName", message->className);
439 chuck    1.17 
440               
441 mike     1.2      Array<Sint8> buffer = XmlWriter::formatSimpleIMethodReqMessage(_hostName,
442 kumpf    1.13         message->nameSpace, CIMName ("EnumerateInstanceNames"), 
443 kumpf    1.14         message->messageId, message->getHttpMethod(),
444 chuck    1.17         _authenticator->buildRequestAuthHeader(),
445 se.gupta 1.20 		((AcceptLanguageListContainer)message->operationContext.get(AcceptLanguageListContainer::NAME)).getLanguages(),
446               		((ContentLanguageListContainer)message->operationContext.get(ContentLanguageListContainer::NAME)).getLanguages(),
447 chuck    1.17          params);
448               
449 karl     1.18     _sendRequest(buffer);
450 mike     1.2  }
451               
452               void CIMOperationRequestEncoder::_encodeEnumerateInstancesRequest(
453                   CIMEnumerateInstancesRequestMessage* message)
454               {
455                   Array<Sint8> params;
456               
457 kumpf    1.4      XmlWriter::appendClassNameIParameter(
458 mike     1.2          params, "ClassName", message->className);
459               	
460                   if (message->localOnly != true)
461 kumpf    1.4  	XmlWriter::appendBooleanIParameter(params, "LocalOnly", false);
462 mike     1.2  
463                   if (message->deepInheritance != true)
464 kumpf    1.4  	XmlWriter::appendBooleanIParameter(params, "DeepInheritance", false);
465 mike     1.2  
466                   if (message->includeQualifiers != false)
467 kumpf    1.4  	XmlWriter::appendBooleanIParameter(
468 mike     1.2  	    params, "IncludeQualifiers", true);
469               
470                   if (message->includeClassOrigin != false)
471 kumpf    1.4  	XmlWriter::appendBooleanIParameter(
472 mike     1.2  	    params, "IncludeClassOrigin", true);
473               
474                   if (!message->propertyList.isNull())
475 kumpf    1.4  	XmlWriter::appendPropertyListIParameter(
476 mike     1.2  	    params, message->propertyList);
477               
478                   Array<Sint8> buffer = XmlWriter::formatSimpleIMethodReqMessage(_hostName,
479 kumpf    1.13         message->nameSpace, CIMName ("EnumerateInstances"), message->messageId,
480 kumpf    1.14         message->getHttpMethod(),
481 chuck    1.17         _authenticator->buildRequestAuthHeader(),
482 se.gupta 1.20 		((AcceptLanguageListContainer)message->operationContext.get(AcceptLanguageListContainer::NAME)).getLanguages(),
483               		((ContentLanguageListContainer)message->operationContext.get(ContentLanguageListContainer::NAME)).getLanguages(),
484 chuck    1.17          params);
485 mike     1.2  
486 karl     1.18     _sendRequest(buffer);
487 mike     1.2  }
488               
489               void CIMOperationRequestEncoder::_encodeDeleteInstanceRequest(
490                   CIMDeleteInstanceRequestMessage* message)
491               {
492                   Array<Sint8> params;
493               
494 kumpf    1.4      XmlWriter::appendInstanceNameIParameter(
495 mike     1.2  	params, "InstanceName", message->instanceName);
496               
497                   Array<Sint8> buffer = XmlWriter::formatSimpleIMethodReqMessage(_hostName, 
498 kumpf    1.13         message->nameSpace, CIMName ("DeleteInstance"), message->messageId,
499 kumpf    1.14         message->getHttpMethod(),
500 chuck    1.17         _authenticator->buildRequestAuthHeader(),
501 se.gupta 1.20 		((AcceptLanguageListContainer)message->operationContext.get(AcceptLanguageListContainer::NAME)).getLanguages(),
502               		((ContentLanguageListContainer)message->operationContext.get(ContentLanguageListContainer::NAME)).getLanguages(),
503 chuck    1.17          params);
504 mike     1.2  
505 karl     1.18     _sendRequest(buffer);
506 mike     1.2  }
507               
508               void CIMOperationRequestEncoder::_encodeGetPropertyRequest(
509                   CIMGetPropertyRequestMessage* message)
510               {
511                   Array<Sint8> params;
512               
513 kumpf    1.4      XmlWriter::appendInstanceNameIParameter(
514 mike     1.2  	params, "InstanceName", message->instanceName);
515               	
516 kumpf    1.4      XmlWriter::appendPropertyNameIParameter(
517 mike     1.2  	params, message->propertyName);
518               
519                   Array<Sint8> buffer = XmlWriter::formatSimpleIMethodReqMessage(_hostName, 
520 kumpf    1.13         message->nameSpace, CIMName ("GetProperty"), message->messageId,
521 kumpf    1.14         message->getHttpMethod(),
522 chuck    1.17         _authenticator->buildRequestAuthHeader(),
523 se.gupta 1.20 		((AcceptLanguageListContainer)message->operationContext.get(AcceptLanguageListContainer::NAME)).getLanguages(),
524               		((ContentLanguageListContainer)message->operationContext.get(ContentLanguageListContainer::NAME)).getLanguages(),
525 chuck    1.17          params);
526 mike     1.2  
527 karl     1.18     _sendRequest(buffer);
528 mike     1.2  }
529               
530               void CIMOperationRequestEncoder::_encodeSetPropertyRequest(
531                   CIMSetPropertyRequestMessage* message)
532               {
533                   Array<Sint8> params;
534               
535 kumpf    1.4      XmlWriter::appendInstanceNameIParameter(
536 mike     1.2  	params, "InstanceName", message->instanceName);
537               	
538 kumpf    1.4      XmlWriter::appendPropertyNameIParameter(
539 mike     1.2  	params, message->propertyName);
540               
541                   if (!message->newValue.isNull())
542 kumpf    1.4          XmlWriter::appendPropertyValueIParameter(
543 mike     1.2  	    params, "NewValue", message->newValue);
544               
545                   Array<Sint8> buffer = XmlWriter::formatSimpleIMethodReqMessage(_hostName, 
546 kumpf    1.13         message->nameSpace, CIMName ("SetProperty"), message->messageId,
547 kumpf    1.14         message->getHttpMethod(),
548 chuck    1.17         _authenticator->buildRequestAuthHeader(),
549 se.gupta 1.20 		((AcceptLanguageListContainer)message->operationContext.get(AcceptLanguageListContainer::NAME)).getLanguages(),
550               		((ContentLanguageListContainer)message->operationContext.get(ContentLanguageListContainer::NAME)).getLanguages(),
551 chuck    1.17          params);
552 mike     1.2  
553 karl     1.18     _sendRequest(buffer);
554 mike     1.2  }
555               
556               void CIMOperationRequestEncoder::_encodeSetQualifierRequest(
557                   CIMSetQualifierRequestMessage* message)
558               {
559                   Array<Sint8> params;
560 kumpf    1.4      XmlWriter::appendQualifierDeclarationIParameter(
561 mike     1.2  	params, "QualifierDeclaration", message->qualifierDeclaration);
562               
563                   Array<Sint8> buffer = XmlWriter::formatSimpleIMethodReqMessage(_hostName,
564 kumpf    1.13         message->nameSpace, CIMName ("SetQualifier"), message->messageId,
565 kumpf    1.14         message->getHttpMethod(),
566 chuck    1.17         _authenticator->buildRequestAuthHeader(),
567 se.gupta 1.20 		((AcceptLanguageListContainer)message->operationContext.get(AcceptLanguageListContainer::NAME)).getLanguages(),
568               		((ContentLanguageListContainer)message->operationContext.get(ContentLanguageListContainer::NAME)).getLanguages(),
569 chuck    1.17          params);
570 mike     1.2  
571 karl     1.18     _sendRequest(buffer);
572 mike     1.2  }
573               
574               void CIMOperationRequestEncoder::_encodeGetQualifierRequest(
575                   CIMGetQualifierRequestMessage* message)
576               {
577                   Array<Sint8> params;
578               
579 kumpf    1.13     if (!message->qualifierName.isNull())
580 kumpf    1.15 	XmlWriter::appendStringIParameter(
581               	    params, "QualifierName", message->qualifierName.getString());
582 mike     1.2  	
583                   Array<Sint8> buffer = XmlWriter::formatSimpleIMethodReqMessage(_hostName,
584 kumpf    1.13         message->nameSpace, CIMName ("GetQualifier"), message->messageId,
585 kumpf    1.14         message->getHttpMethod(),
586 chuck    1.17         _authenticator->buildRequestAuthHeader(),
587 se.gupta 1.20 		((AcceptLanguageListContainer)message->operationContext.get(AcceptLanguageListContainer::NAME)).getLanguages(),
588               		((ContentLanguageListContainer)message->operationContext.get(ContentLanguageListContainer::NAME)).getLanguages(),
589 chuck    1.17          params);
590 mike     1.2  
591 karl     1.18     _sendRequest(buffer);
592 mike     1.2  }
593               
594               void CIMOperationRequestEncoder::_encodeEnumerateQualifiersRequest(
595                   CIMEnumerateQualifiersRequestMessage* message)
596               {
597                   Array<Sint8> params;
598               
599                   Array<Sint8> buffer = XmlWriter::formatSimpleIMethodReqMessage(_hostName, 
600 kumpf    1.13         message->nameSpace, CIMName ("EnumerateQualifiers"), message->messageId,
601 kumpf    1.14         message->getHttpMethod(), 
602 chuck    1.17         _authenticator->buildRequestAuthHeader(),
603 se.gupta 1.20 		((AcceptLanguageListContainer)message->operationContext.get(AcceptLanguageListContainer::NAME)).getLanguages(),
604               		((ContentLanguageListContainer)message->operationContext.get(ContentLanguageListContainer::NAME)).getLanguages(),
605 chuck    1.17          params);
606 mike     1.2  
607 karl     1.18     _sendRequest(buffer);
608 mike     1.2  }
609               
610               void CIMOperationRequestEncoder::_encodeDeleteQualifierRequest(
611                   CIMDeleteQualifierRequestMessage* message)
612               {
613                   Array<Sint8> params;
614               
615 kumpf    1.13     if (!message->qualifierName.isNull())
616 kumpf    1.15 	XmlWriter::appendStringIParameter(
617               	    params, "QualifierName", message->qualifierName.getString());
618 mike     1.2  	
619                   Array<Sint8> buffer = XmlWriter::formatSimpleIMethodReqMessage(_hostName,
620 kumpf    1.13         message->nameSpace, CIMName ("DeleteQualifier"), message->messageId,
621 kumpf    1.14         message->getHttpMethod(), 
622 chuck    1.17         _authenticator->buildRequestAuthHeader(),
623 se.gupta 1.20 		((AcceptLanguageListContainer)message->operationContext.get(AcceptLanguageListContainer::NAME)).getLanguages(),
624               		((ContentLanguageListContainer)message->operationContext.get(ContentLanguageListContainer::NAME)).getLanguages(),
625 chuck    1.17          params);
626 mike     1.2  
627 karl     1.18     _sendRequest(buffer);
628 mike     1.2  }
629               
630               void CIMOperationRequestEncoder::_encodeReferenceNamesRequest(
631                   CIMReferenceNamesRequestMessage* message)
632               {
633                   Array<Sint8> params;
634               
635 kumpf    1.4      XmlWriter::appendObjectNameIParameter(
636 mike     1.2  	params, "ObjectName", message->objectName);
637               
638 kumpf    1.4      XmlWriter::appendClassNameIParameter(
639 mike     1.2  	params, "ResultClass", message->resultClass);
640               
641 kumpf    1.16     //
642                   //  The Client API has no way to represent a NULL role;
643                   //  An empty string is interpreted as NULL
644                   //
645                   if (message->role != String::EMPTY)
646                   {
647                       XmlWriter::appendStringIParameter(
648               	    params, "Role", message->role);
649                   }
650 mike     1.2  
651                   Array<Sint8> buffer = XmlWriter::formatSimpleIMethodReqMessage(_hostName,
652 kumpf    1.13         message->nameSpace, CIMName ("ReferenceNames"), message->messageId,
653 kumpf    1.14         message->getHttpMethod(),
654 chuck    1.17         _authenticator->buildRequestAuthHeader(),
655 se.gupta 1.20 		((AcceptLanguageListContainer)message->operationContext.get(AcceptLanguageListContainer::NAME)).getLanguages(),
656               		((ContentLanguageListContainer)message->operationContext.get(ContentLanguageListContainer::NAME)).getLanguages(),
657 chuck    1.17          params);
658 mike     1.2  
659 karl     1.18     _sendRequest(buffer);
660 mike     1.2  }
661               
662               void CIMOperationRequestEncoder::_encodeReferencesRequest(
663                   CIMReferencesRequestMessage* message)
664               {
665                   Array<Sint8> params;
666               
667 kumpf    1.4      XmlWriter::appendObjectNameIParameter(
668 mike     1.2  	params, "ObjectName", message->objectName);
669               
670 kumpf    1.4      XmlWriter::appendClassNameIParameter(
671 mike     1.2  	params, "ResultClass", message->resultClass);
672               
673 kumpf    1.16     //
674                   //  The Client API has no way to represent a NULL role;
675                   //  An empty string is interpreted as NULL
676                   //
677                   if (message->role != String::EMPTY)
678                   {
679                       XmlWriter::appendStringIParameter(
680               	    params, "Role", message->role);
681                   }
682 mike     1.2  
683                   if (message->includeQualifiers != false)
684 kumpf    1.4  	XmlWriter::appendBooleanIParameter(params, "IncludeQualifiers", true);
685 mike     1.2  
686                   if (message->includeClassOrigin != false)
687 kumpf    1.4  	XmlWriter::appendBooleanIParameter(params, "IncludeClassOrigin", true);
688 mike     1.2  
689                   if (!message->propertyList.isNull())
690 kumpf    1.4  	XmlWriter::appendPropertyListIParameter(
691 mike     1.2  	    params, message->propertyList);
692               
693                   Array<Sint8> buffer = XmlWriter::formatSimpleIMethodReqMessage(_hostName,
694 kumpf    1.13         message->nameSpace, CIMName ("References"), message->messageId,
695 kumpf    1.14         message->getHttpMethod(),
696 chuck    1.17         _authenticator->buildRequestAuthHeader(),
697 se.gupta 1.20 		((AcceptLanguageListContainer)message->operationContext.get(AcceptLanguageListContainer::NAME)).getLanguages(),
698               		((ContentLanguageListContainer)message->operationContext.get(ContentLanguageListContainer::NAME)).getLanguages(),
699 chuck    1.17          params);
700 mike     1.2  
701 karl     1.18     _sendRequest(buffer);
702 mike     1.2  }
703               
704               void CIMOperationRequestEncoder::_encodeAssociatorNamesRequest(
705                   CIMAssociatorNamesRequestMessage* message)
706               {
707                   Array<Sint8> params;
708               
709 kumpf    1.4      XmlWriter::appendObjectNameIParameter(
710 mike     1.2  	params, "ObjectName", message->objectName);
711               
712 kumpf    1.4      XmlWriter::appendClassNameIParameter(
713 mike     1.2  	params, "AssocClass", message->assocClass);
714               
715 kumpf    1.4      XmlWriter::appendClassNameIParameter(
716 mike     1.2  	params, "ResultClass", message->resultClass);
717               
718 kumpf    1.16     //
719                   //  The Client API has no way to represent a NULL role;
720                   //  An empty string is interpreted as NULL
721                   //
722                   if (message->role != String::EMPTY)
723                   {
724                       XmlWriter::appendStringIParameter(
725               	    params, "Role", message->role);
726                   }
727               
728                   //
729                   //  The Client API has no way to represent a NULL resultRole;
730                   //  An empty string is interpreted as NULL
731                   //
732                   if (message->resultRole != String::EMPTY)
733                   {
734                       XmlWriter::appendStringIParameter(
735               	    params, "ResultRole", message->resultRole);
736                   }
737 mike     1.2  
738                   Array<Sint8> buffer = XmlWriter::formatSimpleIMethodReqMessage(_hostName,
739 kumpf    1.13         message->nameSpace, CIMName ("AssociatorNames"), message->messageId,
740 kumpf    1.14         message->getHttpMethod(),
741 chuck    1.17         _authenticator->buildRequestAuthHeader(),
742 se.gupta 1.20 		((AcceptLanguageListContainer)message->operationContext.get(AcceptLanguageListContainer::NAME)).getLanguages(),
743               		((ContentLanguageListContainer)message->operationContext.get(ContentLanguageListContainer::NAME)).getLanguages(),
744 chuck    1.17          params);
745 mike     1.2  
746 karl     1.18     _sendRequest(buffer);
747 mike     1.2  }
748               
749               void CIMOperationRequestEncoder::_encodeAssociatorsRequest(
750                   CIMAssociatorsRequestMessage* message)
751               {
752                   Array<Sint8> params;
753               
754 kumpf    1.4      XmlWriter::appendObjectNameIParameter(
755 mike     1.2  	params, "ObjectName", message->objectName);
756               
757 kumpf    1.4      XmlWriter::appendClassNameIParameter(
758 mike     1.2  	params, "AssocClass", message->assocClass);
759               
760 kumpf    1.4      XmlWriter::appendClassNameIParameter(
761 mike     1.2  	params, "ResultClass", message->resultClass);
762               
763 kumpf    1.16     //
764                   //  The Client API has no way to represent a NULL role;
765                   //  An empty string is interpreted as NULL
766                   //
767                   if (message->role != String::EMPTY)
768                   {
769                       XmlWriter::appendStringIParameter(
770               	    params, "Role", message->role);
771                   }
772               
773                   //
774                   //  The Client API has no way to represent a NULL resultRole;
775                   //  An empty string is interpreted as NULL
776                   //
777                   if (message->resultRole != String::EMPTY)
778                   {
779                       XmlWriter::appendStringIParameter(
780               	    params, "ResultRole", message->resultRole);
781                   }
782 mike     1.2  
783                   if (message->includeQualifiers != false)
784 kumpf    1.4  	XmlWriter::appendBooleanIParameter(params, "IncludeQualifiers", true);
785 mike     1.2  
786                   if (message->includeClassOrigin != false)
787 kumpf    1.4  	XmlWriter::appendBooleanIParameter(params, "IncludeClassOrigin", true);
788 mike     1.2  
789                   if (!message->propertyList.isNull())
790 kumpf    1.4  	XmlWriter::appendPropertyListIParameter(
791 mike     1.2  	    params, message->propertyList);
792               
793                   Array<Sint8> buffer = XmlWriter::formatSimpleIMethodReqMessage(_hostName,
794 kumpf    1.13         message->nameSpace, CIMName ("Associators"), message->messageId,
795 kumpf    1.14         message->getHttpMethod(),
796 chuck    1.17         _authenticator->buildRequestAuthHeader(),
797 se.gupta 1.20 		((AcceptLanguageListContainer)message->operationContext.get(AcceptLanguageListContainer::NAME)).getLanguages(),
798               		((ContentLanguageListContainer)message->operationContext.get(ContentLanguageListContainer::NAME)).getLanguages(),
799 chuck    1.17          params);
800 kumpf    1.9  
801 karl     1.18     _sendRequest(buffer);
802 kumpf    1.9  }
803               
804               void CIMOperationRequestEncoder::_encodeExecQueryRequest(
805                   CIMExecQueryRequestMessage* message)
806               {
807                   Array<Sint8> params;
808               
809                   XmlWriter::appendStringIParameter(
810               	params, "QueryLanguage", message->queryLanguage);
811               
812                   XmlWriter::appendStringIParameter(
813               	params, "Query", message->query);
814               
815                   Array<Sint8> buffer = XmlWriter::formatSimpleIMethodReqMessage(_hostName,
816 kumpf    1.13         message->nameSpace, CIMName ("ExecQuery"), message->messageId,
817 kumpf    1.14         message->getHttpMethod(),
818 chuck    1.17         _authenticator->buildRequestAuthHeader(),
819 se.gupta 1.20 		((AcceptLanguageListContainer)message->operationContext.get(AcceptLanguageListContainer::NAME)).getLanguages(),
820               		((ContentLanguageListContainer)message->operationContext.get(ContentLanguageListContainer::NAME)).getLanguages(),
821 chuck    1.17          params);
822 mike     1.2  
823 karl     1.18     _sendRequest(buffer);
824 mike     1.2  }
825               
826               void CIMOperationRequestEncoder::_encodeInvokeMethodRequest(
827                   CIMInvokeMethodRequestMessage* message)
828               {
829                   Array<Sint8> buffer = XmlWriter::formatSimpleMethodReqMessage(_hostName,
830 kumpf    1.13 	message->nameSpace, message->instanceName, message->methodName,
831 kumpf    1.14 	message->inParameters, message->messageId, 
832 chuck    1.17 	message->getHttpMethod(), _authenticator->buildRequestAuthHeader(),
833 se.gupta 1.20 		((AcceptLanguageListContainer)message->operationContext.get(AcceptLanguageListContainer::NAME)).getLanguages(),
834               		((ContentLanguageListContainer)message->operationContext.get(ContentLanguageListContainer::NAME)).getLanguages());
835                       
836 karl     1.18     _sendRequest(buffer);
837               }
838               
839               // Enqueue the buffer to the ouptut queue with a conditional display.
840               // This function is only enabled if the Pegasus Client trace is enabled.
841               // Uses parameter to determine whether to send to console to log.
842               void CIMOperationRequestEncoder::_sendRequest(Array<Sint8>& buffer)
843               {
844               #ifdef PEGASUS_CLIENT_TRACE_ENABLE
845                   if (_showOutput & 1)
846                   {
847                       buffer.append('\0');
848                       XmlWriter::indentedPrint(cout, buffer.getData());
849                       cout << endl;
850                       buffer.remove(buffer.size() - 1);
851                   }
852               	if (_showOutput & 2)
853                   {
854                       buffer.append('\0');
855                       Logger::put(Logger::STANDARD_LOG,
856               					"CIMCLIENT",
857 karl     1.18 					Logger::TRACE,
858               					"CIMOperationRequestEncoder::SendRequest, XML content: $1",
859               					buffer.getData());
860                       buffer.remove(buffer.size() - 1);
861                   }
862               #endif
863 mike     1.2      _outputQueue->enqueue(new HTTPMessage(buffer));
864               }
865 karl     1.18 
866 mike     1.2  
867               PEGASUS_NAMESPACE_END

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2