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

  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 r.kieninger    1.14.4.1 SimpleInstanceResponseHandler::~SimpleInstanceResponseHandler()
130                         {
131                         }
132                         
133 kumpf          1.10     void SimpleInstanceResponseHandler::processing()
134 chip           1.5      {
135                             SimpleResponseHandler::processing();
136                         }
137                         
138 kumpf          1.10     void SimpleInstanceResponseHandler::complete()
139 chip           1.5      {
140                             SimpleResponseHandler::complete();
141                         }
142                         
143 kumpf          1.10     Uint32 SimpleInstanceResponseHandler::size() const
144 chip           1.5      {
145 r.kieninger    1.14.4.1     return _objects.size()+_scmoObjects.size();
146 chip           1.5      }
147                         
148 kumpf          1.10     void SimpleInstanceResponseHandler::clear()
149 chip           1.5      {
150                             _objects.clear();
151 r.kieninger    1.14.4.1     _scmoObjects.clear();
152 chip           1.5      }
153                         
154 kumpf          1.10     void SimpleInstanceResponseHandler::deliver(const CIMInstance& instance)
155 chip           1.5      {
156 marek          1.11         PEG_TRACE_CSTRING(
157                                 TRC_PROVIDERMANAGER,
158                                 Tracer::LEVEL4,
159                                 "SimpleInstanceResponseHandler::deliver()");
160 chip           1.5      
161                             _objects.append(instance);
162                         
163                             send(false);
164                         }
165                         
166 r.kieninger    1.14.4.1 void SimpleInstanceResponseHandler::deliver(const SCMOInstance& instance)
167                         {
168                             PEG_TRACE_CSTRING(
169                                 TRC_PROVIDERMANAGER,
170                                 Tracer::LEVEL4,
171                                 "SimpleInstanceResponseHandler::deliver(SCMOInstance)");
172                         
173                             //fprintf(stderr, "SimpleInstanceResponseHandler::deliver\n");
174                             _scmoObjects.append(instance);
175                         
176                             send(false);
177                         }
178                         
179 kumpf          1.10     void SimpleInstanceResponseHandler::deliver(const Array<CIMInstance>& instances)
180 chip           1.5      {
181                             // call deliver for each object in the array
182 kumpf          1.10         for (Uint32 i = 0, n = instances.size(); i < n; i++)
183 chip           1.5          {
184                                 deliver(instances[i]);
185                             }
186                         }
187                         
188 r.kieninger    1.14.4.1 
189 kumpf          1.10     const Array<CIMInstance> SimpleInstanceResponseHandler::getObjects() const
190 chip           1.5      {
191 kumpf          1.10         return _objects;
192 chip           1.5      }
193                         
194 r.kieninger    1.14.4.1 const Array<SCMOInstance> SimpleInstanceResponseHandler::getSCMOObjects() const
195                         {
196                             return _scmoObjects;
197                         }
198                         
199 chip           1.5      //
200                         // SimpleObjectPathResponseHandler
201                         //
202                         
203 kumpf          1.10     SimpleObjectPathResponseHandler::SimpleObjectPathResponseHandler()
204 chip           1.5      {
205                         }
206                         
207 r.kieninger    1.14.4.1 SimpleObjectPathResponseHandler::~SimpleObjectPathResponseHandler()
208                         {
209                         }
210                         
211 kumpf          1.10     void SimpleObjectPathResponseHandler::processing()
212 chip           1.5      {
213                             SimpleResponseHandler::processing();
214                         }
215                         
216 kumpf          1.10     void SimpleObjectPathResponseHandler::complete()
217 chip           1.5      {
218                             SimpleResponseHandler::complete();
219                         }
220                         
221 kumpf          1.10     Uint32 SimpleObjectPathResponseHandler::size() const
222 chip           1.5      {
223 r.kieninger    1.14.4.1     return _objects.size() + _scmoObjects.size();
224 chip           1.5      }
225                         
226 kumpf          1.10     void SimpleObjectPathResponseHandler::clear()
227 chip           1.5      {
228                             _objects.clear();
229 r.kieninger    1.14.4.1     _scmoObjects.clear();
230 chip           1.5      }
231                         
232 kumpf          1.10     void SimpleObjectPathResponseHandler::deliver(const CIMObjectPath& objectPath)
233 chip           1.5      {
234 marek          1.11         PEG_TRACE_CSTRING(
235                                 TRC_PROVIDERMANAGER,
236                                 Tracer::LEVEL4,
237 chip           1.5              "SimpleObjectPathResponseHandler::deliver()");
238                         
239                             _objects.append(objectPath);
240                         
241                             send(false);
242                         }
243                         
244 r.kieninger    1.14.4.1 void SimpleObjectPathResponseHandler::deliver(const SCMOInstance& objectPath)
245                         {
246                             PEG_TRACE_CSTRING(
247                                 TRC_PROVIDERMANAGER,
248                                 Tracer::LEVEL4,
249                                 "SimpleObjectPathResponseHandler::deliver()");
250                         
251                             _scmoObjects.append(objectPath);
252                         
253                             send(false);
254                         }
255                         
256 kumpf          1.10     void SimpleObjectPathResponseHandler::deliver(
257                             const Array<CIMObjectPath>& objectPaths)
258 chip           1.5      {
259                             // call deliver for each object in the array
260 kumpf          1.10         for (Uint32 i = 0, n = objectPaths.size(); i < n; i++)
261 chip           1.5          {
262                                 deliver(objectPaths[i]);
263                             }
264                         }
265                         
266 kumpf          1.10     const Array<CIMObjectPath> SimpleObjectPathResponseHandler::getObjects() const
267 chip           1.5      {
268 kumpf          1.10         return _objects;
269 chip           1.5      }
270                         
271 r.kieninger    1.14.4.1 const Array<SCMOInstance>
272                         SimpleObjectPathResponseHandler::getSCMOObjects() const
273                         {
274                             return _scmoObjects;
275                         }
276                         
277 chip           1.5      //
278                         // SimpleMethodResultResponseHandler
279                         //
280                         
281 kumpf          1.10     SimpleMethodResultResponseHandler::SimpleMethodResultResponseHandler()
282 chip           1.5      {
283                         }
284                         
285 kumpf          1.10     void SimpleMethodResultResponseHandler::processing()
286 chip           1.5      {
287                             SimpleResponseHandler::processing();
288                         }
289                         
290 kumpf          1.10     void SimpleMethodResultResponseHandler::complete()
291 chip           1.5      {
292                             SimpleResponseHandler::complete();
293                         }
294                         
295 kumpf          1.10     Uint32 SimpleMethodResultResponseHandler::size() const
296 chip           1.5      {
297 kumpf          1.10         return _objects.size();
298 chip           1.5      }
299                         
300 kumpf          1.10     void SimpleMethodResultResponseHandler::clear()
301 chip           1.5      {
302                             _objects.clear();
303                         
304                             _returnValue.clear();
305                         }
306                         
307 kumpf          1.10     void SimpleMethodResultResponseHandler::deliverParamValue(
308                             const CIMParamValue& outParamValue)
309 chip           1.5      {
310                             _objects.append(outParamValue);
311                         
312                             // async delivers not yet supported for parameters
313                             //send(false);
314                         }
315                         
316 kumpf          1.10     void SimpleMethodResultResponseHandler::deliverParamValue(
317                             const Array<CIMParamValue>& outParamValues)
318 chip           1.5      {
319                             // call deliver for each object in the array
320 kumpf          1.10         for (Uint32 i = 0, n = outParamValues.size(); i < n; i++)
321 chip           1.5          {
322                                 deliverParamValue(outParamValues[i]);
323                             }
324                         }
325                         
326 kumpf          1.10     void SimpleMethodResultResponseHandler::deliver(const CIMValue& returnValue)
327 chip           1.5      {
328 marek          1.11         PEG_TRACE_CSTRING(
329                                 TRC_PROVIDERMANAGER,
330                                 Tracer::LEVEL4,
331 chip           1.5              "SimpleMethodResultResponseHandler::deliver()");
332                         
333                             _returnValue = returnValue;
334                         
335                             send(false);
336                         }
337                         
338 kumpf          1.10     const Array<CIMParamValue>
339                             SimpleMethodResultResponseHandler::getParamValues() const
340 chip           1.5      {
341 kumpf          1.10         return _objects;
342 chip           1.5      }
343                         
344 kumpf          1.10     const CIMValue SimpleMethodResultResponseHandler::getReturnValue() const
345 chip           1.5      {
346 kumpf          1.10         return _returnValue;
347 chip           1.5      }
348                         
349                         //
350                         // SimpleIndicationResponseHandler
351                         //
352                         
353 kumpf          1.10     SimpleIndicationResponseHandler::SimpleIndicationResponseHandler()
354 chip           1.5      {
355                         }
356                         
357 kumpf          1.10     void SimpleIndicationResponseHandler::processing()
358 chip           1.5      {
359                             SimpleResponseHandler::processing();
360                         }
361                         
362 kumpf          1.10     void SimpleIndicationResponseHandler::complete()
363 chip           1.5      {
364                             SimpleResponseHandler::complete();
365                         }
366                         
367 kumpf          1.10     Uint32 SimpleIndicationResponseHandler::size() const
368 chip           1.5      {
369 kumpf          1.10         return _objects.size();
370 chip           1.5      }
371                         
372 kumpf          1.10     void SimpleIndicationResponseHandler::clear()
373 chip           1.5      {
374                             _objects.clear();
375                         }
376                         
377 kumpf          1.10     void SimpleIndicationResponseHandler::deliver(const CIMIndication& indication)
378 chip           1.5      {
379 marek          1.11         PEG_TRACE_CSTRING(
380                                 TRC_PROVIDERMANAGER,
381                                 Tracer::LEVEL4,
382 chip           1.5              "SimpleIndicationResponseHandler::deliver()");
383                         
384                             _objects.append(indication);
385                         
386                             send(false);
387                         }
388                         
389 kumpf          1.10     void SimpleIndicationResponseHandler::deliver(
390                             const Array<CIMIndication>& indications)
391 chip           1.5      {
392                             // call deliver for each object in the array
393 kumpf          1.10         for (Uint32 i = 0, n = indications.size(); i < n; i++)
394 chip           1.5          {
395                                 deliver(indications[i]);
396                             }
397                         }
398                         
399                         void SimpleIndicationResponseHandler::deliver(
400 kumpf          1.10         const OperationContext& context,
401                             const CIMIndication& indication)
402 chip           1.5      {
403 marek          1.11         PEG_TRACE_CSTRING(
404                                 TRC_PROVIDERMANAGER,
405                                 Tracer::LEVEL4,
406 chip           1.5              "SimpleIndicationResponseHandler::deliver()");
407                         
408                             _objects.append(indication);
409                         }
410                         
411                         void SimpleIndicationResponseHandler::deliver(
412 kumpf          1.10         const OperationContext& context,
413                             const Array<CIMIndication>& indications)
414 chip           1.5      {
415                             // call deliver for each object in the array
416 kumpf          1.10         for (Uint32 i = 0, n = indications.size(); i < n; i++)
417 chip           1.5          {
418                                 deliver(indications[i]);
419                             }
420                         }
421                         
422 kumpf          1.10     const Array<CIMIndication> SimpleIndicationResponseHandler::getObjects() const
423 chip           1.5      {
424 kumpf          1.10         return _objects;
425 chip           1.5      }
426                         
427                         
428                         //
429                         // SimpleObjectResponseHandler
430                         //
431                         
432 kumpf          1.10     SimpleObjectResponseHandler::SimpleObjectResponseHandler()
433 chip           1.5      {
434                         }
435                         
436 kumpf          1.10     void SimpleObjectResponseHandler::processing()
437 chip           1.5      {
438                             SimpleResponseHandler::processing();
439                         }
440                         
441 kumpf          1.10     void SimpleObjectResponseHandler::complete()
442 chip           1.5      {
443                             SimpleResponseHandler::complete();
444                         }
445                         
446 kumpf          1.10     Uint32 SimpleObjectResponseHandler::size() const
447 chip           1.5      {
448 r.kieninger    1.14.4.2     return _objects.size() + _scmoObjects.size();
449 chip           1.5      }
450                         
451 kumpf          1.10     void SimpleObjectResponseHandler::clear()
452 chip           1.5      {
453                             _objects.clear();
454                         }
455                         
456 kumpf          1.10     void SimpleObjectResponseHandler::deliver(const CIMObject& object)
457 chip           1.5      {
458 marek          1.11         PEG_TRACE_CSTRING(
459                                 TRC_PROVIDERMANAGER,
460                                 Tracer::LEVEL4,
461 chip           1.5              "SimpleObjectResponseHandler::deliver()");
462                         
463                             _objects.append(object);
464                         
465                             send(false);
466                         }
467                         
468 r.kieninger    1.14.4.2 void SimpleObjectResponseHandler::deliver(const SCMOInstance& instance)
469                         {
470                             PEG_TRACE_CSTRING(
471                                 TRC_PROVIDERMANAGER,
472                                 Tracer::LEVEL4,
473                                 "SimpleObjectResponseHandler::deliver(SCMOInstance)");
474                         
475                             _scmoObjects.append(instance);
476                         
477                             send(false);
478                         }
479                         
480 kumpf          1.10     void SimpleObjectResponseHandler::deliver(const Array<CIMObject>& objects)
481 chip           1.5      {
482                             // call deliver for each object in the array
483 kumpf          1.10         for (Uint32 i = 0, n = objects.size(); i < n; i++)
484 chip           1.5          {
485                                 deliver(objects[i]);
486                             }
487                         }
488                         
489 kumpf          1.10     const Array<CIMObject> SimpleObjectResponseHandler::getObjects() const
490 chip           1.5      {
491 kumpf          1.10         return _objects;
492 chip           1.5      }
493                         
494 r.kieninger    1.14.4.2 const Array<SCMOInstance> SimpleObjectResponseHandler::getSCMOObjects() const
495                         {
496                             return _scmoObjects;
497                         }
498                         
499                         
500 chip           1.5      //
501                         // SimpleInstance2ObjectResponseHandler
502                         //
503                         
504 kumpf          1.10     SimpleInstance2ObjectResponseHandler::SimpleInstance2ObjectResponseHandler()
505 chip           1.5      {
506                         }
507                         
508 kumpf          1.10     void SimpleInstance2ObjectResponseHandler::processing()
509 chip           1.5      {
510                             SimpleResponseHandler::processing();
511                         }
512                         
513 kumpf          1.10     void SimpleInstance2ObjectResponseHandler::complete()
514 chip           1.5      {
515                             SimpleResponseHandler::complete();
516                         }
517                         
518 kumpf          1.10     Uint32 SimpleInstance2ObjectResponseHandler::size() const
519 chip           1.5      {
520 kumpf          1.10         return _objects.size();
521 chip           1.5      }
522                         
523 kumpf          1.10     void SimpleInstance2ObjectResponseHandler::clear()
524 chip           1.5      {
525                             _objects.clear();
526                         }
527                         
528 kumpf          1.10     void SimpleInstance2ObjectResponseHandler::deliver(const CIMInstance& object)
529 chip           1.5      {
530 marek          1.11         PEG_TRACE_CSTRING(
531                                 TRC_PROVIDERMANAGER,
532                                 Tracer::LEVEL4,
533 chip           1.5              "SimpleInstance2ObjectResponseHandler::deliver()");
534                         
535                             _objects.append(CIMObject(object));
536                         
537                             // async delivers not yet supported
538                             //send(false);
539                         }
540                         
541 r.kieninger    1.14.4.1 void SimpleInstance2ObjectResponseHandler::deliver(const SCMOInstance& object)
542                         {
543                             PEG_TRACE_CSTRING(
544                                 TRC_PROVIDERMANAGER,
545                                 Tracer::LEVEL4,
546                                 "SimpleInstance2ObjectResponseHandler::deliver(SCMO)");
547                         
548                             //--rk->TBD
549                             //_objects.append(CIMObject(object));
550                         
551                             // async delivers not yet supported
552                             //send(false);
553                         }
554                         
555 kumpf          1.10     void SimpleInstance2ObjectResponseHandler::deliver(
556                             const Array<CIMInstance>& objects)
557 chip           1.5      {
558                             // call deliver for each object in the array
559 kumpf          1.10         for (Uint32 i = 0, n = objects.size(); i < n; i++)
560 chip           1.5          {
561                                 deliver(objects[i]);
562                             }
563                         }
564                         
565 kumpf          1.10     const Array<CIMObject> SimpleInstance2ObjectResponseHandler::getObjects() const
566 chip           1.5      {
567 kumpf          1.10         return _objects;
568 chip           1.5      }
569                         
570                         //
571                         // SimpleValueResponseHandler
572                         //
573                         
574 kumpf          1.10     SimpleValueResponseHandler::SimpleValueResponseHandler()
575 chip           1.5      {
576                         }
577                         
578 kumpf          1.10     void SimpleValueResponseHandler::processing()
579 chip           1.5      {
580                             SimpleResponseHandler::processing();
581                         }
582                         
583 kumpf          1.10     void SimpleValueResponseHandler::complete()
584 chip           1.5      {
585                             SimpleResponseHandler::complete();
586                         }
587                         
588 kumpf          1.10     Uint32 SimpleValueResponseHandler::size() const
589 chip           1.5      {
590 kumpf          1.10         return _objects.size();
591 chip           1.5      }
592                         
593 kumpf          1.10     void SimpleValueResponseHandler::clear()
594 chip           1.5      {
595                             _objects.clear();
596                         }
597                         
598 kumpf          1.10     void SimpleValueResponseHandler::deliver(const CIMValue& value)
599 chip           1.5      {
600 marek          1.11         PEG_TRACE_CSTRING(
601                                 TRC_PROVIDERMANAGER,
602                                 Tracer::LEVEL4,
603 chip           1.5              "SimpleValueResponseHandler::deliver()");
604                         
605                             _objects.append(value);
606                         
607                             send(false);
608                         }
609                         
610 kumpf          1.10     void SimpleValueResponseHandler::deliver(const Array<CIMValue>& values)
611 chip           1.5      {
612                             // call deliver for each object in the array
613 kumpf          1.10         for (Uint32 i = 0, n = values.size(); i < n; i++)
614 chip           1.5          {
615                                 deliver(values[i]);
616                             }
617                         }
618                         
619 kumpf          1.10     const Array<CIMValue> SimpleValueResponseHandler::getObjects() const
620 chip           1.5      {
621 kumpf          1.10         return _objects;
622 brian.campbell 1.3      }
623                         
624 schuur         1.1      PEGASUS_NAMESPACE_END

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2