1 karl 1.8 //%2006////////////////////////////////////////////////////////////////////////
|
2 schuur 1.1 //
|
3 karl 1.2 // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
4 // Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
5 // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
|
6 schuur 1.1 // IBM Corp.; EMC Corporation, The Open Group.
|
7 karl 1.2 // 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.4 // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
10 // EMC Corporation; VERITAS Software Corporation; The Open Group.
|
11 karl 1.8 // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
12 // EMC Corporation; Symantec Corporation; The Open Group.
|
13 schuur 1.1 //
14 // Permission is hereby granted, free of charge, to any person obtaining a copy
15 // of this software and associated documentation files (the "Software"), to
16 // deal in the Software without restriction, including without limitation the
17 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
18 // sell copies of the Software, and to permit persons to whom the Software is
19 // furnished to do so, subject to the following conditions:
|
20 karl 1.8 //
|
21 schuur 1.1 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
22 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
23 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
25 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
26 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
27 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 //
30 //==============================================================================
31 //
32 //%/////////////////////////////////////////////////////////////////////////////
33
|
34 chip 1.5 #include "SimpleResponseHandler.h"
35
36 #include <Pegasus/ProviderManager2/OperationResponseHandler.h>
37
|
38 marek 1.11 #include <Pegasus/Common/Tracer.h>
|
39 schuur 1.1
40 PEGASUS_NAMESPACE_BEGIN
41
|
42 chip 1.5 //
43 // SimpleResponseHandler
44 //
45
|
46 kumpf 1.10 SimpleResponseHandler::SimpleResponseHandler()
|
47 chip 1.5 {
48 }
49
|
50 kumpf 1.10 SimpleResponseHandler::~SimpleResponseHandler()
|
51 chip 1.5 {
52 }
53
|
54 kumpf 1.10 void SimpleResponseHandler::processing()
|
55 chip 1.5 {
|
56 marek 1.11 PEG_TRACE_CSTRING(
57 TRC_PROVIDERMANAGER,
58 Tracer::LEVEL3,
|
59 chip 1.5 "SimpleResponseHandler::processing()");
60 // do nothing
61 }
62
|
63 kumpf 1.10 void SimpleResponseHandler::complete()
|
64 brian.campbell 1.3 {
|
65 marek 1.11 PEG_TRACE_CSTRING(
66 TRC_PROVIDERMANAGER,
67 Tracer::LEVEL3,
|
68 chip 1.5 "SimpleResponseHandler::complete()");
|
69 brian.campbell 1.3
|
70 chip 1.5 send(true);
71 }
|
72 brian.campbell 1.3
|
73 chip 1.5 // return the number of objects in this handler
|
74 kumpf 1.10 Uint32 SimpleResponseHandler::size() const
|
75 chip 1.5 {
|
76 kumpf 1.10 return 0;
|
77 brian.campbell 1.3 }
78
|
79 chip 1.5 // clear any objects in this handler
|
80 kumpf 1.10 void SimpleResponseHandler::clear()
|
81 chip 1.5 {
82 }
|
83 brian.campbell 1.3
|
84 kumpf 1.10 ContentLanguageList SimpleResponseHandler::getLanguages()
|
85 brian.campbell 1.3 {
|
86 marek 1.11 PEG_TRACE_CSTRING(
87 TRC_PROVIDERMANAGER,
88 Tracer::LEVEL3,
|
89 chip 1.5 "SimpleResponseHandler: getLanguages()");
90
|
91 a.dunfey 1.9 ContentLanguageList langs;
|
92 chip 1.5
|
93 a.dunfey 1.9 // Try to get the ContentLanguageList out of the
94 // OperationContext in the base ResponseHandler.
95 OperationContext context = getContext();
|
96 chip 1.5
|
97 kumpf 1.10 if (context.contains(ContentLanguageListContainer::NAME))
|
98 a.dunfey 1.9 {
99 ContentLanguageListContainer cntr =
100 context.get(ContentLanguageListContainer::NAME);
|
101 chip 1.5 langs = cntr.getLanguages();
|
102 a.dunfey 1.9 }
|
103 chip 1.5
|
104 a.dunfey 1.9 return langs;
|
105 chip 1.5 }
106
107 void SimpleResponseHandler::send(Boolean isComplete)
108 {
|
109 kumpf 1.10 // If this was NOT instantiated as a derived OperationResponseHandle class,
110 // then this will be null but is NOT an error. In this case, there is no
111 // response attached, hence no data,so there is nothing to send. else we
112 // have a valid "cross-cast" to the operation side
|
113 chip 1.5
|
114 kumpf 1.10 OperationResponseHandler* operation =
115 dynamic_cast<OperationResponseHandler*>(this);
|
116 chip 1.5
|
117 kumpf 1.10 if (operation)
|
118 chip 1.5 {
119 operation->send(isComplete);
120 }
121 }
122
123 //
124 // SimpleInstanceResponseHandler
125 //
126
|
127 kumpf 1.10 SimpleInstanceResponseHandler::SimpleInstanceResponseHandler()
|
128 chip 1.5 {
129 }
130
|
131 kumpf 1.10 void SimpleInstanceResponseHandler::processing()
|
132 chip 1.5 {
133 SimpleResponseHandler::processing();
134 }
135
|
136 kumpf 1.10 void SimpleInstanceResponseHandler::complete()
|
137 chip 1.5 {
138 SimpleResponseHandler::complete();
139 }
140
|
141 kumpf 1.10 Uint32 SimpleInstanceResponseHandler::size() const
|
142 chip 1.5 {
|
143 kumpf 1.10 return _objects.size();
|
144 chip 1.5 }
145
|
146 kumpf 1.10 void SimpleInstanceResponseHandler::clear()
|
147 chip 1.5 {
148 _objects.clear();
149 }
150
|
151 kumpf 1.10 void SimpleInstanceResponseHandler::deliver(const CIMInstance& instance)
|
152 chip 1.5 {
|
153 marek 1.11 PEG_TRACE_CSTRING(
154 TRC_PROVIDERMANAGER,
155 Tracer::LEVEL4,
156 "SimpleInstanceResponseHandler::deliver()");
|
157 chip 1.5
158 _objects.append(instance);
159
160 send(false);
161 }
162
|
163 kumpf 1.10 void SimpleInstanceResponseHandler::deliver(const Array<CIMInstance>& instances)
|
164 chip 1.5 {
165 // call deliver for each object in the array
|
166 kumpf 1.10 for (Uint32 i = 0, n = instances.size(); i < n; i++)
|
167 chip 1.5 {
168 deliver(instances[i]);
169 }
170 }
171
|
172 kumpf 1.10 const Array<CIMInstance> SimpleInstanceResponseHandler::getObjects() const
|
173 chip 1.5 {
|
174 kumpf 1.10 return _objects;
|
175 chip 1.5 }
176
177 //
178 // SimpleObjectPathResponseHandler
179 //
180
|
181 kumpf 1.10 SimpleObjectPathResponseHandler::SimpleObjectPathResponseHandler()
|
182 chip 1.5 {
183 }
184
|
185 kumpf 1.10 void SimpleObjectPathResponseHandler::processing()
|
186 chip 1.5 {
187 SimpleResponseHandler::processing();
188 }
189
|
190 kumpf 1.10 void SimpleObjectPathResponseHandler::complete()
|
191 chip 1.5 {
192 SimpleResponseHandler::complete();
193 }
194
|
195 kumpf 1.10 Uint32 SimpleObjectPathResponseHandler::size() const
|
196 chip 1.5 {
|
197 kumpf 1.10 return _objects.size();
|
198 chip 1.5 }
199
|
200 kumpf 1.10 void SimpleObjectPathResponseHandler::clear()
|
201 chip 1.5 {
202 _objects.clear();
203 }
204
|
205 kumpf 1.10 void SimpleObjectPathResponseHandler::deliver(const CIMObjectPath& objectPath)
|
206 chip 1.5 {
|
207 marek 1.11 PEG_TRACE_CSTRING(
208 TRC_PROVIDERMANAGER,
209 Tracer::LEVEL4,
|
210 chip 1.5 "SimpleObjectPathResponseHandler::deliver()");
211
212 _objects.append(objectPath);
213
214 send(false);
215 }
216
|
217 kumpf 1.10 void SimpleObjectPathResponseHandler::deliver(
218 const Array<CIMObjectPath>& objectPaths)
|
219 chip 1.5 {
220 // call deliver for each object in the array
|
221 kumpf 1.10 for (Uint32 i = 0, n = objectPaths.size(); i < n; i++)
|
222 chip 1.5 {
223 deliver(objectPaths[i]);
224 }
225 }
226
|
227 kumpf 1.10 const Array<CIMObjectPath> SimpleObjectPathResponseHandler::getObjects() const
|
228 chip 1.5 {
|
229 kumpf 1.10 return _objects;
|
230 chip 1.5 }
231
232 //
233 // SimpleMethodResultResponseHandler
234 //
235
|
236 kumpf 1.10 SimpleMethodResultResponseHandler::SimpleMethodResultResponseHandler()
|
237 chip 1.5 {
238 }
239
|
240 kumpf 1.10 void SimpleMethodResultResponseHandler::processing()
|
241 chip 1.5 {
242 SimpleResponseHandler::processing();
243 }
244
|
245 kumpf 1.10 void SimpleMethodResultResponseHandler::complete()
|
246 chip 1.5 {
247 SimpleResponseHandler::complete();
248 }
249
|
250 kumpf 1.10 Uint32 SimpleMethodResultResponseHandler::size() const
|
251 chip 1.5 {
|
252 kumpf 1.10 return _objects.size();
|
253 chip 1.5 }
254
|
255 kumpf 1.10 void SimpleMethodResultResponseHandler::clear()
|
256 chip 1.5 {
257 _objects.clear();
258
259 _returnValue.clear();
260 }
261
|
262 kumpf 1.10 void SimpleMethodResultResponseHandler::deliverParamValue(
263 const CIMParamValue& outParamValue)
|
264 chip 1.5 {
265 _objects.append(outParamValue);
266
267 // async delivers not yet supported for parameters
268 //send(false);
269 }
270
|
271 kumpf 1.10 void SimpleMethodResultResponseHandler::deliverParamValue(
272 const Array<CIMParamValue>& outParamValues)
|
273 chip 1.5 {
274 // call deliver for each object in the array
|
275 kumpf 1.10 for (Uint32 i = 0, n = outParamValues.size(); i < n; i++)
|
276 chip 1.5 {
277 deliverParamValue(outParamValues[i]);
278 }
279 }
280
|
281 kumpf 1.10 void SimpleMethodResultResponseHandler::deliver(const CIMValue& returnValue)
|
282 chip 1.5 {
|
283 marek 1.11 PEG_TRACE_CSTRING(
284 TRC_PROVIDERMANAGER,
285 Tracer::LEVEL4,
|
286 chip 1.5 "SimpleMethodResultResponseHandler::deliver()");
287
288 _returnValue = returnValue;
289
290 send(false);
291 }
292
|
293 kumpf 1.10 const Array<CIMParamValue>
294 SimpleMethodResultResponseHandler::getParamValues() const
|
295 chip 1.5 {
|
296 kumpf 1.10 return _objects;
|
297 chip 1.5 }
298
|
299 kumpf 1.10 const CIMValue SimpleMethodResultResponseHandler::getReturnValue() const
|
300 chip 1.5 {
|
301 kumpf 1.10 return _returnValue;
|
302 chip 1.5 }
303
304 //
305 // SimpleIndicationResponseHandler
306 //
307
|
308 kumpf 1.10 SimpleIndicationResponseHandler::SimpleIndicationResponseHandler()
|
309 chip 1.5 {
310 }
311
|
312 kumpf 1.10 void SimpleIndicationResponseHandler::processing()
|
313 chip 1.5 {
314 SimpleResponseHandler::processing();
315 }
316
|
317 kumpf 1.10 void SimpleIndicationResponseHandler::complete()
|
318 chip 1.5 {
319 SimpleResponseHandler::complete();
320 }
321
|
322 kumpf 1.10 Uint32 SimpleIndicationResponseHandler::size() const
|
323 chip 1.5 {
|
324 kumpf 1.10 return _objects.size();
|
325 chip 1.5 }
326
|
327 kumpf 1.10 void SimpleIndicationResponseHandler::clear()
|
328 chip 1.5 {
329 _objects.clear();
330 }
331
|
332 kumpf 1.10 void SimpleIndicationResponseHandler::deliver(const CIMIndication& indication)
|
333 chip 1.5 {
|
334 marek 1.11 PEG_TRACE_CSTRING(
335 TRC_PROVIDERMANAGER,
336 Tracer::LEVEL4,
|
337 chip 1.5 "SimpleIndicationResponseHandler::deliver()");
338
339 _objects.append(indication);
340
341 send(false);
342 }
343
|
344 kumpf 1.10 void SimpleIndicationResponseHandler::deliver(
345 const Array<CIMIndication>& indications)
|
346 chip 1.5 {
347 // call deliver for each object in the array
|
348 kumpf 1.10 for (Uint32 i = 0, n = indications.size(); i < n; i++)
|
349 chip 1.5 {
350 deliver(indications[i]);
351 }
352 }
353
354 void SimpleIndicationResponseHandler::deliver(
|
355 kumpf 1.10 const OperationContext& context,
356 const CIMIndication& indication)
|
357 chip 1.5 {
|
358 marek 1.11 PEG_TRACE_CSTRING(
359 TRC_PROVIDERMANAGER,
360 Tracer::LEVEL4,
|
361 chip 1.5 "SimpleIndicationResponseHandler::deliver()");
362
363 _objects.append(indication);
364 }
365
366 void SimpleIndicationResponseHandler::deliver(
|
367 kumpf 1.10 const OperationContext& context,
368 const Array<CIMIndication>& indications)
|
369 chip 1.5 {
370 // call deliver for each object in the array
|
371 kumpf 1.10 for (Uint32 i = 0, n = indications.size(); i < n; i++)
|
372 chip 1.5 {
373 deliver(indications[i]);
374 }
375 }
376
|
377 kumpf 1.10 const Array<CIMIndication> SimpleIndicationResponseHandler::getObjects() const
|
378 chip 1.5 {
|
379 kumpf 1.10 return _objects;
|
380 chip 1.5 }
381
382
383 //
384 // SimpleObjectResponseHandler
385 //
386
|
387 kumpf 1.10 SimpleObjectResponseHandler::SimpleObjectResponseHandler()
|
388 chip 1.5 {
389 }
390
|
391 kumpf 1.10 void SimpleObjectResponseHandler::processing()
|
392 chip 1.5 {
393 SimpleResponseHandler::processing();
394 }
395
|
396 kumpf 1.10 void SimpleObjectResponseHandler::complete()
|
397 chip 1.5 {
398 SimpleResponseHandler::complete();
399 }
400
|
401 kumpf 1.10 Uint32 SimpleObjectResponseHandler::size() const
|
402 chip 1.5 {
|
403 kumpf 1.10 return _objects.size();
|
404 chip 1.5 }
405
|
406 kumpf 1.10 void SimpleObjectResponseHandler::clear()
|
407 chip 1.5 {
408 _objects.clear();
409 }
410
|
411 kumpf 1.10 void SimpleObjectResponseHandler::deliver(const CIMObject& object)
|
412 chip 1.5 {
|
413 marek 1.11 PEG_TRACE_CSTRING(
414 TRC_PROVIDERMANAGER,
415 Tracer::LEVEL4,
|
416 chip 1.5 "SimpleObjectResponseHandler::deliver()");
417
418 _objects.append(object);
419
420 send(false);
421 }
422
|
423 kumpf 1.10 void SimpleObjectResponseHandler::deliver(const Array<CIMObject>& objects)
|
424 chip 1.5 {
425 // call deliver for each object in the array
|
426 kumpf 1.10 for (Uint32 i = 0, n = objects.size(); i < n; i++)
|
427 chip 1.5 {
428 deliver(objects[i]);
429 }
430 }
431
|
432 kumpf 1.10 const Array<CIMObject> SimpleObjectResponseHandler::getObjects() const
|
433 chip 1.5 {
|
434 kumpf 1.10 return _objects;
|
435 chip 1.5 }
436
437 //
438 // SimpleInstance2ObjectResponseHandler
439 //
440
|
441 kumpf 1.10 SimpleInstance2ObjectResponseHandler::SimpleInstance2ObjectResponseHandler()
|
442 chip 1.5 {
443 }
444
|
445 kumpf 1.10 void SimpleInstance2ObjectResponseHandler::processing()
|
446 chip 1.5 {
447 SimpleResponseHandler::processing();
448 }
449
|
450 kumpf 1.10 void SimpleInstance2ObjectResponseHandler::complete()
|
451 chip 1.5 {
452 SimpleResponseHandler::complete();
453 }
454
|
455 kumpf 1.10 Uint32 SimpleInstance2ObjectResponseHandler::size() const
|
456 chip 1.5 {
|
457 kumpf 1.10 return _objects.size();
|
458 chip 1.5 }
459
|
460 kumpf 1.10 void SimpleInstance2ObjectResponseHandler::clear()
|
461 chip 1.5 {
462 _objects.clear();
463 }
464
|
465 kumpf 1.10 void SimpleInstance2ObjectResponseHandler::deliver(const CIMInstance& object)
|
466 chip 1.5 {
|
467 marek 1.11 PEG_TRACE_CSTRING(
468 TRC_PROVIDERMANAGER,
469 Tracer::LEVEL4,
|
470 chip 1.5 "SimpleInstance2ObjectResponseHandler::deliver()");
471
472 _objects.append(CIMObject(object));
473
474 // async delivers not yet supported
475 //send(false);
476 }
477
|
478 kumpf 1.10 void SimpleInstance2ObjectResponseHandler::deliver(
479 const Array<CIMInstance>& objects)
|
480 chip 1.5 {
481 // call deliver for each object in the array
|
482 kumpf 1.10 for (Uint32 i = 0, n = objects.size(); i < n; i++)
|
483 chip 1.5 {
484 deliver(objects[i]);
485 }
486 }
487
|
488 kumpf 1.10 const Array<CIMObject> SimpleInstance2ObjectResponseHandler::getObjects() const
|
489 chip 1.5 {
|
490 kumpf 1.10 return _objects;
|
491 chip 1.5 }
492
493 //
494 // SimpleValueResponseHandler
495 //
496
|
497 kumpf 1.10 SimpleValueResponseHandler::SimpleValueResponseHandler()
|
498 chip 1.5 {
499 }
500
|
501 kumpf 1.10 void SimpleValueResponseHandler::processing()
|
502 chip 1.5 {
503 SimpleResponseHandler::processing();
504 }
505
|
506 kumpf 1.10 void SimpleValueResponseHandler::complete()
|
507 chip 1.5 {
508 SimpleResponseHandler::complete();
509 }
510
|
511 kumpf 1.10 Uint32 SimpleValueResponseHandler::size() const
|
512 chip 1.5 {
|
513 kumpf 1.10 return _objects.size();
|
514 chip 1.5 }
515
|
516 kumpf 1.10 void SimpleValueResponseHandler::clear()
|
517 chip 1.5 {
518 _objects.clear();
519 }
520
|
521 kumpf 1.10 void SimpleValueResponseHandler::deliver(const CIMValue& value)
|
522 chip 1.5 {
|
523 marek 1.11 PEG_TRACE_CSTRING(
524 TRC_PROVIDERMANAGER,
525 Tracer::LEVEL4,
|
526 chip 1.5 "SimpleValueResponseHandler::deliver()");
527
528 _objects.append(value);
529
530 send(false);
531 }
532
|
533 kumpf 1.10 void SimpleValueResponseHandler::deliver(const Array<CIMValue>& values)
|
534 chip 1.5 {
535 // call deliver for each object in the array
|
536 kumpf 1.10 for (Uint32 i = 0, n = values.size(); i < n; i++)
|
537 chip 1.5 {
538 deliver(values[i]);
539 }
540 }
541
|
542 kumpf 1.10 const Array<CIMValue> SimpleValueResponseHandler::getObjects() const
|
543 chip 1.5 {
|
544 kumpf 1.10 return _objects;
|
545 brian.campbell 1.3 }
546
|
547 schuur 1.1 PEGASUS_NAMESPACE_END
|