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