1 martin 1.19 //%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 martin 1.19 // 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 karl 1.7 //
|
28 martin 1.19 //////////////////////////////////////////////////////////////////////////
|
29 kumpf 1.1 //
30 //%/////////////////////////////////////////////////////////////////////////////
31
32 #ifndef Pegasus_CIMMessageSerializer_h
33 #define Pegasus_CIMMessageSerializer_h
34
35 #include <Pegasus/Common/Config.h>
36 #include <Pegasus/Common/CIMMessage.h>
37
38 PEGASUS_NAMESPACE_BEGIN
39
40 /**
41 CIMMessageSerializer provides a mechanism to convert a CIMMessage (or one
42 of its subclasses) to a stream of bytes. This stream of bytes can be
43 converted back to a CIMMessage object through use of the related
44 CIMMessageDeserializer class.
45
46 The format of the serialized message is not defined and is therefore
47 subject to change. The only requirement is that the CIMMessageSerializer
48 and CIMMessageDeserializer classes remain in sync to provide a two-way
49 mapping. (A quasi-XML encoding is currently used as an expedient
50 kumpf 1.1 solution. However, this encoding is not compliant with the CIM-XML
51 specification. A number of shortcuts have been taken to improve
52 operational efficiency.)
53
54 Note: Changes or additions to the CIMMessage definitions must be
55 reflected in these serialization classes. Likewise, changes to the
|
56 kumpf 1.13 structure of member data (such as the AcceptLanguageList class) and
|
57 kumpf 1.1 addition of new OperationContext containers will affect message
58 serialization.
59 */
60 class PEGASUS_COMMON_LINKAGE CIMMessageSerializer
61 {
62 public:
63
|
64 mike 1.12 static void serialize(Buffer& out, CIMMessage* cimMessage);
|
65 kumpf 1.1
66 private:
67
|
68 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
69 kumpf 1.1 static void _serializeCIMRequestMessage(
|
70 mike 1.12 Buffer& out,
|
71 kumpf 1.1 CIMRequestMessage* cimMessage);
72
|
73 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
74 kumpf 1.1 static void _serializeCIMResponseMessage(
|
75 mike 1.12 Buffer& out,
|
76 kumpf 1.1 CIMResponseMessage* cimMessage);
77
78 //
79 // Utility Methods
80 //
81
|
82 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
83 kumpf 1.1 static void _serializeUserInfo(
|
84 mike 1.12 Buffer& out,
|
85 kumpf 1.1 const String& authType,
86 const String& userName);
87
|
88 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
89 kumpf 1.1 static void _serializeQueueIdStack(
|
90 mike 1.12 Buffer& out,
|
91 kumpf 1.1 const QueueIdStack& queueIdStack);
92
|
93 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
94 kumpf 1.1 static void _serializeOperationContext(
|
95 mike 1.12 Buffer& out,
|
96 kumpf 1.1 const OperationContext& operationContext);
97
|
98 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
99 kumpf 1.13 static void _serializeContentLanguageList(
|
100 mike 1.12 Buffer& out,
|
101 kumpf 1.13 const ContentLanguageList& contentLanguages);
|
102 kumpf 1.1
|
103 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
104 kumpf 1.13 static void _serializeAcceptLanguageList(
|
105 mike 1.12 Buffer& out,
|
106 kumpf 1.13 const AcceptLanguageList& acceptLanguages);
|
107 kumpf 1.1
|
108 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
109 kumpf 1.1 static void _serializeCIMException(
|
110 mike 1.12 Buffer& out,
|
111 kumpf 1.1 const CIMException& cimException);
112
|
113 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
114 kumpf 1.1 static void _serializeCIMPropertyList(
|
115 mike 1.12 Buffer& out,
|
116 kumpf 1.1 const CIMPropertyList& cimPropertyList);
117
|
118 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
119 kumpf 1.1 static void _serializeCIMObjectPath(
|
120 mike 1.12 Buffer& out,
|
121 kumpf 1.1 const CIMObjectPath& cimObjectPath);
122
|
123 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
124 kumpf 1.1 static void _serializeCIMInstance(
|
125 mike 1.12 Buffer& out,
|
126 kumpf 1.1 const CIMInstance& cimInstance);
127
|
128 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
129 kumpf 1.1 static void _serializeCIMNamespaceName(
|
130 mike 1.12 Buffer& out,
|
131 kumpf 1.1 const CIMNamespaceName& cimNamespaceName);
132
|
133 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
134 kumpf 1.1 static void _serializeCIMName(
|
135 mike 1.12 Buffer& out,
|
136 kumpf 1.1 const CIMName& cimName);
137
|
138 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
139 jenny.yu 1.9 static void _serializeCIMObject(
|
140 mike 1.12 Buffer& out,
|
141 jenny.yu 1.9 const CIMObject& object);
142
|
143 kumpf 1.17 PEGASUS_HIDDEN_LINKAGE
144 static void _serializeCIMParamValue(
145 Buffer& out,
146 const CIMParamValue& paramValue);
147
|
148 kumpf 1.1 //
149 //
150 // CIM Request Messages
151 //
152 //
153
154 //
155 // CIMOperationRequestMessages
156 //
157
|
158 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
159 kumpf 1.1 static void _serializeCIMGetInstanceRequestMessage(
|
160 mike 1.12 Buffer& out,
|
161 kumpf 1.1 CIMGetInstanceRequestMessage* message);
162
|
163 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
164 kumpf 1.1 static void _serializeCIMDeleteInstanceRequestMessage(
|
165 mike 1.12 Buffer& out,
|
166 kumpf 1.1 CIMDeleteInstanceRequestMessage* message);
167
|
168 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
169 kumpf 1.1 static void _serializeCIMCreateInstanceRequestMessage(
|
170 mike 1.12 Buffer& out,
|
171 kumpf 1.1 CIMCreateInstanceRequestMessage* message);
172
|
173 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
174 kumpf 1.1 static void _serializeCIMModifyInstanceRequestMessage(
|
175 mike 1.12 Buffer& out,
|
176 kumpf 1.1 CIMModifyInstanceRequestMessage* message);
177
|
178 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
179 kumpf 1.1 static void _serializeCIMEnumerateInstancesRequestMessage(
|
180 mike 1.12 Buffer& out,
|
181 kumpf 1.1 CIMEnumerateInstancesRequestMessage* message);
182
|
183 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
184 kumpf 1.1 static void _serializeCIMEnumerateInstanceNamesRequestMessage(
|
185 mike 1.12 Buffer& out,
|
186 kumpf 1.1 CIMEnumerateInstanceNamesRequestMessage* message);
187
|
188 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
189 kumpf 1.1 static void _serializeCIMExecQueryRequestMessage(
|
190 mike 1.12 Buffer& out,
|
191 kumpf 1.1 CIMExecQueryRequestMessage* message);
192
|
193 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
194 kumpf 1.1 static void _serializeCIMAssociatorsRequestMessage(
|
195 mike 1.12 Buffer& out,
|
196 kumpf 1.1 CIMAssociatorsRequestMessage* message);
197
|
198 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
199 kumpf 1.1 static void _serializeCIMAssociatorNamesRequestMessage(
|
200 mike 1.12 Buffer& out,
|
201 kumpf 1.1 CIMAssociatorNamesRequestMessage* message);
202
|
203 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
204 kumpf 1.1 static void _serializeCIMReferencesRequestMessage(
|
205 mike 1.12 Buffer& out,
|
206 kumpf 1.1 CIMReferencesRequestMessage* message);
207
|
208 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
209 kumpf 1.1 static void _serializeCIMReferenceNamesRequestMessage(
|
210 mike 1.12 Buffer& out,
|
211 kumpf 1.1 CIMReferenceNamesRequestMessage* message);
212
|
213 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
214 kumpf 1.1 static void _serializeCIMGetPropertyRequestMessage(
|
215 mike 1.12 Buffer& out,
|
216 kumpf 1.1 CIMGetPropertyRequestMessage* message);
217
|
218 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
219 kumpf 1.1 static void _serializeCIMSetPropertyRequestMessage(
|
220 mike 1.12 Buffer& out,
|
221 kumpf 1.1 CIMSetPropertyRequestMessage* message);
222
|
223 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
224 kumpf 1.1 static void _serializeCIMInvokeMethodRequestMessage(
|
225 mike 1.12 Buffer& out,
|
226 kumpf 1.1 CIMInvokeMethodRequestMessage* message);
227
228 //
229 // CIMIndicationRequestMessages
230 //
231
|
232 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
233 kumpf 1.1 static void _serializeCIMCreateSubscriptionRequestMessage(
|
234 mike 1.12 Buffer& out,
|
235 kumpf 1.1 CIMCreateSubscriptionRequestMessage* message);
236
|
237 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
238 kumpf 1.1 static void _serializeCIMModifySubscriptionRequestMessage(
|
239 mike 1.12 Buffer& out,
|
240 kumpf 1.1 CIMModifySubscriptionRequestMessage* message);
241
|
242 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
243 kumpf 1.1 static void _serializeCIMDeleteSubscriptionRequestMessage(
|
244 mike 1.12 Buffer& out,
|
245 kumpf 1.1 CIMDeleteSubscriptionRequestMessage* message);
246
247 //
248 // Generic CIMRequestMessages
249 //
250
|
251 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
252 kumpf 1.1 static void _serializeCIMExportIndicationRequestMessage(
|
253 mike 1.12 Buffer& out,
|
254 kumpf 1.1 CIMExportIndicationRequestMessage* message);
255
|
256 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
257 kumpf 1.1 static void _serializeCIMProcessIndicationRequestMessage(
|
258 mike 1.12 Buffer& out,
|
259 kumpf 1.1 CIMProcessIndicationRequestMessage* message);
260
|
261 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
262 kumpf 1.1 static void _serializeCIMDisableModuleRequestMessage(
|
263 mike 1.12 Buffer& out,
|
264 kumpf 1.1 CIMDisableModuleRequestMessage* message);
265
|
266 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
267 kumpf 1.1 static void _serializeCIMEnableModuleRequestMessage(
|
268 mike 1.12 Buffer& out,
|
269 kumpf 1.1 CIMEnableModuleRequestMessage* message);
270
|
271 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
272 kumpf 1.1 static void _serializeCIMStopAllProvidersRequestMessage(
|
273 mike 1.12 Buffer& out,
|
274 kumpf 1.1 CIMStopAllProvidersRequestMessage* message);
275
|
276 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
277 kumpf 1.5 static void _serializeCIMInitializeProviderAgentRequestMessage(
|
278 mike 1.12 Buffer& out,
|
279 kumpf 1.5 CIMInitializeProviderAgentRequestMessage* message);
280
|
281 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
282 kumpf 1.6 static void _serializeCIMNotifyConfigChangeRequestMessage(
|
283 mike 1.12 Buffer& out,
|
284 kumpf 1.6 CIMNotifyConfigChangeRequestMessage* message);
285
|
286 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
287 carolann.graves 1.11 static void _serializeCIMSubscriptionInitCompleteRequestMessage(
|
288 mike 1.12 Buffer& out,
|
289 carolann.graves 1.11 CIMSubscriptionInitCompleteRequestMessage* message);
290
|
291 kumpf 1.2
|
292 kumpf 1.1 //
293 //
294 // CIM Response Messages
295 //
296 //
297
298 //
299 // CIMOperationResponseMessages
300 //
301
|
302 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
303 kumpf 1.1 static void _serializeCIMGetInstanceResponseMessage(
|
304 mike 1.12 Buffer& out,
|
305 kumpf 1.1 CIMGetInstanceResponseMessage* message);
306
|
307 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
308 kumpf 1.1 static void _serializeCIMDeleteInstanceResponseMessage(
|
309 mike 1.12 Buffer& out,
|
310 kumpf 1.1 CIMDeleteInstanceResponseMessage* message);
311
|
312 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
313 kumpf 1.1 static void _serializeCIMCreateInstanceResponseMessage(
|
314 mike 1.12 Buffer& out,
|
315 kumpf 1.1 CIMCreateInstanceResponseMessage* message);
316
|
317 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
318 kumpf 1.1 static void _serializeCIMModifyInstanceResponseMessage(
|
319 mike 1.12 Buffer& out,
|
320 kumpf 1.1 CIMModifyInstanceResponseMessage* message);
321
|
322 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
323 kumpf 1.1 static void _serializeCIMEnumerateInstancesResponseMessage(
|
324 mike 1.12 Buffer& out,
|
325 kumpf 1.1 CIMEnumerateInstancesResponseMessage* message);
326
|
327 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
328 kumpf 1.1 static void _serializeCIMEnumerateInstanceNamesResponseMessage(
|
329 mike 1.12 Buffer& out,
|
330 kumpf 1.1 CIMEnumerateInstanceNamesResponseMessage* message);
331
|
332 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
333 kumpf 1.1 static void _serializeCIMExecQueryResponseMessage(
|
334 mike 1.12 Buffer& out,
|
335 kumpf 1.1 CIMExecQueryResponseMessage* message);
336
|
337 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
338 kumpf 1.1 static void _serializeCIMAssociatorsResponseMessage(
|
339 mike 1.12 Buffer& out,
|
340 kumpf 1.1 CIMAssociatorsResponseMessage* message);
341
|
342 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
343 kumpf 1.1 static void _serializeCIMAssociatorNamesResponseMessage(
|
344 mike 1.12 Buffer& out,
|
345 kumpf 1.1 CIMAssociatorNamesResponseMessage* message);
346
|
347 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
348 kumpf 1.1 static void _serializeCIMReferencesResponseMessage(
|
349 mike 1.12 Buffer& out,
|
350 kumpf 1.1 CIMReferencesResponseMessage* message);
351
|
352 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
353 kumpf 1.1 static void _serializeCIMReferenceNamesResponseMessage(
|
354 mike 1.12 Buffer& out,
|
355 kumpf 1.1 CIMReferenceNamesResponseMessage* message);
356
|
357 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
358 kumpf 1.1 static void _serializeCIMGetPropertyResponseMessage(
|
359 mike 1.12 Buffer& out,
|
360 kumpf 1.1 CIMGetPropertyResponseMessage* message);
361
|
362 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
363 kumpf 1.1 static void _serializeCIMSetPropertyResponseMessage(
|
364 mike 1.12 Buffer& out,
|
365 kumpf 1.1 CIMSetPropertyResponseMessage* message);
366
|
367 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
368 kumpf 1.1 static void _serializeCIMInvokeMethodResponseMessage(
|
369 mike 1.12 Buffer& out,
|
370 kumpf 1.1 CIMInvokeMethodResponseMessage* message);
371
372 //
373 // CIMIndicationResponseMessages
374 //
375
|
376 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
377 kumpf 1.1 static void _serializeCIMCreateSubscriptionResponseMessage(
|
378 mike 1.12 Buffer& out,
|
379 kumpf 1.1 CIMCreateSubscriptionResponseMessage* message);
380
|
381 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
382 kumpf 1.1 static void _serializeCIMModifySubscriptionResponseMessage(
|
383 mike 1.12 Buffer& out,
|
384 kumpf 1.1 CIMModifySubscriptionResponseMessage* message);
385
|
386 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
387 kumpf 1.1 static void _serializeCIMDeleteSubscriptionResponseMessage(
|
388 mike 1.12 Buffer& out,
|
389 kumpf 1.1 CIMDeleteSubscriptionResponseMessage* message);
390
391 //
392 // Generic CIMResponseMessages
393 //
394
|
395 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
396 kumpf 1.1 static void _serializeCIMExportIndicationResponseMessage(
|
397 mike 1.12 Buffer& out,
|
398 kumpf 1.1 CIMExportIndicationResponseMessage* message);
399
|
400 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
401 kumpf 1.1 static void _serializeCIMProcessIndicationResponseMessage(
|
402 mike 1.12 Buffer& out,
|
403 kumpf 1.1 CIMProcessIndicationResponseMessage* message);
404
|
405 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
406 kumpf 1.1 static void _serializeCIMDisableModuleResponseMessage(
|
407 mike 1.12 Buffer& out,
|
408 kumpf 1.1 CIMDisableModuleResponseMessage* message);
409
|
410 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
411 kumpf 1.1 static void _serializeCIMEnableModuleResponseMessage(
|
412 mike 1.12 Buffer& out,
|
413 kumpf 1.1 CIMEnableModuleResponseMessage* message);
414
|
415 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
416 kumpf 1.1 static void _serializeCIMStopAllProvidersResponseMessage(
|
417 mike 1.12 Buffer& out,
|
418 kumpf 1.1 CIMStopAllProvidersResponseMessage* message);
419
|
420 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
421 kumpf 1.5 static void _serializeCIMInitializeProviderAgentResponseMessage(
|
422 mike 1.12 Buffer& out,
|
423 kumpf 1.5 CIMInitializeProviderAgentResponseMessage* message);
|
424 kumpf 1.6
|
425 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
426 kumpf 1.6 static void _serializeCIMNotifyConfigChangeResponseMessage(
|
427 mike 1.12 Buffer& out,
|
428 kumpf 1.6 CIMNotifyConfigChangeResponseMessage* message);
|
429 carolann.graves 1.11
|
430 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
431 carolann.graves 1.11 static void _serializeCIMSubscriptionInitCompleteResponseMessage(
|
432 mike 1.12 Buffer& out,
|
433 carolann.graves 1.11 CIMSubscriptionInitCompleteResponseMessage* message);
|
434 kumpf 1.1 };
435
436 PEGASUS_NAMESPACE_END
437
438 #endif /* Pegasus_CIMMessageSerializer_h */
|