BUG#: 7626
[tpot/pegasus/.git] / src / Pegasus / Common / CIMMessage.h
1 //%LICENSE////////////////////////////////////////////////////////////////
2 //
3 // 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 //
10 // 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 //
17 // The above copyright notice and this permission notice shall be included
18 // in all copies or substantial portions of the Software.
19 //
20 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
21 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22 // 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 //
28 //////////////////////////////////////////////////////////////////////////
29 //
30 //%/////////////////////////////////////////////////////////////////////////////
31
32 #ifndef Pegasus_CIMMessage_h
33 #define Pegasus_CIMMessage_h
34
35 #include <Pegasus/Common/Config.h>
36 #include <Pegasus/Common/Message.h>
37 #include <Pegasus/Common/CIMParamValue.h>
38 #include <Pegasus/Common/CIMClass.h>
39 #include <Pegasus/Common/CIMInstance.h>
40 #include <Pegasus/Common/CIMQualifierDecl.h>
41 #include <Pegasus/Common/CIMObject.h>
42 #include <Pegasus/Common/CIMObjectPath.h>
43 #include <Pegasus/Common/CIMPropertyList.h>
44 #include <Pegasus/Common/XmlWriter.h>
45 #include <Pegasus/Common/Linkage.h>
46 #include <Pegasus/Common/OperationContext.h>
47 #include <Pegasus/Common/AcceptLanguageList.h>
48 #include <Pegasus/Common/ContentLanguageList.h>
49 #include <Pegasus/Common/Pair.h>
50 #include <Pegasus/Common/ArrayInternal.h>
51 #include <Pegasus/Common/Threads.h>
52 #include <Pegasus/Common/Thread.h>
53 #include <Pegasus/Common/CIMResponseData.h>
54
55 /*   ProviderType should become part of Pegasus/Common     PEP# 99
56    #include <Pegasus/ProviderManager2/ProviderType.h>
57    #define TYPE_INSTANCE    ProviderType::INSTANCE
58    #define TYPE_CLASS       ProviderType::CLASS
59    #define TYPE_METHOD      ProviderType::METHOD
60    #define TYPE_ASSOCIATION ProviderType::ASSOCIATION
61    #define TYPE_QUERY       ProviderType::QUERY
62 */
63 // using these equations instead      PEP# 99
64 #define TYPE_CLASS       1
65 #define TYPE_INSTANCE    2
66 #define TYPE_ASSOCIATION 3
67 #define TYPE_METHOD      5
68 #define TYPE_QUERY       7
69
70
71 PEGASUS_NAMESPACE_BEGIN
72
73 class PEGASUS_COMMON_LINKAGE CIMMessage : public Message
74 {
75 public:
76
77     CIMMessage(MessageType type, const String& messageId_);
78
79     /**
80         Updates the language context for the thread to the contents of the
81         AcceptLanguageContainer in the OperationContext.
82     */
83     void updateThreadLanguages()
84     {
85         if (!Threads::equal(_languageContextThreadId, Threads::self()))
86         {
87             Thread::setLanguages(
88                 ((AcceptLanguageListContainer)operationContext.get(
89                     AcceptLanguageListContainer::NAME)).getLanguages());
90             _languageContextThreadId = Threads::self();
91         }
92     }
93
94 #ifndef PEGASUS_DISABLE_PERFINST
95     //
96     // Needed for performance measurement
97     //
98
99     Uint64 getServerStartTime() const
100     {
101         return _serverStartTimeMicroseconds;
102     }
103
104     void setServerStartTime(Uint64 serverStartTimeMicroseconds)
105     {
106         _serverStartTimeMicroseconds = serverStartTimeMicroseconds;
107     }
108
109     void endServer();
110
111     Uint64 getProviderTime() const
112     {
113         return _providerTimeMicroseconds;
114     }
115
116     void setProviderTime(Uint64 providerTimeMicroseconds)
117     {
118         _providerTimeMicroseconds = providerTimeMicroseconds;
119     }
120
121     Uint64 getTotalServerTime() const
122     {
123         return _totalServerTimeMicroseconds;
124     }
125
126     void setTotalServerTime(Uint64 totalServerTimeMicroseconds)
127     {
128         _totalServerTimeMicroseconds = totalServerTimeMicroseconds;
129     }
130 #endif
131
132     String messageId;
133     OperationContext operationContext;
134
135     // This flag indicates that the original request was a binary request.
136     // That is the HTTP "Content-Type" header had a value of
137     // "application/x-openpegasus". It does not necessarily follow that
138     // the response to this request must also be binary. Binary requests
139     // may have XML responses.
140     Boolean binaryRequest;
141
142     // This flag indications that the ultimate response to this message
143     // must be sent as binary response. This means the original request's
144     // "Accept" HTTP header had a value of "application/x-openpegasus".
145     // Note that a binary response can be sent to an XML request as long
146     // as the "Accept" header is "application/x-openpegasus".
147     Boolean binaryResponse;
148
149 private:
150
151     ThreadType _languageContextThreadId;
152
153 #ifndef PEGASUS_DISABLE_PERFINST
154     Uint64 _serverStartTimeMicroseconds;
155     Uint64 _providerTimeMicroseconds;
156     Uint64 _totalServerTimeMicroseconds;
157 #endif
158 };
159
160
161 class CIMResponseMessage;
162
163 class PEGASUS_COMMON_LINKAGE CIMRequestMessage : public CIMMessage
164 {
165 public:
166     CIMRequestMessage(
167         MessageType type_,
168         const String& messageId_,
169         const QueueIdStack& queueIds_);
170
171     virtual CIMResponseMessage* buildResponse() const = 0;
172
173     QueueIdStack queueIds;
174 };
175
176
177 class PEGASUS_COMMON_LINKAGE CIMResponseMessage : public CIMMessage
178 {
179 public:
180
181     CIMResponseMessage(
182         MessageType type_,
183         const String& messageId_,
184         const CIMException& cimException_,
185         const QueueIdStack& queueIds_,
186         Boolean isAsyncResponsePending=false);
187
188     void syncAttributes(const CIMRequestMessage* request);
189
190     QueueIdStack queueIds;
191     CIMException cimException;
192
193     // This flag indicates if the response will arrive asynchronously.
194     Boolean isAsyncResponsePending;
195
196 };
197
198 //
199 // CIMRequestMessages
200 //
201 class PEGASUS_COMMON_LINKAGE CIMOperationRequestMessage
202     : public CIMRequestMessage
203 {
204 public:
205
206     CIMOperationRequestMessage(
207         MessageType type_,
208         const String& messageId_,
209         const QueueIdStack& queueIds_,
210         const String& authType_,
211         const String& userName_,
212         const CIMNamespaceName& nameSpace_,
213         const CIMName& className_,
214         Uint32 providerType_ = TYPE_INSTANCE);
215
216     String authType;
217     String userName;
218     String ipAddress;
219     CIMNamespaceName nameSpace;
220     CIMName className;
221     Uint32 providerType;
222 };
223
224 class PEGASUS_COMMON_LINKAGE CIMIndicationRequestMessage
225     : public CIMRequestMessage
226 {
227 public:
228     CIMIndicationRequestMessage(
229         MessageType type_,
230         const String & messageId_,
231         const QueueIdStack& queueIds_,
232         const String& authType_,
233         const String& userName_)
234         :
235         CIMRequestMessage(type_, messageId_, queueIds_),
236         authType(authType_),
237         userName(userName_)
238     {
239     }
240
241     String authType;
242     String userName;
243 };
244
245 class PEGASUS_COMMON_LINKAGE CIMGetClassRequestMessage
246     : public CIMOperationRequestMessage
247 {
248 public:
249     CIMGetClassRequestMessage(
250         const String& messageId_,
251         const CIMNamespaceName& nameSpace_,
252         const CIMName& className_,
253         Boolean localOnly_,
254         Boolean includeQualifiers_,
255         Boolean includeClassOrigin_,
256         const CIMPropertyList& propertyList_,
257         const QueueIdStack& queueIds_,
258         const String& authType_ = String::EMPTY,
259         const String& userName_ = String::EMPTY)
260     : CIMOperationRequestMessage(CIM_GET_CLASS_REQUEST_MESSAGE,
261          messageId_, queueIds_,
262          authType_, userName_,
263          nameSpace_,className_,
264          TYPE_CLASS),
265         localOnly(localOnly_),
266         includeQualifiers(includeQualifiers_),
267         includeClassOrigin(includeClassOrigin_),
268         propertyList(propertyList_)
269     {
270     }
271
272     virtual CIMResponseMessage* buildResponse() const;
273
274     Boolean localOnly;
275     Boolean includeQualifiers;
276     Boolean includeClassOrigin;
277     CIMPropertyList propertyList;
278 };
279
280 class PEGASUS_COMMON_LINKAGE CIMGetInstanceRequestMessage
281     : public CIMOperationRequestMessage
282 {
283 public:
284     CIMGetInstanceRequestMessage(
285         const String& messageId_,
286         const CIMNamespaceName& nameSpace_,
287         const CIMObjectPath& instanceName_,
288         Boolean includeQualifiers_,
289         Boolean includeClassOrigin_,
290         const CIMPropertyList& propertyList_,
291         const QueueIdStack& queueIds_,
292         const String& authType_ = String::EMPTY,
293         const String& userName_ = String::EMPTY)
294     : CIMOperationRequestMessage(
295         CIM_GET_INSTANCE_REQUEST_MESSAGE, messageId_, queueIds_,
296          authType_, userName_,
297          nameSpace_,instanceName_.getClassName()),
298         instanceName(instanceName_),
299         localOnly(false),
300         includeQualifiers(includeQualifiers_),
301         includeClassOrigin(includeClassOrigin_),
302         propertyList(propertyList_)
303     {
304     }
305
306     virtual CIMResponseMessage* buildResponse() const;
307
308     CIMObjectPath instanceName;
309     Boolean localOnly;    // deprecated
310     Boolean includeQualifiers;
311     Boolean includeClassOrigin;
312     CIMPropertyList propertyList;
313 };
314
315 class PEGASUS_COMMON_LINKAGE CIMExportIndicationRequestMessage
316     : public CIMRequestMessage
317 {
318 public:
319     CIMExportIndicationRequestMessage(
320         const String& messageId_,
321         const String& destinationPath_,
322         const CIMInstance& indicationInstance_,
323         const QueueIdStack& queueIds_,
324         const String& authType_ = String::EMPTY,
325         const String& userName_ = String::EMPTY)
326     : CIMRequestMessage(
327         CIM_EXPORT_INDICATION_REQUEST_MESSAGE, messageId_, queueIds_),
328         destinationPath(destinationPath_),
329         indicationInstance(indicationInstance_),
330         authType(authType_),
331         userName(userName_)
332     {
333     }
334
335     virtual CIMResponseMessage* buildResponse() const;
336
337     String destinationPath;
338     CIMInstance indicationInstance;
339     String authType;
340     String userName;
341     String ipAddress;
342 };
343
344 class PEGASUS_COMMON_LINKAGE CIMDeleteClassRequestMessage
345     : public CIMOperationRequestMessage
346 {
347 public:
348     CIMDeleteClassRequestMessage(
349         const String& messageId_,
350         const CIMNamespaceName& nameSpace_,
351         const CIMName& className_,
352         const QueueIdStack& queueIds_,
353         const String& authType_ = String::EMPTY,
354         const String& userName_ = String::EMPTY)
355     : CIMOperationRequestMessage(
356         CIM_DELETE_CLASS_REQUEST_MESSAGE, messageId_, queueIds_,
357          authType_, userName_,
358          nameSpace_,className_,
359          TYPE_CLASS)
360     {
361     }
362
363     virtual CIMResponseMessage* buildResponse() const;
364 };
365
366 class PEGASUS_COMMON_LINKAGE CIMDeleteInstanceRequestMessage
367     : public CIMOperationRequestMessage
368 {
369 public:
370     CIMDeleteInstanceRequestMessage(
371         const String& messageId_,
372         const CIMNamespaceName& nameSpace_,
373         const CIMObjectPath& instanceName_,
374         const QueueIdStack& queueIds_,
375         const String& authType_ = String::EMPTY,
376         const String& userName_ = String::EMPTY)
377     : CIMOperationRequestMessage(
378         CIM_DELETE_INSTANCE_REQUEST_MESSAGE, messageId_, queueIds_,
379          authType_, userName_,
380          nameSpace_,instanceName_.getClassName()),
381         instanceName(instanceName_)
382     {
383     }
384
385     virtual CIMResponseMessage* buildResponse() const;
386
387     CIMObjectPath instanceName;
388 };
389
390 class PEGASUS_COMMON_LINKAGE CIMCreateClassRequestMessage
391     : public CIMOperationRequestMessage
392 {
393 public:
394     CIMCreateClassRequestMessage(
395         const String& messageId_,
396         const CIMNamespaceName& nameSpace_,
397         const CIMClass& newClass_,
398         const QueueIdStack& queueIds_,
399         const String& authType_ = String::EMPTY,
400         const String& userName_ = String::EMPTY)
401     : CIMOperationRequestMessage(
402         CIM_CREATE_CLASS_REQUEST_MESSAGE, messageId_, queueIds_,
403          authType_, userName_,
404          nameSpace_,newClass_.getClassName(),
405          TYPE_CLASS),
406         newClass(newClass_)
407     {
408     }
409
410     virtual CIMResponseMessage* buildResponse() const;
411
412     CIMClass newClass;
413 };
414
415 class PEGASUS_COMMON_LINKAGE CIMCreateInstanceRequestMessage
416     : public CIMOperationRequestMessage
417 {
418 public:
419     CIMCreateInstanceRequestMessage(
420         const String& messageId_,
421         const CIMNamespaceName& nameSpace_,
422         const CIMInstance& newInstance_,
423         const QueueIdStack& queueIds_,
424         const String& authType_ = String::EMPTY,
425         const String& userName_ = String::EMPTY)
426     : CIMOperationRequestMessage(
427         CIM_CREATE_INSTANCE_REQUEST_MESSAGE, messageId_, queueIds_,
428          authType_, userName_,
429          nameSpace_,newInstance_.getClassName()),
430         newInstance(newInstance_)
431     {
432     }
433
434     virtual CIMResponseMessage* buildResponse() const;
435
436     CIMInstance newInstance;
437 };
438
439 class PEGASUS_COMMON_LINKAGE CIMModifyClassRequestMessage
440     : public CIMOperationRequestMessage
441 {
442 public:
443     CIMModifyClassRequestMessage(
444         const String& messageId_,
445         const CIMNamespaceName& nameSpace_,
446         const CIMClass& modifiedClass_,
447         const QueueIdStack& queueIds_,
448         const String& authType_ = String::EMPTY,
449         const String& userName_ = String::EMPTY)
450     : CIMOperationRequestMessage(
451         CIM_MODIFY_CLASS_REQUEST_MESSAGE, messageId_, queueIds_,
452          authType_, userName_,
453          nameSpace_,modifiedClass_.getClassName(),
454          TYPE_CLASS),
455         modifiedClass(modifiedClass_)
456     {
457     }
458
459     virtual CIMResponseMessage* buildResponse() const;
460
461     CIMClass modifiedClass;
462 };
463
464 class PEGASUS_COMMON_LINKAGE CIMModifyInstanceRequestMessage
465     : public CIMOperationRequestMessage
466 {
467 public:
468     CIMModifyInstanceRequestMessage(
469         const String& messageId_,
470         const CIMNamespaceName& nameSpace_,
471         const CIMInstance& modifiedInstance_,
472         Boolean includeQualifiers_,
473         const CIMPropertyList& propertyList_,
474         const QueueIdStack& queueIds_,
475         const String& authType_ = String::EMPTY,
476         const String& userName_ = String::EMPTY)
477     : CIMOperationRequestMessage(
478         CIM_MODIFY_INSTANCE_REQUEST_MESSAGE, messageId_, queueIds_,
479          authType_, userName_,
480          nameSpace_,modifiedInstance_.getClassName()),
481         modifiedInstance(modifiedInstance_),
482         includeQualifiers(includeQualifiers_),
483         propertyList(propertyList_)
484     {
485     }
486
487     virtual CIMResponseMessage* buildResponse() const;
488
489     CIMInstance modifiedInstance;
490     Boolean includeQualifiers;
491     CIMPropertyList propertyList;
492 };
493
494 class PEGASUS_COMMON_LINKAGE CIMEnumerateClassesRequestMessage
495     : public CIMOperationRequestMessage
496 {
497 public:
498     CIMEnumerateClassesRequestMessage(
499         const String& messageId_,
500         const CIMNamespaceName& nameSpace_,
501         const CIMName& className_,
502         Boolean deepInheritance_,
503         Boolean localOnly_,
504         Boolean includeQualifiers_,
505         Boolean includeClassOrigin_,
506         const QueueIdStack& queueIds_,
507         const String& authType_ = String::EMPTY,
508         const String& userName_ = String::EMPTY)
509     : CIMOperationRequestMessage(
510         CIM_ENUMERATE_CLASSES_REQUEST_MESSAGE, messageId_, queueIds_,
511          authType_, userName_,
512          nameSpace_,className_,
513          TYPE_CLASS),
514         deepInheritance(deepInheritance_),
515         localOnly(localOnly_),
516         includeQualifiers(includeQualifiers_),
517         includeClassOrigin(includeClassOrigin_)
518     {
519     }
520
521     virtual CIMResponseMessage* buildResponse() const;
522
523     Boolean deepInheritance;
524     Boolean localOnly;
525     Boolean includeQualifiers;
526     Boolean includeClassOrigin;
527 };
528
529 class PEGASUS_COMMON_LINKAGE CIMEnumerateClassNamesRequestMessage
530     : public CIMOperationRequestMessage
531 {
532 public:
533     CIMEnumerateClassNamesRequestMessage(
534         const String& messageId_,
535         const CIMNamespaceName& nameSpace_,
536         const CIMName& className_,
537         Boolean deepInheritance_,
538         const QueueIdStack& queueIds_,
539         const String& authType_ = String::EMPTY,
540         const String& userName_ = String::EMPTY)
541     : CIMOperationRequestMessage(
542         CIM_ENUMERATE_CLASS_NAMES_REQUEST_MESSAGE, messageId_, queueIds_,
543          authType_, userName_,
544          nameSpace_,className_,
545          TYPE_CLASS),
546         deepInheritance(deepInheritance_)
547     {
548     }
549
550     virtual CIMResponseMessage* buildResponse() const;
551
552     Boolean deepInheritance;
553 };
554
555 class PEGASUS_COMMON_LINKAGE CIMEnumerateInstancesRequestMessage
556     : public CIMOperationRequestMessage
557 {
558 public:
559     CIMEnumerateInstancesRequestMessage(
560         const String& messageId_,
561         const CIMNamespaceName& nameSpace_,
562         const CIMName& className_,
563         Boolean deepInheritance_,
564         Boolean includeQualifiers_,
565         Boolean includeClassOrigin_,
566         const CIMPropertyList& propertyList_,
567         const QueueIdStack& queueIds_,
568         const String& authType_ = String::EMPTY,
569         const String& userName_ = String::EMPTY)
570     : CIMOperationRequestMessage(
571         CIM_ENUMERATE_INSTANCES_REQUEST_MESSAGE, messageId_, queueIds_,
572          authType_, userName_,
573          nameSpace_,className_),
574         deepInheritance(deepInheritance_),
575         localOnly(false),
576         includeQualifiers(includeQualifiers_),
577         includeClassOrigin(includeClassOrigin_),
578         propertyList(propertyList_)
579     {
580     }
581
582     virtual CIMResponseMessage* buildResponse() const;
583
584     Boolean deepInheritance;
585     Boolean localOnly;    // deprecated
586     Boolean includeQualifiers;
587     Boolean includeClassOrigin;
588     CIMPropertyList propertyList;
589 };
590
591 class PEGASUS_COMMON_LINKAGE CIMEnumerateInstanceNamesRequestMessage
592     : public CIMOperationRequestMessage
593 {
594 public:
595     CIMEnumerateInstanceNamesRequestMessage(
596         const String& messageId_,
597         const CIMNamespaceName& nameSpace_,
598         const CIMName& className_,
599         const QueueIdStack& queueIds_,
600         const String& authType_ = String::EMPTY,
601         const String& userName_ = String::EMPTY)
602     : CIMOperationRequestMessage(
603         CIM_ENUMERATE_INSTANCE_NAMES_REQUEST_MESSAGE, messageId_, queueIds_,
604          authType_, userName_,
605          nameSpace_, className_)
606     {
607     }
608
609     virtual CIMResponseMessage* buildResponse() const;
610 };
611
612
613 class PEGASUS_COMMON_LINKAGE CIMExecQueryRequestMessage
614     : public CIMOperationRequestMessage
615 {
616 public:
617     CIMExecQueryRequestMessage(
618         const String& messageId_,
619         const CIMNamespaceName& nameSpace_,
620         const String& queryLanguage_,
621         const String& query_,
622         const QueueIdStack& queueIds_,
623         const String& authType_ = String::EMPTY,
624         const String& userName_ = String::EMPTY)
625     : CIMOperationRequestMessage(CIM_EXEC_QUERY_REQUEST_MESSAGE,
626          messageId_, queueIds_,
627          authType_, userName_,
628          nameSpace_,CIMName(),
629          TYPE_QUERY),
630         queryLanguage(queryLanguage_),
631         query(query_)
632     {
633     }
634
635     virtual CIMResponseMessage* buildResponse() const;
636
637     String queryLanguage;
638     String query;
639 };
640
641 class PEGASUS_COMMON_LINKAGE CIMAssociatorsRequestMessage
642     : public CIMOperationRequestMessage
643 {
644 public:
645     CIMAssociatorsRequestMessage(
646         const String& messageId_,
647         const CIMNamespaceName& nameSpace_,
648         const CIMObjectPath& objectName_,
649         const CIMName& assocClass_,
650         const CIMName& resultClass_,
651         const String& role_,
652         const String& resultRole_,
653         Boolean includeQualifiers_,
654         Boolean includeClassOrigin_,
655         const CIMPropertyList& propertyList_,
656         const QueueIdStack& queueIds_,
657         const String& authType_ = String::EMPTY,
658         const String& userName_ = String::EMPTY)
659     : CIMOperationRequestMessage(
660         CIM_ASSOCIATORS_REQUEST_MESSAGE, messageId_, queueIds_,
661          authType_, userName_,
662          nameSpace_,objectName_.getClassName(),
663          TYPE_ASSOCIATION),
664         objectName(objectName_),
665         assocClass(assocClass_),
666         resultClass(resultClass_),
667         role(role_),
668         resultRole(resultRole_),
669         includeQualifiers(includeQualifiers_),
670         includeClassOrigin(includeClassOrigin_),
671         propertyList(propertyList_)
672     {
673     }
674
675     virtual CIMResponseMessage* buildResponse() const;
676
677     CIMObjectPath objectName;
678     CIMName assocClass;
679     CIMName resultClass;
680     String role;
681     String resultRole;
682     Boolean includeQualifiers;
683     Boolean includeClassOrigin;
684     CIMPropertyList propertyList;
685 };
686
687 class PEGASUS_COMMON_LINKAGE CIMAssociatorNamesRequestMessage
688     : public CIMOperationRequestMessage
689 {
690 public:
691     CIMAssociatorNamesRequestMessage(
692         const String& messageId_,
693         const CIMNamespaceName& nameSpace_,
694         const CIMObjectPath& objectName_,
695         const CIMName& assocClass_,
696         const CIMName& resultClass_,
697         const String& role_,
698         const String& resultRole_,
699         const QueueIdStack& queueIds_,
700         const String& authType_ = String::EMPTY,
701         const String& userName_ = String::EMPTY)
702     : CIMOperationRequestMessage(
703         CIM_ASSOCIATOR_NAMES_REQUEST_MESSAGE, messageId_, queueIds_,
704          authType_, userName_,
705          nameSpace_,objectName_.getClassName(),
706          TYPE_ASSOCIATION),
707         objectName(objectName_),
708         assocClass(assocClass_),
709         resultClass(resultClass_),
710         role(role_),
711         resultRole(resultRole_)
712     {
713     }
714
715     virtual CIMResponseMessage* buildResponse() const;
716
717     CIMObjectPath objectName;
718     CIMName assocClass;
719     CIMName resultClass;
720     String role;
721     String resultRole;
722 };
723
724 class PEGASUS_COMMON_LINKAGE CIMReferencesRequestMessage
725     : public CIMOperationRequestMessage
726 {
727 public:
728     CIMReferencesRequestMessage(
729         const String& messageId_,
730         const CIMNamespaceName& nameSpace_,
731         const CIMObjectPath& objectName_,
732         const CIMName& resultClass_,
733         const String& role_,
734         Boolean includeQualifiers_,
735         Boolean includeClassOrigin_,
736         const CIMPropertyList& propertyList_,
737         const QueueIdStack& queueIds_,
738         const String& authType_ = String::EMPTY,
739         const String& userName_ = String::EMPTY)
740     : CIMOperationRequestMessage(
741          CIM_REFERENCES_REQUEST_MESSAGE, messageId_, queueIds_,
742          authType_, userName_,
743          nameSpace_,objectName_.getClassName(),
744          TYPE_ASSOCIATION),
745         objectName(objectName_),
746         resultClass(resultClass_),
747         role(role_),
748         includeQualifiers(includeQualifiers_),
749         includeClassOrigin(includeClassOrigin_),
750         propertyList(propertyList_)
751     {
752     }
753
754     virtual CIMResponseMessage* buildResponse() const;
755
756     CIMObjectPath objectName;
757     CIMName resultClass;
758     String role;
759     Boolean includeQualifiers;
760     Boolean includeClassOrigin;
761     CIMPropertyList propertyList;
762 };
763
764 class PEGASUS_COMMON_LINKAGE CIMReferenceNamesRequestMessage
765     : public CIMOperationRequestMessage
766 {
767 public:
768     CIMReferenceNamesRequestMessage(
769         const String& messageId_,
770         const CIMNamespaceName& nameSpace_,
771         const CIMObjectPath& objectName_,
772         const CIMName& resultClass_,
773         const String& role_,
774         const QueueIdStack& queueIds_,
775         const String& authType_ = String::EMPTY,
776         const String& userName_ = String::EMPTY)
777     : CIMOperationRequestMessage(
778         CIM_REFERENCE_NAMES_REQUEST_MESSAGE, messageId_, queueIds_,
779          authType_, userName_,
780          nameSpace_,objectName_.getClassName(),
781          TYPE_ASSOCIATION),
782         objectName(objectName_),
783         resultClass(resultClass_),
784         role(role_)
785     {
786     }
787
788     virtual CIMResponseMessage* buildResponse() const;
789
790     CIMObjectPath objectName;
791     CIMName resultClass;
792     String role;
793 };
794
795 class PEGASUS_COMMON_LINKAGE CIMGetPropertyRequestMessage
796     : public CIMOperationRequestMessage
797 {
798 public:
799     CIMGetPropertyRequestMessage(
800         const String& messageId_,
801         const CIMNamespaceName& nameSpace_,
802         const CIMObjectPath& instanceName_,
803         const CIMName& propertyName_,
804         const QueueIdStack& queueIds_,
805         const String& authType_ = String::EMPTY,
806         const String& userName_ = String::EMPTY)
807     : CIMOperationRequestMessage(
808         CIM_GET_PROPERTY_REQUEST_MESSAGE, messageId_, queueIds_,
809          authType_, userName_,
810          nameSpace_,instanceName_.getClassName()),
811         instanceName(instanceName_),
812         propertyName(propertyName_)
813     {
814     }
815
816     virtual CIMResponseMessage* buildResponse() const;
817
818     CIMObjectPath instanceName;
819     CIMName propertyName;
820 };
821
822 class PEGASUS_COMMON_LINKAGE CIMSetPropertyRequestMessage
823     : public CIMOperationRequestMessage
824 {
825 public:
826     CIMSetPropertyRequestMessage(
827         const String& messageId_,
828         const CIMNamespaceName& nameSpace_,
829         const CIMObjectPath& instanceName_,
830         const CIMName& propertyName_,
831         const CIMValue& newValue_,
832         const QueueIdStack& queueIds_,
833         const String& authType_ = String::EMPTY,
834         const String& userName_ = String::EMPTY)
835     : CIMOperationRequestMessage(
836         CIM_SET_PROPERTY_REQUEST_MESSAGE, messageId_, queueIds_,
837          authType_, userName_,
838          nameSpace_,instanceName_.getClassName()),
839         instanceName(instanceName_),
840         propertyName(propertyName_),
841         newValue(newValue_)
842     {
843     }
844
845     virtual CIMResponseMessage* buildResponse() const;
846
847     CIMObjectPath instanceName;
848     CIMName propertyName;
849     CIMValue newValue;
850 };
851
852 class PEGASUS_COMMON_LINKAGE CIMGetQualifierRequestMessage
853     : public CIMOperationRequestMessage
854 {
855 public:
856     CIMGetQualifierRequestMessage(
857         const String& messageId_,
858         const CIMNamespaceName& nameSpace_,
859         const CIMName& qualifierName_,
860         const QueueIdStack& queueIds_,
861         const String& authType_ = String::EMPTY,
862         const String& userName_ = String::EMPTY)
863     : CIMOperationRequestMessage(
864         CIM_GET_QUALIFIER_REQUEST_MESSAGE, messageId_, queueIds_,
865          authType_, userName_,
866          nameSpace_,CIMName(),
867          TYPE_CLASS),
868         qualifierName(qualifierName_)
869     {
870     }
871
872     virtual CIMResponseMessage* buildResponse() const;
873
874     CIMName qualifierName;
875 };
876
877 class PEGASUS_COMMON_LINKAGE CIMSetQualifierRequestMessage
878     : public CIMOperationRequestMessage
879 {
880 public:
881     CIMSetQualifierRequestMessage(
882         const String& messageId_,
883         const CIMNamespaceName& nameSpace_,
884         const CIMQualifierDecl& qualifierDeclaration_,
885         const QueueIdStack& queueIds_,
886         const String& authType_ = String::EMPTY,
887         const String& userName_ = String::EMPTY)
888     : CIMOperationRequestMessage(
889         CIM_SET_QUALIFIER_REQUEST_MESSAGE, messageId_, queueIds_,
890          authType_, userName_,
891          nameSpace_,CIMName(),
892          TYPE_CLASS),
893         qualifierDeclaration(qualifierDeclaration_)
894     {
895     }
896
897     virtual CIMResponseMessage* buildResponse() const;
898
899     CIMQualifierDecl qualifierDeclaration;
900 };
901
902 class PEGASUS_COMMON_LINKAGE CIMDeleteQualifierRequestMessage
903     : public CIMOperationRequestMessage
904 {
905 public:
906     CIMDeleteQualifierRequestMessage(
907         const String& messageId_,
908         const CIMNamespaceName& nameSpace_,
909         const CIMName& qualifierName_,
910         const QueueIdStack& queueIds_,
911         const String& authType_ = String::EMPTY,
912         const String& userName_ = String::EMPTY)
913     : CIMOperationRequestMessage(
914         CIM_DELETE_QUALIFIER_REQUEST_MESSAGE, messageId_, queueIds_,
915          authType_, userName_,
916          nameSpace_,CIMName(),
917          TYPE_CLASS),
918         qualifierName(qualifierName_)
919     {
920     }
921
922     virtual CIMResponseMessage* buildResponse() const;
923
924     CIMName qualifierName;
925 };
926
927 class PEGASUS_COMMON_LINKAGE CIMEnumerateQualifiersRequestMessage
928     : public CIMOperationRequestMessage
929 {
930 public:
931     CIMEnumerateQualifiersRequestMessage(
932         const String& messageId_,
933         const CIMNamespaceName& nameSpace_,
934         const QueueIdStack& queueIds_,
935         const String& authType_ = String::EMPTY,
936         const String& userName_ = String::EMPTY)
937     : CIMOperationRequestMessage(
938         CIM_ENUMERATE_QUALIFIERS_REQUEST_MESSAGE, messageId_, queueIds_,
939          authType_, userName_,
940          nameSpace_,CIMName(),
941          TYPE_CLASS)
942     {
943     }
944
945     virtual CIMResponseMessage* buildResponse() const;
946 };
947
948 class PEGASUS_COMMON_LINKAGE CIMInvokeMethodRequestMessage
949     : public CIMOperationRequestMessage
950 {
951 public:
952     CIMInvokeMethodRequestMessage(
953         const String& messageId_,
954         const CIMNamespaceName& nameSpace_,
955         const CIMObjectPath& instanceName_,
956         const CIMName& methodName_,
957         const Array<CIMParamValue>& inParameters_,
958         const QueueIdStack& queueIds_,
959         const String& authType_ = String::EMPTY,
960         const String& userName_ = String::EMPTY)
961     : CIMOperationRequestMessage(
962         CIM_INVOKE_METHOD_REQUEST_MESSAGE, messageId_, queueIds_,
963          authType_, userName_,
964          nameSpace_,instanceName_.getClassName(),
965          TYPE_METHOD),
966         instanceName(instanceName_),
967         methodName(methodName_),
968         inParameters(inParameters_)
969     {
970     }
971
972     virtual CIMResponseMessage* buildResponse() const;
973
974     CIMObjectPath instanceName;
975     CIMName methodName;
976     Array<CIMParamValue> inParameters;
977 };
978
979 class PEGASUS_COMMON_LINKAGE CIMProcessIndicationRequestMessage
980     : public CIMRequestMessage
981 {
982 public:
983     CIMProcessIndicationRequestMessage(
984         const String & messageId_,
985         const CIMNamespaceName & nameSpace_,
986         const CIMInstance& indicationInstance_,
987         const Array<CIMObjectPath> & subscriptionInstanceNames_,
988         const CIMInstance & provider_,
989         const QueueIdStack& queueIds_)
990     : CIMRequestMessage(
991         CIM_PROCESS_INDICATION_REQUEST_MESSAGE, messageId_, queueIds_),
992         nameSpace (nameSpace_),
993         indicationInstance(indicationInstance_),
994         subscriptionInstanceNames(subscriptionInstanceNames_),
995         provider(provider_)
996     {
997     }
998
999     virtual CIMResponseMessage* buildResponse() const;
1000
1001     CIMNamespaceName nameSpace;
1002     CIMInstance indicationInstance;
1003     Array<CIMObjectPath> subscriptionInstanceNames;
1004     CIMInstance provider;
1005 };
1006
1007 class PEGASUS_COMMON_LINKAGE CIMNotifyProviderRegistrationRequestMessage
1008     : public CIMRequestMessage
1009 {
1010 public:
1011     enum Operation
1012     {
1013         OP_CREATE = 1, OP_DELETE = 2, OP_MODIFY = 3
1014     };
1015
1016     CIMNotifyProviderRegistrationRequestMessage(
1017         const String & messageId_,
1018         const Operation operation_,
1019         const CIMName & className_,
1020         const Array <CIMNamespaceName> & newNamespaces_,
1021         const Array <CIMNamespaceName> & oldNamespaces_,
1022         const CIMPropertyList & newPropertyNames_,
1023         const CIMPropertyList & oldPropertyNames_,
1024         const QueueIdStack& queueIds_)
1025     : CIMRequestMessage(
1026         CIM_NOTIFY_PROVIDER_REGISTRATION_REQUEST_MESSAGE,
1027         messageId_, queueIds_),
1028         className (className_),
1029         newNamespaces (newNamespaces_),
1030         oldNamespaces (oldNamespaces_),
1031         newPropertyNames (newPropertyNames_),
1032         oldPropertyNames (oldPropertyNames_),
1033         operation(operation_)
1034     {
1035     }
1036
1037     virtual CIMResponseMessage* buildResponse() const;
1038
1039     CIMName className;
1040     Array <CIMNamespaceName> newNamespaces;
1041     Array <CIMNamespaceName> oldNamespaces;
1042     CIMPropertyList newPropertyNames;
1043     CIMPropertyList oldPropertyNames;
1044     Operation operation;
1045 };
1046
1047 class PEGASUS_COMMON_LINKAGE CIMNotifyProviderTerminationRequestMessage
1048     : public CIMRequestMessage
1049 {
1050 public:
1051     CIMNotifyProviderTerminationRequestMessage(
1052         const String & messageId_,
1053         const Array <CIMInstance> & providers_,
1054         const QueueIdStack& queueIds_)
1055     : CIMRequestMessage(
1056         CIM_NOTIFY_PROVIDER_TERMINATION_REQUEST_MESSAGE,
1057         messageId_, queueIds_),
1058         providers (providers_)
1059     {
1060     }
1061
1062     virtual CIMResponseMessage* buildResponse() const;
1063
1064     Array <CIMInstance> providers;
1065 };
1066
1067 class PEGASUS_COMMON_LINKAGE CIMHandleIndicationRequestMessage
1068     : public CIMRequestMessage
1069 {
1070 public:
1071     CIMHandleIndicationRequestMessage(
1072         const String& messageId_,
1073         const CIMNamespaceName & nameSpace_,
1074         const CIMInstance& handlerInstance_,
1075         const CIMInstance& indicationInstance_,
1076         const CIMInstance& subscriptionInstance_,
1077         const QueueIdStack& queueIds_,
1078         const String& authType_ = String::EMPTY,
1079         const String& userName_ = String::EMPTY)
1080     : CIMRequestMessage(
1081         CIM_HANDLE_INDICATION_REQUEST_MESSAGE, messageId_, queueIds_),
1082         nameSpace(nameSpace_),
1083         handlerInstance(handlerInstance_),
1084         indicationInstance(indicationInstance_),
1085         subscriptionInstance(subscriptionInstance_),
1086         authType(authType_),
1087         userName(userName_)
1088     {
1089     }
1090
1091     virtual CIMResponseMessage* buildResponse() const;
1092
1093     CIMNamespaceName nameSpace;
1094     CIMInstance handlerInstance;
1095     CIMInstance indicationInstance;
1096     CIMInstance subscriptionInstance;
1097     String authType;
1098     String userName;
1099 };
1100
1101 class PEGASUS_COMMON_LINKAGE CIMCreateSubscriptionRequestMessage
1102     : public CIMIndicationRequestMessage
1103 {
1104 public:
1105     CIMCreateSubscriptionRequestMessage(
1106         const String& messageId_,
1107         const CIMNamespaceName & nameSpace_,
1108         const CIMInstance & subscriptionInstance_,
1109         const Array<CIMName> & classNames_,
1110         const CIMPropertyList & propertyList_,
1111         const Uint16 repeatNotificationPolicy_,
1112         const String & query_,
1113         const QueueIdStack& queueIds_,
1114         const String & authType_ = String::EMPTY,
1115         const String & userName_ = String::EMPTY)
1116     : CIMIndicationRequestMessage(
1117          CIM_CREATE_SUBSCRIPTION_REQUEST_MESSAGE,
1118          messageId_,
1119          queueIds_,
1120          authType_,
1121          userName_),
1122         nameSpace (nameSpace_),
1123         subscriptionInstance(subscriptionInstance_),
1124         classNames(classNames_),
1125         propertyList (propertyList_),
1126         repeatNotificationPolicy (repeatNotificationPolicy_),
1127         query (query_)
1128     {
1129     }
1130
1131     virtual CIMResponseMessage* buildResponse() const;
1132
1133     CIMNamespaceName nameSpace;
1134     CIMInstance subscriptionInstance;
1135     Array <CIMName> classNames;
1136     CIMPropertyList propertyList;
1137     Uint16 repeatNotificationPolicy;
1138     String query;
1139 };
1140
1141 class PEGASUS_COMMON_LINKAGE CIMModifySubscriptionRequestMessage
1142     : public CIMIndicationRequestMessage
1143 {
1144 public:
1145     CIMModifySubscriptionRequestMessage(
1146         const String& messageId_,
1147         const CIMNamespaceName & nameSpace_,
1148         const CIMInstance & subscriptionInstance_,
1149         const Array<CIMName> & classNames_,
1150         const CIMPropertyList & propertyList_,
1151         const Uint16 repeatNotificationPolicy_,
1152         const String & query_,
1153         const QueueIdStack& queueIds_,
1154         const String & authType_ = String::EMPTY,
1155         const String & userName_ = String::EMPTY)
1156     : CIMIndicationRequestMessage(
1157          CIM_MODIFY_SUBSCRIPTION_REQUEST_MESSAGE,
1158          messageId_,
1159          queueIds_,
1160          authType_,
1161          userName_),
1162         nameSpace(nameSpace_),
1163         subscriptionInstance(subscriptionInstance_),
1164         classNames(classNames_),
1165         propertyList (propertyList_),
1166         repeatNotificationPolicy (repeatNotificationPolicy_),
1167         query (query_)
1168     {
1169     }
1170
1171     virtual CIMResponseMessage* buildResponse() const;
1172
1173     CIMNamespaceName nameSpace;
1174     CIMInstance subscriptionInstance;
1175     Array<CIMName> classNames;
1176     CIMPropertyList propertyList;
1177     Uint16 repeatNotificationPolicy;
1178     String query;
1179 };
1180
1181 class PEGASUS_COMMON_LINKAGE CIMDeleteSubscriptionRequestMessage
1182     : public CIMIndicationRequestMessage
1183 {
1184 public:
1185     CIMDeleteSubscriptionRequestMessage(
1186         const String& messageId_,
1187         const CIMNamespaceName & nameSpace_,
1188         const CIMInstance & subscriptionInstance_,
1189         const Array<CIMName> & classNames_,
1190         const QueueIdStack& queueIds_,
1191         const String& authType_ = String::EMPTY,
1192         const String& userName_ = String::EMPTY)
1193     : CIMIndicationRequestMessage(
1194          CIM_DELETE_SUBSCRIPTION_REQUEST_MESSAGE,
1195          messageId_,
1196          queueIds_,
1197          authType_,
1198          userName_),
1199         nameSpace(nameSpace_),
1200         subscriptionInstance(subscriptionInstance_),
1201         classNames(classNames_)
1202     {
1203     }
1204
1205     virtual CIMResponseMessage* buildResponse() const;
1206
1207     CIMNamespaceName nameSpace;
1208     CIMInstance subscriptionInstance;
1209     Array<CIMName> classNames;
1210 };
1211
1212 class PEGASUS_COMMON_LINKAGE
1213     CIMSubscriptionInitCompleteRequestMessage
1214     : public CIMRequestMessage
1215 {
1216 public:
1217     CIMSubscriptionInitCompleteRequestMessage(
1218         const String & messageId_,
1219         const QueueIdStack & queueIds_)
1220     : CIMRequestMessage
1221        (CIM_SUBSCRIPTION_INIT_COMPLETE_REQUEST_MESSAGE,
1222         messageId_,
1223         queueIds_)
1224     {
1225     }
1226
1227     virtual CIMResponseMessage* buildResponse() const;
1228 };
1229
1230 class PEGASUS_COMMON_LINKAGE
1231     CIMIndicationServiceDisabledRequestMessage
1232     : public CIMRequestMessage
1233 {
1234 public:
1235     CIMIndicationServiceDisabledRequestMessage(
1236         const String & messageId_,
1237         const QueueIdStack & queueIds_)
1238     : CIMRequestMessage
1239        (CIM_INDICATION_SERVICE_DISABLED_REQUEST_MESSAGE,
1240         messageId_,
1241         queueIds_)
1242     {
1243     }
1244
1245     virtual CIMResponseMessage* buildResponse() const;
1246 };
1247
1248 class PEGASUS_COMMON_LINKAGE CIMDisableModuleRequestMessage
1249     : public CIMRequestMessage
1250 {
1251 public:
1252     CIMDisableModuleRequestMessage(
1253         const String& messageId_,
1254         const CIMInstance& providerModule_,
1255         const Array<CIMInstance>& providers_,
1256         Boolean disableProviderOnly_,
1257         const Array<Boolean>& indicationProviders_,
1258         const QueueIdStack& queueIds_,
1259         const String& authType_ = String::EMPTY,
1260         const String& userName_ = String::EMPTY)
1261     : CIMRequestMessage(
1262         CIM_DISABLE_MODULE_REQUEST_MESSAGE,
1263         messageId_,
1264         queueIds_),
1265         providerModule(providerModule_),
1266         providers(providers_),
1267         disableProviderOnly(disableProviderOnly_),
1268         indicationProviders(indicationProviders_),
1269         authType(authType_),
1270         userName(userName_)
1271     {
1272     }
1273
1274     virtual CIMResponseMessage* buildResponse() const;
1275
1276     CIMInstance providerModule;
1277     Array<CIMInstance> providers;
1278     Boolean disableProviderOnly;
1279     Array<Boolean> indicationProviders;
1280     String authType;
1281     String userName;
1282 };
1283
1284 class PEGASUS_COMMON_LINKAGE CIMEnableModuleRequestMessage
1285     : public CIMRequestMessage
1286 {
1287 public:
1288     CIMEnableModuleRequestMessage(
1289         const String& messageId_,
1290         const CIMInstance& providerModule_,
1291         const QueueIdStack& queueIds_,
1292         const String& authType_ = String::EMPTY,
1293         const String& userName_ = String::EMPTY)
1294     : CIMRequestMessage(
1295         CIM_ENABLE_MODULE_REQUEST_MESSAGE,
1296         messageId_,
1297         queueIds_),
1298         providerModule(providerModule_),
1299         authType(authType_),
1300         userName(userName_)
1301     {
1302     }
1303
1304     virtual CIMResponseMessage* buildResponse() const;
1305
1306     CIMInstance providerModule;
1307     String authType;
1308     String userName;
1309 };
1310
1311 class PEGASUS_COMMON_LINKAGE CIMNotifyProviderEnableRequestMessage
1312     : public CIMRequestMessage
1313 {
1314 public:
1315     CIMNotifyProviderEnableRequestMessage(
1316         const String & messageId_,
1317         const Array <CIMInstance> & capInstances_,
1318         const QueueIdStack& queueIds_)
1319     : CIMRequestMessage(
1320         CIM_NOTIFY_PROVIDER_ENABLE_REQUEST_MESSAGE,
1321         messageId_,
1322         queueIds_),
1323         capInstances(capInstances_)
1324     {
1325     }
1326
1327     virtual CIMResponseMessage* buildResponse() const;
1328
1329     Array <CIMInstance> capInstances;
1330 };
1331
1332 class PEGASUS_COMMON_LINKAGE CIMNotifyProviderFailRequestMessage
1333     : public CIMRequestMessage
1334 {
1335 public:
1336     CIMNotifyProviderFailRequestMessage(
1337         const String & messageId_,
1338         const String & moduleName_,
1339         const String & userName_,
1340         const QueueIdStack& queueIds_)
1341     : CIMRequestMessage(
1342         CIM_NOTIFY_PROVIDER_FAIL_REQUEST_MESSAGE,
1343         messageId_,
1344         queueIds_),
1345         moduleName(moduleName_),
1346         userName(userName_)
1347     {
1348     }
1349
1350     virtual CIMResponseMessage* buildResponse() const;
1351
1352     String moduleName;
1353     String userName;
1354 };
1355
1356 class PEGASUS_COMMON_LINKAGE CIMStopAllProvidersRequestMessage
1357     : public CIMRequestMessage
1358 {
1359 public:
1360     CIMStopAllProvidersRequestMessage(
1361         const String& messageId_,
1362         const QueueIdStack& queueIds_)
1363     : CIMRequestMessage(
1364         CIM_STOP_ALL_PROVIDERS_REQUEST_MESSAGE,
1365         messageId_,
1366         queueIds_)
1367     {
1368     }
1369
1370     virtual CIMResponseMessage* buildResponse() const;
1371 };
1372
1373 // Used to pass initialization data to an Out-of-Process Provider Agent process
1374 class PEGASUS_COMMON_LINKAGE CIMInitializeProviderAgentRequestMessage
1375     : public CIMRequestMessage
1376 {
1377 public:
1378     CIMInitializeProviderAgentRequestMessage(
1379         const String & messageId_,
1380         const String& pegasusHome_,
1381         const Array<Pair<String, String> >& configProperties_,
1382         Boolean bindVerbose_,
1383         Boolean subscriptionInitComplete_,
1384         const QueueIdStack& queueIds_)
1385     : CIMRequestMessage(
1386         CIM_INITIALIZE_PROVIDER_AGENT_REQUEST_MESSAGE,
1387         messageId_,
1388         queueIds_),
1389       pegasusHome(pegasusHome_),
1390       configProperties(configProperties_),
1391       bindVerbose(bindVerbose_),
1392       subscriptionInitComplete(subscriptionInitComplete_)
1393     {
1394     }
1395
1396     virtual CIMResponseMessage* buildResponse() const;
1397
1398     String pegasusHome;
1399     Array<Pair<String, String> > configProperties;
1400     Boolean bindVerbose;
1401     Boolean subscriptionInitComplete;
1402 };
1403
1404 class PEGASUS_COMMON_LINKAGE CIMNotifyConfigChangeRequestMessage
1405     : public CIMRequestMessage
1406 {
1407 public:
1408     CIMNotifyConfigChangeRequestMessage(
1409         const String & messageId_,
1410         const String & propertyName_,
1411         const String & newPropertyValue_,
1412         Boolean currentValueModified_, // false - planned value modified
1413         const QueueIdStack& queueIds_)
1414     : CIMRequestMessage(
1415         CIM_NOTIFY_CONFIG_CHANGE_REQUEST_MESSAGE,
1416         messageId_,
1417         queueIds_),
1418         propertyName(propertyName_),
1419         newPropertyValue(newPropertyValue_),
1420         currentValueModified(currentValueModified_)
1421     {
1422     }
1423
1424     virtual CIMResponseMessage* buildResponse() const;
1425
1426     String propertyName;
1427     String newPropertyValue;
1428     Boolean currentValueModified;
1429 };
1430
1431
1432 class PEGASUS_COMMON_LINKAGE ProvAgtGetScmoClassRequestMessage
1433     : public CIMRequestMessage
1434 {
1435 public:
1436     ProvAgtGetScmoClassRequestMessage(
1437         const String& messageId_,
1438         const CIMNamespaceName& nameSpace_,
1439         const CIMName& className_,
1440         const QueueIdStack& queueIds_)
1441     : CIMRequestMessage(
1442         PROVAGT_GET_SCMOCLASS_REQUEST_MESSAGE,
1443         messageId_,
1444         queueIds_),
1445         nameSpace(nameSpace_),
1446         className(className_)
1447     {
1448     }
1449
1450     virtual CIMResponseMessage* buildResponse() const;
1451
1452     CIMNamespaceName nameSpace;
1453     CIMName className;
1454
1455 };
1456
1457
1458 class PEGASUS_COMMON_LINKAGE CIMNotifySubscriptionNotActiveRequestMessage
1459     : public CIMRequestMessage
1460 {
1461 public:
1462     CIMNotifySubscriptionNotActiveRequestMessage(
1463         const String & messageId_,
1464         const CIMObjectPath &subscriptionName_,
1465         const QueueIdStack& queueIds_)
1466     : CIMRequestMessage(
1467         CIM_NOTIFY_SUBSCRIPTION_NOT_ACTIVE_REQUEST_MESSAGE,
1468         messageId_, queueIds_),
1469         subscriptionName(subscriptionName_)
1470     {
1471     }
1472
1473     virtual CIMResponseMessage* buildResponse() const;
1474
1475     CIMObjectPath subscriptionName;
1476 };
1477
1478 class PEGASUS_COMMON_LINKAGE CIMNotifyListenerNotActiveRequestMessage
1479     : public CIMRequestMessage
1480 {
1481 public:
1482     CIMNotifyListenerNotActiveRequestMessage(
1483         const String & messageId_,
1484         const CIMObjectPath &handlerName_,
1485         const QueueIdStack& queueIds_)
1486     : CIMRequestMessage(
1487         CIM_NOTIFY_LISTENER_NOT_ACTIVE_REQUEST_MESSAGE,
1488         messageId_, queueIds_),
1489         handlerName(handlerName_)
1490     {
1491     }
1492
1493     virtual CIMResponseMessage* buildResponse() const;
1494
1495     CIMObjectPath handlerName;
1496 };
1497
1498 //
1499 // CIMResponseMessages
1500 //
1501
1502 class PEGASUS_COMMON_LINKAGE CIMGetClassResponseMessage
1503     : public CIMResponseMessage
1504 {
1505 public:
1506     CIMGetClassResponseMessage(
1507         const String& messageId_,
1508         const CIMException& cimException_,
1509         const QueueIdStack& queueIds_,
1510         const CIMClass& cimClass_)
1511     : CIMResponseMessage(CIM_GET_CLASS_RESPONSE_MESSAGE,
1512         messageId_, cimException_, queueIds_),
1513         cimClass(cimClass_)
1514     {
1515     }
1516
1517     CIMClass cimClass;
1518 };
1519
1520 class PEGASUS_COMMON_LINKAGE CIMGetInstanceResponseMessage
1521     : public CIMResponseMessage
1522 {
1523 public:
1524     CIMGetInstanceResponseMessage(
1525         const String& messageId_,
1526         const CIMException& cimException_,
1527         const QueueIdStack& queueIds_)
1528     : CIMResponseMessage(CIM_GET_INSTANCE_RESPONSE_MESSAGE,
1529         messageId_, cimException_, queueIds_),
1530       _responseData(CIMResponseData::RESP_INSTANCE)
1531     {
1532     }
1533
1534     CIMResponseData& getResponseData()
1535     {
1536         return _responseData;
1537     }
1538
1539 private:
1540     CIMGetInstanceResponseMessage();
1541     CIMGetInstanceResponseMessage(const CIMGetInstanceResponseMessage&);
1542     CIMGetInstanceResponseMessage& operator=(
1543         const CIMGetInstanceResponseMessage&);
1544
1545     CIMResponseData _responseData;
1546 };
1547
1548 class PEGASUS_COMMON_LINKAGE CIMExportIndicationResponseMessage
1549     : public CIMResponseMessage
1550 {
1551 public:
1552     CIMExportIndicationResponseMessage(
1553         const String& messageId_,
1554         const CIMException& cimException_,
1555         const QueueIdStack& queueIds_)
1556     : CIMResponseMessage(CIM_EXPORT_INDICATION_RESPONSE_MESSAGE,
1557         messageId_, cimException_, queueIds_)
1558     {
1559     }
1560 };
1561
1562 class PEGASUS_COMMON_LINKAGE CIMDeleteClassResponseMessage
1563     : public CIMResponseMessage
1564 {
1565 public:
1566     CIMDeleteClassResponseMessage(
1567         const String& messageId_,
1568         const CIMException& cimException_,
1569         const QueueIdStack& queueIds_)
1570     : CIMResponseMessage(CIM_DELETE_CLASS_RESPONSE_MESSAGE,
1571         messageId_, cimException_, queueIds_)
1572     {
1573     }
1574 };
1575
1576 class PEGASUS_COMMON_LINKAGE CIMDeleteInstanceResponseMessage
1577     : public CIMResponseMessage
1578 {
1579 public:
1580     CIMDeleteInstanceResponseMessage(
1581         const String& messageId_,
1582         const CIMException& cimException_,
1583         const QueueIdStack& queueIds_)
1584     : CIMResponseMessage(CIM_DELETE_INSTANCE_RESPONSE_MESSAGE,
1585         messageId_, cimException_, queueIds_)
1586     {
1587     }
1588 };
1589
1590 class PEGASUS_COMMON_LINKAGE CIMCreateClassResponseMessage
1591     : public CIMResponseMessage
1592 {
1593 public:
1594     CIMCreateClassResponseMessage(
1595         const String& messageId_,
1596         const CIMException& cimException_,
1597         const QueueIdStack& queueIds_)
1598     : CIMResponseMessage(CIM_CREATE_CLASS_RESPONSE_MESSAGE,
1599         messageId_, cimException_, queueIds_)
1600     {
1601     }
1602 };
1603
1604 class PEGASUS_COMMON_LINKAGE CIMCreateInstanceResponseMessage
1605     : public CIMResponseMessage
1606 {
1607 public:
1608     CIMCreateInstanceResponseMessage(
1609         const String& messageId_,
1610         const CIMException& cimException_,
1611         const QueueIdStack& queueIds_,
1612         const CIMObjectPath& instanceName_)
1613     : CIMResponseMessage(CIM_CREATE_INSTANCE_RESPONSE_MESSAGE,
1614         messageId_, cimException_, queueIds_),
1615         instanceName(instanceName_)
1616     {
1617     }
1618
1619     CIMObjectPath instanceName;
1620 };
1621
1622 class PEGASUS_COMMON_LINKAGE CIMModifyClassResponseMessage
1623     : public CIMResponseMessage
1624 {
1625 public:
1626     CIMModifyClassResponseMessage(
1627         const String& messageId_,
1628         const CIMException& cimException_,
1629         const QueueIdStack& queueIds_)
1630     : CIMResponseMessage(CIM_MODIFY_CLASS_RESPONSE_MESSAGE,
1631         messageId_, cimException_, queueIds_)
1632     {
1633     }
1634 };
1635
1636 class PEGASUS_COMMON_LINKAGE CIMModifyInstanceResponseMessage
1637     : public CIMResponseMessage
1638 {
1639 public:
1640     CIMModifyInstanceResponseMessage(
1641         const String& messageId_,
1642         const CIMException& cimException_,
1643         const QueueIdStack& queueIds_)
1644     : CIMResponseMessage(CIM_MODIFY_INSTANCE_RESPONSE_MESSAGE,
1645         messageId_, cimException_, queueIds_)
1646     {
1647     }
1648 };
1649
1650 class PEGASUS_COMMON_LINKAGE CIMEnumerateClassesResponseMessage
1651     : public CIMResponseMessage
1652 {
1653 public:
1654     CIMEnumerateClassesResponseMessage(
1655         const String& messageId_,
1656         const CIMException& cimException_,
1657         const QueueIdStack& queueIds_,
1658         const Array<CIMClass>& cimClasses_)
1659     : CIMResponseMessage(CIM_ENUMERATE_CLASSES_RESPONSE_MESSAGE,
1660         messageId_, cimException_, queueIds_),
1661         cimClasses(cimClasses_)
1662     {
1663     }
1664
1665     Array<CIMClass> cimClasses;
1666 };
1667
1668 class PEGASUS_COMMON_LINKAGE CIMEnumerateClassNamesResponseMessage
1669     : public CIMResponseMessage
1670 {
1671 public:
1672     CIMEnumerateClassNamesResponseMessage(
1673         const String& messageId_,
1674         const CIMException& cimException_,
1675         const QueueIdStack& queueIds_,
1676         const Array<CIMName>& classNames_)
1677     : CIMResponseMessage(CIM_ENUMERATE_CLASS_NAMES_RESPONSE_MESSAGE,
1678         messageId_, cimException_, queueIds_),
1679         classNames(classNames_)
1680     {
1681     }
1682
1683     Array<CIMName> classNames;
1684 };
1685
1686 class PEGASUS_COMMON_LINKAGE CIMEnumerateInstancesResponseMessage
1687     : public CIMResponseMessage
1688 {
1689 public:
1690     CIMEnumerateInstancesResponseMessage(
1691         const String& messageId_,
1692         const CIMException& cimException_,
1693         const QueueIdStack& queueIds_)
1694     : CIMResponseMessage(
1695         CIM_ENUMERATE_INSTANCES_RESPONSE_MESSAGE,
1696         messageId_, cimException_, queueIds_),
1697       _responseData(CIMResponseData::RESP_INSTANCES)
1698     {
1699     }
1700
1701     CIMResponseData& getResponseData()
1702     {
1703         return _responseData;
1704     }
1705
1706 private:
1707
1708     CIMResponseData _responseData;
1709 };
1710
1711 class PEGASUS_COMMON_LINKAGE CIMEnumerateInstanceNamesResponseMessage
1712     : public CIMResponseMessage
1713 {
1714 public:
1715     CIMEnumerateInstanceNamesResponseMessage(
1716         const String& messageId_,
1717         const CIMException& cimException_,
1718         const QueueIdStack& queueIds_)
1719     : CIMResponseMessage(CIM_ENUMERATE_INSTANCE_NAMES_RESPONSE_MESSAGE,
1720         messageId_, cimException_, queueIds_),
1721       _responseData(CIMResponseData::RESP_INSTNAMES)
1722     {
1723     }
1724
1725     CIMResponseData& getResponseData()
1726     {
1727         return _responseData;
1728     }
1729
1730 private:
1731
1732     CIMResponseData _responseData;
1733 };
1734
1735 class PEGASUS_COMMON_LINKAGE CIMExecQueryResponseMessage
1736     : public CIMResponseMessage
1737 {
1738 public:
1739     CIMExecQueryResponseMessage(
1740         const String& messageId_,
1741         const CIMException& cimException_,
1742         const QueueIdStack& queueIds_)
1743     : CIMResponseMessage(CIM_EXEC_QUERY_RESPONSE_MESSAGE,
1744         messageId_, cimException_, queueIds_),
1745       _responseData(CIMResponseData::RESP_OBJECTS)
1746     {
1747     }
1748
1749     CIMResponseData& getResponseData()
1750     {
1751         return _responseData;
1752     }
1753
1754 private:
1755     CIMResponseData _responseData;
1756 };
1757
1758 class PEGASUS_COMMON_LINKAGE CIMAssociatorsResponseMessage
1759     : public CIMResponseMessage
1760 {
1761 public:
1762     CIMAssociatorsResponseMessage(
1763         const String& messageId_,
1764         const CIMException& cimException_,
1765         const QueueIdStack& queueIds_)
1766     : CIMResponseMessage(CIM_ASSOCIATORS_RESPONSE_MESSAGE,
1767         messageId_, cimException_, queueIds_),
1768       _responseData(CIMResponseData::RESP_OBJECTS)
1769     {
1770     }
1771
1772     CIMResponseData& getResponseData()
1773     {
1774         return _responseData;
1775     }
1776 private:
1777     CIMResponseData _responseData;
1778 };
1779
1780 class PEGASUS_COMMON_LINKAGE CIMAssociatorNamesResponseMessage
1781     : public CIMResponseMessage
1782 {
1783 public:
1784     CIMAssociatorNamesResponseMessage(
1785         const String& messageId_,
1786         const CIMException& cimException_,
1787         const QueueIdStack& queueIds_)
1788     : CIMResponseMessage(CIM_ASSOCIATOR_NAMES_RESPONSE_MESSAGE,
1789         messageId_, cimException_, queueIds_),
1790         _responseData(CIMResponseData::RESP_OBJECTPATHS)
1791     {
1792     }
1793     CIMResponseData& getResponseData()
1794     {
1795         return _responseData;
1796     }
1797 private:
1798     CIMResponseData _responseData;
1799 };
1800
1801 class PEGASUS_COMMON_LINKAGE CIMReferencesResponseMessage
1802     : public CIMResponseMessage
1803 {
1804 public:
1805     CIMReferencesResponseMessage(
1806         const String& messageId_,
1807         const CIMException& cimException_,
1808         const QueueIdStack& queueIds_)
1809     : CIMResponseMessage(CIM_REFERENCES_RESPONSE_MESSAGE,
1810         messageId_, cimException_, queueIds_),
1811         _responseData(CIMResponseData::RESP_OBJECTS)
1812     {
1813     }
1814     CIMResponseData& getResponseData()
1815     {
1816         return _responseData;
1817     }
1818 private:
1819     CIMResponseData _responseData;
1820 };
1821
1822 class PEGASUS_COMMON_LINKAGE CIMReferenceNamesResponseMessage
1823     : public CIMResponseMessage
1824 {
1825 public:
1826     CIMReferenceNamesResponseMessage(
1827         const String& messageId_,
1828         const CIMException& cimException_,
1829         const QueueIdStack& queueIds_)
1830     : CIMResponseMessage(CIM_REFERENCE_NAMES_RESPONSE_MESSAGE,
1831         messageId_, cimException_, queueIds_),
1832         _responseData(CIMResponseData::RESP_OBJECTPATHS)
1833     {
1834     }
1835     CIMResponseData& getResponseData()
1836     {
1837         return _responseData;
1838     }
1839 private:
1840     CIMResponseData _responseData;
1841 };
1842
1843 class PEGASUS_COMMON_LINKAGE CIMGetPropertyResponseMessage
1844     : public CIMResponseMessage
1845 {
1846 public:
1847     CIMGetPropertyResponseMessage(
1848         const String& messageId_,
1849         const CIMException& cimException_,
1850         const QueueIdStack& queueIds_,
1851         const CIMValue& value_)
1852     : CIMResponseMessage(CIM_GET_PROPERTY_RESPONSE_MESSAGE,
1853         messageId_, cimException_, queueIds_),
1854         value(value_)
1855     {
1856     }
1857
1858     CIMValue value;
1859 };
1860
1861 class PEGASUS_COMMON_LINKAGE CIMSetPropertyResponseMessage
1862     : public CIMResponseMessage
1863 {
1864 public:
1865     CIMSetPropertyResponseMessage(
1866         const String& messageId_,
1867         const CIMException& cimException_,
1868         const QueueIdStack& queueIds_)
1869     : CIMResponseMessage(CIM_SET_PROPERTY_RESPONSE_MESSAGE,
1870         messageId_, cimException_, queueIds_)
1871     {
1872     }
1873 };
1874
1875 class PEGASUS_COMMON_LINKAGE CIMGetQualifierResponseMessage
1876     : public CIMResponseMessage
1877 {
1878 public:
1879     CIMGetQualifierResponseMessage(
1880         const String& messageId_,
1881         const CIMException& cimException_,
1882         const QueueIdStack& queueIds_,
1883         const CIMQualifierDecl& cimQualifierDecl_)
1884     : CIMResponseMessage(CIM_GET_QUALIFIER_RESPONSE_MESSAGE,
1885         messageId_, cimException_, queueIds_),
1886         cimQualifierDecl(cimQualifierDecl_)
1887     {
1888     }
1889
1890     CIMQualifierDecl cimQualifierDecl;
1891 };
1892
1893 class PEGASUS_COMMON_LINKAGE CIMSetQualifierResponseMessage
1894     : public CIMResponseMessage
1895 {
1896 public:
1897     CIMSetQualifierResponseMessage(
1898         const String& messageId_,
1899         const CIMException& cimException_,
1900         const QueueIdStack& queueIds_)
1901     :
1902     CIMResponseMessage(CIM_SET_QUALIFIER_RESPONSE_MESSAGE,
1903         messageId_, cimException_, queueIds_)
1904     {
1905     }
1906 };
1907
1908 class PEGASUS_COMMON_LINKAGE CIMDeleteQualifierResponseMessage
1909     : public CIMResponseMessage
1910 {
1911 public:
1912     CIMDeleteQualifierResponseMessage(
1913         const String& messageId_,
1914         const CIMException& cimException_,
1915         const QueueIdStack& queueIds_)
1916     :
1917     CIMResponseMessage(CIM_DELETE_QUALIFIER_RESPONSE_MESSAGE,
1918         messageId_, cimException_, queueIds_)
1919     {
1920     }
1921 };
1922
1923 class PEGASUS_COMMON_LINKAGE CIMEnumerateQualifiersResponseMessage
1924     : public CIMResponseMessage
1925 {
1926 public:
1927     CIMEnumerateQualifiersResponseMessage(
1928         const String& messageId_,
1929         const CIMException& cimException_,
1930         const QueueIdStack& queueIds_,
1931         const Array<CIMQualifierDecl>& qualifierDeclarations_)
1932     : CIMResponseMessage(CIM_ENUMERATE_QUALIFIERS_RESPONSE_MESSAGE,
1933         messageId_, cimException_, queueIds_),
1934         qualifierDeclarations(qualifierDeclarations_)
1935     {
1936     }
1937
1938     Array<CIMQualifierDecl> qualifierDeclarations;
1939 };
1940
1941 class PEGASUS_COMMON_LINKAGE CIMInvokeMethodResponseMessage
1942     : public CIMResponseMessage
1943 {
1944 public:
1945     CIMInvokeMethodResponseMessage(
1946         const String& messageId_,
1947         const CIMException& cimException_,
1948         const QueueIdStack& queueIds_,
1949         const CIMValue& retValue_,
1950         const Array<CIMParamValue>& outParameters_,
1951         const CIMName& methodName_)
1952     : CIMResponseMessage(CIM_INVOKE_METHOD_RESPONSE_MESSAGE,
1953         messageId_, cimException_, queueIds_),
1954         retValue(retValue_),
1955         outParameters(outParameters_),
1956         methodName(methodName_)
1957     {
1958     }
1959
1960     CIMValue retValue;
1961     Array<CIMParamValue> outParameters;
1962     CIMName methodName;
1963 };
1964
1965 class PEGASUS_COMMON_LINKAGE CIMProcessIndicationResponseMessage
1966     : public CIMResponseMessage
1967 {
1968 public:
1969     CIMProcessIndicationResponseMessage(
1970         const String& messageId_,
1971         const CIMException& cimException_,
1972         const QueueIdStack& queueIds_)
1973     : CIMResponseMessage(CIM_PROCESS_INDICATION_RESPONSE_MESSAGE,
1974         messageId_, cimException_, queueIds_)
1975     {
1976     }
1977 };
1978
1979 class PEGASUS_COMMON_LINKAGE CIMNotifyProviderRegistrationResponseMessage
1980     : public CIMResponseMessage
1981 {
1982 public:
1983     CIMNotifyProviderRegistrationResponseMessage(
1984         const String& messageId_,
1985         const CIMException& cimException_,
1986         const QueueIdStack& queueIds_)
1987     : CIMResponseMessage(CIM_NOTIFY_PROVIDER_REGISTRATION_RESPONSE_MESSAGE,
1988         messageId_, cimException_, queueIds_)
1989     {
1990     }
1991 };
1992
1993 class PEGASUS_COMMON_LINKAGE CIMNotifyProviderTerminationResponseMessage
1994     : public CIMResponseMessage
1995 {
1996 public:
1997     CIMNotifyProviderTerminationResponseMessage(
1998         const String& messageId_,
1999         const CIMException& cimException_,
2000         const QueueIdStack& queueIds_)
2001     : CIMResponseMessage(CIM_NOTIFY_PROVIDER_TERMINATION_RESPONSE_MESSAGE,
2002         messageId_, cimException_, queueIds_)
2003     {
2004     }
2005 };
2006
2007 class PEGASUS_COMMON_LINKAGE CIMHandleIndicationResponseMessage
2008     : public CIMResponseMessage
2009 {
2010 public:
2011     CIMHandleIndicationResponseMessage(
2012         const String& messageId_,
2013         const CIMException& cimException_,
2014         const QueueIdStack& queueIds_)
2015     : CIMResponseMessage(CIM_HANDLE_INDICATION_RESPONSE_MESSAGE,
2016         messageId_, cimException_, queueIds_)
2017     {
2018     }
2019 };
2020
2021 class PEGASUS_COMMON_LINKAGE CIMCreateSubscriptionResponseMessage
2022     : public CIMResponseMessage
2023 {
2024 public:
2025     CIMCreateSubscriptionResponseMessage(
2026         const String& messageId_,
2027         const CIMException& cimException_,
2028         const QueueIdStack& queueIds_)
2029     : CIMResponseMessage(
2030         CIM_CREATE_SUBSCRIPTION_RESPONSE_MESSAGE,
2031         messageId_,
2032         cimException_,
2033         queueIds_)
2034     {
2035     }
2036 };
2037
2038 class PEGASUS_COMMON_LINKAGE CIMModifySubscriptionResponseMessage
2039     : public CIMResponseMessage
2040 {
2041 public:
2042     CIMModifySubscriptionResponseMessage(
2043         const String& messageId_,
2044         const CIMException& cimException_,
2045         const QueueIdStack& queueIds_)
2046     : CIMResponseMessage(
2047         CIM_MODIFY_SUBSCRIPTION_RESPONSE_MESSAGE,
2048         messageId_,
2049         cimException_,
2050         queueIds_)
2051     {
2052     }
2053 };
2054
2055 class PEGASUS_COMMON_LINKAGE CIMDeleteSubscriptionResponseMessage
2056     : public CIMResponseMessage
2057 {
2058 public:
2059     CIMDeleteSubscriptionResponseMessage(
2060         const String& messageId_,
2061         const CIMException& cimException_,
2062         const QueueIdStack& queueIds_)
2063     : CIMResponseMessage(
2064         CIM_DELETE_SUBSCRIPTION_RESPONSE_MESSAGE,
2065         messageId_,
2066         cimException_,
2067         queueIds_)
2068     {
2069     }
2070 };
2071
2072 class PEGASUS_COMMON_LINKAGE
2073 CIMSubscriptionInitCompleteResponseMessage
2074     : public CIMResponseMessage
2075 {
2076 public:
2077     CIMSubscriptionInitCompleteResponseMessage
2078        (const String & messageId_,
2079         const CIMException & cimException_,
2080         const QueueIdStack & queueIds_)
2081     : CIMResponseMessage
2082        (CIM_SUBSCRIPTION_INIT_COMPLETE_RESPONSE_MESSAGE,
2083         messageId_,
2084         cimException_,
2085         queueIds_)
2086     {
2087     }
2088 };
2089
2090 class PEGASUS_COMMON_LINKAGE
2091 CIMIndicationServiceDisabledResponseMessage
2092     : public CIMResponseMessage
2093 {
2094 public:
2095     CIMIndicationServiceDisabledResponseMessage
2096        (const String & messageId_,
2097         const CIMException & cimException_,
2098         const QueueIdStack & queueIds_)
2099     : CIMResponseMessage
2100        (CIM_INDICATION_SERVICE_DISABLED_RESPONSE_MESSAGE,
2101         messageId_,
2102         cimException_,
2103         queueIds_)
2104     {
2105     }
2106 };
2107
2108 class PEGASUS_COMMON_LINKAGE CIMDisableModuleResponseMessage
2109     : public CIMResponseMessage
2110 {
2111 public:
2112     CIMDisableModuleResponseMessage(
2113         const String& messageId_,
2114         const CIMException& cimException_,
2115         const QueueIdStack& queueIds_,
2116         const Array<Uint16>& operationalStatus_)
2117     : CIMResponseMessage(CIM_DISABLE_MODULE_RESPONSE_MESSAGE,
2118         messageId_, cimException_, queueIds_),
2119         operationalStatus(operationalStatus_)
2120     {
2121     }
2122
2123     Array<Uint16> operationalStatus;
2124 };
2125
2126 class PEGASUS_COMMON_LINKAGE CIMEnableModuleResponseMessage
2127     : public CIMResponseMessage
2128 {
2129 public:
2130     CIMEnableModuleResponseMessage(
2131         const String& messageId_,
2132         const CIMException& cimException_,
2133         const QueueIdStack& queueIds_,
2134         const Array<Uint16>& operationalStatus_)
2135     : CIMResponseMessage(CIM_ENABLE_MODULE_RESPONSE_MESSAGE,
2136         messageId_, cimException_, queueIds_),
2137         operationalStatus(operationalStatus_)
2138     {
2139     }
2140
2141     Array<Uint16> operationalStatus;
2142 };
2143
2144 class PEGASUS_COMMON_LINKAGE CIMNotifyProviderEnableResponseMessage
2145     : public CIMResponseMessage
2146 {
2147 public:
2148     CIMNotifyProviderEnableResponseMessage(
2149         const String& messageId_,
2150         const CIMException& cimException_,
2151         const QueueIdStack& queueIds_)
2152     : CIMResponseMessage(CIM_NOTIFY_PROVIDER_ENABLE_RESPONSE_MESSAGE,
2153         messageId_, cimException_, queueIds_)
2154     {
2155     }
2156 };
2157
2158 class PEGASUS_COMMON_LINKAGE CIMNotifyProviderFailResponseMessage
2159     : public CIMResponseMessage
2160 {
2161 public:
2162     CIMNotifyProviderFailResponseMessage(
2163         const String& messageId_,
2164         const CIMException& cimException_,
2165         const QueueIdStack& queueIds_)
2166     : CIMResponseMessage(CIM_NOTIFY_PROVIDER_FAIL_RESPONSE_MESSAGE,
2167         messageId_, cimException_, queueIds_)
2168     {
2169     }
2170
2171     Uint32 numSubscriptionsAffected;
2172 };
2173
2174 class PEGASUS_COMMON_LINKAGE CIMStopAllProvidersResponseMessage
2175     : public CIMResponseMessage
2176 {
2177 public:
2178     CIMStopAllProvidersResponseMessage(
2179         const String& messageId_,
2180         const CIMException& cimException_,
2181         const QueueIdStack& queueIds_)
2182     : CIMResponseMessage(CIM_STOP_ALL_PROVIDERS_RESPONSE_MESSAGE,
2183         messageId_, cimException_, queueIds_)
2184     {
2185     }
2186 };
2187
2188 class PEGASUS_COMMON_LINKAGE CIMInitializeProviderAgentResponseMessage
2189     : public CIMResponseMessage
2190 {
2191 public:
2192     CIMInitializeProviderAgentResponseMessage(
2193         const String& messageId_,
2194         const CIMException& cimException_,
2195         const QueueIdStack& queueIds_)
2196     : CIMResponseMessage(CIM_INITIALIZE_PROVIDER_AGENT_RESPONSE_MESSAGE,
2197         messageId_, cimException_, queueIds_)
2198     {
2199     }
2200 };
2201
2202 class PEGASUS_COMMON_LINKAGE CIMNotifyConfigChangeResponseMessage
2203     : public CIMResponseMessage
2204 {
2205 public:
2206     CIMNotifyConfigChangeResponseMessage(
2207         const String& messageId_,
2208         const CIMException& cimException_,
2209         const QueueIdStack& queueIds_)
2210     : CIMResponseMessage(CIM_NOTIFY_CONFIG_CHANGE_RESPONSE_MESSAGE,
2211         messageId_, cimException_, queueIds_)
2212     {
2213     }
2214 };
2215
2216 class PEGASUS_COMMON_LINKAGE ProvAgtGetScmoClassResponseMessage
2217     : public CIMResponseMessage
2218 {
2219 public:
2220     ProvAgtGetScmoClassResponseMessage(
2221         const String& messageId_,
2222         const CIMException& cimException_,
2223         const QueueIdStack& queueIds_,
2224         const SCMOClass& scmoClass_)
2225     : CIMResponseMessage(PROVAGT_GET_SCMOCLASS_RESPONSE_MESSAGE,
2226         messageId_, cimException_, queueIds_),
2227         scmoClass(scmoClass_)
2228     {
2229     }
2230
2231     SCMOClass scmoClass;
2232 };
2233
2234 class PEGASUS_COMMON_LINKAGE CIMNotifySubscriptionNotActiveResponseMessage
2235     : public CIMResponseMessage
2236 {
2237 public:
2238     CIMNotifySubscriptionNotActiveResponseMessage(
2239         const String& messageId_,
2240         const CIMException& cimException_,
2241         const QueueIdStack& queueIds_)
2242     : CIMResponseMessage(CIM_NOTIFY_SUBSCRIPTION_NOT_ACTIVE_RESPONSE_MESSAGE,
2243         messageId_, cimException_, queueIds_)
2244     {
2245     }
2246 };
2247
2248 class PEGASUS_COMMON_LINKAGE CIMNotifyListenerNotActiveResponseMessage
2249     : public CIMResponseMessage
2250 {
2251 public:
2252     CIMNotifyListenerNotActiveResponseMessage(
2253         const String& messageId_,
2254         const CIMException& cimException_,
2255         const QueueIdStack& queueIds_)
2256     : CIMResponseMessage(CIM_NOTIFY_LISTENER_NOT_ACTIVE_RESPONSE_MESSAGE,
2257         messageId_, cimException_, queueIds_)
2258     {
2259     }
2260 };
2261
2262 PEGASUS_NAMESPACE_END
2263
2264 #endif /* Pegasus_CIMMessage_h */