1 kumpf 1.1 //%2003////////////////////////////////////////////////////////////////////////
2 //
3 // Copyright (c) 2000, 2001, 2002 BMC Software, Hewlett-Packard Development
4 // Company, L. P., IBM Corp., The Open Group, Tivoli Systems.
5 // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L. P.;
6 // IBM Corp.; EMC Corporation, The Open Group.
7 //
8 // Permission is hereby granted, free of charge, to any person obtaining a copy
9 // of this software and associated documentation files (the "Software"), to
10 // deal in the Software without restriction, including without limitation the
11 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
12 // sell copies of the Software, and to permit persons to whom the Software is
13 // furnished to do so, subject to the following conditions:
14 //
15 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
16 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
17 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
18 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
19 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
20 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
21 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22 kumpf 1.1 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23 //
24 //==============================================================================
25 //
26 // Author: Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com)
27 //
28 // Modified By:
29 //
30 //%/////////////////////////////////////////////////////////////////////////////
31
32 #ifndef Pegasus_CIMMessageDeserializer_h
33 #define Pegasus_CIMMessageDeserializer_h
34
35 #include <Pegasus/Common/Config.h>
36 #include <Pegasus/Common/CIMMessage.h>
37 #include <Pegasus/Common/XmlParser.h>
38
39 PEGASUS_NAMESPACE_BEGIN
40
41 /**
42 CIMMessageDeserializer provides a mechanism to convert a stream of bytes
43 kumpf 1.1 generated by the CIMMessageSerializer class into a CIMMessage object.
44 For additional information, please see the CIMMessageSerializer
45 description.
46 */
47 class PEGASUS_COMMON_LINKAGE CIMMessageDeserializer
48 {
49 public:
50
51 static CIMMessage* deserialize(Sint8* buffer);
52
53 private:
54
55 static CIMRequestMessage* _deserializeCIMRequestMessage(
56 XmlParser& parser,
57 Uint32 type);
58
59 static CIMResponseMessage* _deserializeCIMResponseMessage(
60 XmlParser& parser,
61 Uint32 type);
62
63 //
64 kumpf 1.1 // Utility Methods
65 //
66
67 static void _deserializeUserInfo(
68 XmlParser& parser,
69 String& authType,
70 String& userName);
71
72 static void _deserializeQueueIdStack(
73 XmlParser& parser,
74 QueueIdStack& queueIdStack);
75
76 static void _deserializeOperationContext(
77 XmlParser& parser,
78 OperationContext& operationContext);
79
80 static void _deserializeContentLanguages(
81 XmlParser& parser,
82 ContentLanguages& contentLanguages);
83
84 static void _deserializeAcceptLanguages(
85 kumpf 1.1 XmlParser& parser,
86 AcceptLanguages& acceptLanguages);
87
88 static void _deserializeCIMException(
89 XmlParser& parser,
90 CIMException& cimException);
91
92 static void _deserializeCIMPropertyList(
93 XmlParser& parser,
94 CIMPropertyList& propertyList);
95
96 static Boolean _deserializeCIMObjectPath(
97 XmlParser& parser,
98 CIMObjectPath& cimObjectPath);
99
100 static Boolean _deserializeCIMInstance(
101 XmlParser& parser,
102 CIMInstance& cimInstance);
103
104 static void _deserializeCIMNamespaceName(
105 XmlParser& parser,
106 kumpf 1.1 CIMNamespaceName& cimNamespaceName);
107
108 static Boolean _deserializeCIMName(
109 XmlParser& parser,
110 CIMName& cimName);
111
112 //
113 //
114 // CIM Request Messages
115 //
116 //
117
118 //
119 // CIMOperationRequestMessages
120 //
121
122 static CIMGetInstanceRequestMessage*
123 _deserializeCIMGetInstanceRequestMessage(XmlParser& parser);
124
125 static CIMDeleteInstanceRequestMessage*
126 _deserializeCIMDeleteInstanceRequestMessage(XmlParser& parser);
127 kumpf 1.1
128 static CIMCreateInstanceRequestMessage*
129 _deserializeCIMCreateInstanceRequestMessage(XmlParser& parser);
130
131 static CIMModifyInstanceRequestMessage*
132 _deserializeCIMModifyInstanceRequestMessage(XmlParser& parser);
133
134 static CIMEnumerateInstancesRequestMessage*
135 _deserializeCIMEnumerateInstancesRequestMessage(XmlParser& parser);
136
137 static CIMEnumerateInstanceNamesRequestMessage*
138 _deserializeCIMEnumerateInstanceNamesRequestMessage(XmlParser& parser);
139
140 static CIMExecQueryRequestMessage*
141 _deserializeCIMExecQueryRequestMessage(XmlParser& parser);
142
143 static CIMAssociatorsRequestMessage*
144 _deserializeCIMAssociatorsRequestMessage(XmlParser& parser);
145
146 static CIMAssociatorNamesRequestMessage*
147 _deserializeCIMAssociatorNamesRequestMessage(XmlParser& parser);
148 kumpf 1.1
149 static CIMReferencesRequestMessage*
150 _deserializeCIMReferencesRequestMessage(XmlParser& parser);
151
152 static CIMReferenceNamesRequestMessage*
153 _deserializeCIMReferenceNamesRequestMessage(XmlParser& parser);
154
155 static CIMGetPropertyRequestMessage*
156 _deserializeCIMGetPropertyRequestMessage(XmlParser& parser);
157
158 static CIMSetPropertyRequestMessage*
159 _deserializeCIMSetPropertyRequestMessage(XmlParser& parser);
160
161 static CIMInvokeMethodRequestMessage*
162 _deserializeCIMInvokeMethodRequestMessage(XmlParser& parser);
163
164 //
165 // CIMIndicationRequestMessages
166 //
167
168 static CIMEnableIndicationsRequestMessage*
169 kumpf 1.1 _deserializeCIMEnableIndicationsRequestMessage(XmlParser& parser);
170
171 static CIMDisableIndicationsRequestMessage*
172 _deserializeCIMDisableIndicationsRequestMessage(XmlParser& parser);
173
174 static CIMCreateSubscriptionRequestMessage*
175 _deserializeCIMCreateSubscriptionRequestMessage(XmlParser& parser);
176
177 static CIMModifySubscriptionRequestMessage*
178 _deserializeCIMModifySubscriptionRequestMessage(XmlParser& parser);
179
180 static CIMDeleteSubscriptionRequestMessage*
181 _deserializeCIMDeleteSubscriptionRequestMessage(XmlParser& parser);
182
183 //
184 // Generic CIMRequestMessages
185 //
186
187 static CIMExportIndicationRequestMessage*
188 _deserializeCIMExportIndicationRequestMessage(XmlParser& parser);
189
190 kumpf 1.1 static CIMProcessIndicationRequestMessage*
191 _deserializeCIMProcessIndicationRequestMessage(XmlParser& parser);
192
193 static CIMConsumeIndicationRequestMessage*
194 _deserializeCIMConsumeIndicationRequestMessage(XmlParser& parser);
195
196 static CIMDisableModuleRequestMessage*
197 _deserializeCIMDisableModuleRequestMessage(XmlParser& parser);
198
199 static CIMEnableModuleRequestMessage*
200 _deserializeCIMEnableModuleRequestMessage(XmlParser& parser);
201
202 static CIMStopAllProvidersRequestMessage*
203 _deserializeCIMStopAllProvidersRequestMessage(XmlParser& parser);
204
205 //
206 //
207 // CIM Response Messages
208 //
209 //
210
211 kumpf 1.1 //
212 // CIM Operation Response Messages
213 //
214
215 static CIMGetInstanceResponseMessage*
216 _deserializeCIMGetInstanceResponseMessage(XmlParser& parser);
217
218 static CIMDeleteInstanceResponseMessage*
219 _deserializeCIMDeleteInstanceResponseMessage(XmlParser& parser);
220
221 static CIMCreateInstanceResponseMessage*
222 _deserializeCIMCreateInstanceResponseMessage(XmlParser& parser);
223
224 static CIMModifyInstanceResponseMessage*
225 _deserializeCIMModifyInstanceResponseMessage(XmlParser& parser);
226
227 static CIMEnumerateInstancesResponseMessage*
228 _deserializeCIMEnumerateInstancesResponseMessage(XmlParser& parser);
229
230 static CIMEnumerateInstanceNamesResponseMessage*
231 _deserializeCIMEnumerateInstanceNamesResponseMessage(XmlParser& parser);
232 kumpf 1.1
233 static CIMExecQueryResponseMessage*
234 _deserializeCIMExecQueryResponseMessage(XmlParser& parser);
235
236 static CIMAssociatorsResponseMessage*
237 _deserializeCIMAssociatorsResponseMessage(XmlParser& parser);
238
239 static CIMAssociatorNamesResponseMessage*
240 _deserializeCIMAssociatorNamesResponseMessage(XmlParser& parser);
241
242 static CIMReferencesResponseMessage*
243 _deserializeCIMReferencesResponseMessage(XmlParser& parser);
244
245 static CIMReferenceNamesResponseMessage*
246 _deserializeCIMReferenceNamesResponseMessage(XmlParser& parser);
247
248 static CIMGetPropertyResponseMessage*
249 _deserializeCIMGetPropertyResponseMessage(XmlParser& parser);
250
251 static CIMSetPropertyResponseMessage*
252 _deserializeCIMSetPropertyResponseMessage(XmlParser& parser);
253 kumpf 1.1
254 static CIMInvokeMethodResponseMessage*
255 _deserializeCIMInvokeMethodResponseMessage(XmlParser& parser);
256
257 //
258 // CIM Indication Response Messages
259 //
260
261 static CIMEnableIndicationsResponseMessage*
262 _deserializeCIMEnableIndicationsResponseMessage(XmlParser& parser);
263
264 static CIMDisableIndicationsResponseMessage*
265 _deserializeCIMDisableIndicationsResponseMessage(XmlParser& parser);
266
267 static CIMCreateSubscriptionResponseMessage*
268 _deserializeCIMCreateSubscriptionResponseMessage(XmlParser& parser);
269
270 static CIMModifySubscriptionResponseMessage*
271 _deserializeCIMModifySubscriptionResponseMessage(XmlParser& parser);
272
273 static CIMDeleteSubscriptionResponseMessage*
274 kumpf 1.1 _deserializeCIMDeleteSubscriptionResponseMessage(XmlParser& parser);
275
276 //
277 // Generic CIMResponseMessages
278 //
279
280 static CIMExportIndicationResponseMessage*
281 _deserializeCIMExportIndicationResponseMessage(XmlParser& parser);
282
283 static CIMProcessIndicationResponseMessage*
284 _deserializeCIMProcessIndicationResponseMessage(XmlParser& parser);
285
286 #if 0 // ATTN: This message type is currently not defined
287 static CIMConsumeIndicationResponseMessage*
288 _deserializeCIMConsumeIndicationResponseMessage(XmlParser& parser);
289 #endif
290
291 static CIMDisableModuleResponseMessage*
292 _deserializeCIMDisableModuleResponseMessage(XmlParser& parser);
293
294 static CIMEnableModuleResponseMessage*
295 kumpf 1.1 _deserializeCIMEnableModuleResponseMessage(XmlParser& parser);
296
297 static CIMStopAllProvidersResponseMessage*
298 _deserializeCIMStopAllProvidersResponseMessage(XmlParser& parser);
299
300 };
301
302 PEGASUS_NAMESPACE_END
303
304 #endif /* Pegasus_CIMMessageDeserializer_h */
|