1 martin 1.19 //%LICENSE////////////////////////////////////////////////////////////////
|
2 martin 1.20 //
|
3 martin 1.19 // Licensed to The Open Group (TOG) under one or more contributor license
4 // agreements. Refer to the OpenPegasusNOTICE.txt file distributed with
5 // this work for additional information regarding copyright ownership.
6 // Each contributor licenses this file to you under the OpenPegasus Open
7 // Source License; you may not use this file except in compliance with the
8 // License.
|
9 martin 1.20 //
|
10 martin 1.19 // Permission is hereby granted, free of charge, to any person obtaining a
11 // copy of this software and associated documentation files (the "Software"),
12 // to deal in the Software without restriction, including without limitation
13 // the rights to use, copy, modify, merge, publish, distribute, sublicense,
14 // and/or sell copies of the Software, and to permit persons to whom the
15 // Software is furnished to do so, subject to the following conditions:
|
16 martin 1.20 //
|
17 martin 1.19 // The above copyright notice and this permission notice shall be included
18 // in all copies or substantial portions of the Software.
|
19 martin 1.20 //
|
20 martin 1.19 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
21 martin 1.20 // 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 martin 1.20 //
|
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 venkat.puvvada 1.21 PEGASUS_HIDDEN_LINKAGE
292 static void _serializeCIMIndicationServiceDisabledRequestMessage(
293 Buffer& out,
294 CIMIndicationServiceDisabledRequestMessage* message);
|
295 kumpf 1.2
|
296 thilo.boehm 1.22 PEGASUS_HIDDEN_LINKAGE
297 static void _serializeProvAgtGetScmoClassRequestMessage(
298 Buffer& out,
299 ProvAgtGetScmoClassRequestMessage* message);
300
|
301 kumpf 1.1 //
302 //
303 // CIM Response Messages
304 //
305 //
306
307 //
308 // CIMOperationResponseMessages
309 //
310
|
311 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
312 kumpf 1.1 static void _serializeCIMGetInstanceResponseMessage(
|
313 mike 1.12 Buffer& out,
|
314 kumpf 1.1 CIMGetInstanceResponseMessage* message);
315
|
316 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
317 kumpf 1.1 static void _serializeCIMDeleteInstanceResponseMessage(
|
318 mike 1.12 Buffer& out,
|
319 kumpf 1.1 CIMDeleteInstanceResponseMessage* message);
320
|
321 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
322 kumpf 1.1 static void _serializeCIMCreateInstanceResponseMessage(
|
323 mike 1.12 Buffer& out,
|
324 kumpf 1.1 CIMCreateInstanceResponseMessage* message);
325
|
326 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
327 kumpf 1.1 static void _serializeCIMModifyInstanceResponseMessage(
|
328 mike 1.12 Buffer& out,
|
329 kumpf 1.1 CIMModifyInstanceResponseMessage* message);
330
|
331 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
332 kumpf 1.1 static void _serializeCIMEnumerateInstancesResponseMessage(
|
333 mike 1.12 Buffer& out,
|
334 kumpf 1.1 CIMEnumerateInstancesResponseMessage* message);
335
|
336 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
337 kumpf 1.1 static void _serializeCIMEnumerateInstanceNamesResponseMessage(
|
338 mike 1.12 Buffer& out,
|
339 kumpf 1.1 CIMEnumerateInstanceNamesResponseMessage* message);
340
|
341 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
342 kumpf 1.1 static void _serializeCIMExecQueryResponseMessage(
|
343 mike 1.12 Buffer& out,
|
344 kumpf 1.1 CIMExecQueryResponseMessage* message);
345
|
346 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
347 kumpf 1.1 static void _serializeCIMAssociatorsResponseMessage(
|
348 mike 1.12 Buffer& out,
|
349 kumpf 1.1 CIMAssociatorsResponseMessage* message);
350
|
351 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
352 kumpf 1.1 static void _serializeCIMAssociatorNamesResponseMessage(
|
353 mike 1.12 Buffer& out,
|
354 kumpf 1.1 CIMAssociatorNamesResponseMessage* message);
355
|
356 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
357 kumpf 1.1 static void _serializeCIMReferencesResponseMessage(
|
358 mike 1.12 Buffer& out,
|
359 kumpf 1.1 CIMReferencesResponseMessage* message);
360
|
361 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
362 kumpf 1.1 static void _serializeCIMReferenceNamesResponseMessage(
|
363 mike 1.12 Buffer& out,
|
364 kumpf 1.1 CIMReferenceNamesResponseMessage* message);
365
|
366 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
367 kumpf 1.1 static void _serializeCIMGetPropertyResponseMessage(
|
368 mike 1.12 Buffer& out,
|
369 kumpf 1.1 CIMGetPropertyResponseMessage* message);
370
|
371 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
372 kumpf 1.1 static void _serializeCIMSetPropertyResponseMessage(
|
373 mike 1.12 Buffer& out,
|
374 kumpf 1.1 CIMSetPropertyResponseMessage* message);
375
|
376 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
377 kumpf 1.1 static void _serializeCIMInvokeMethodResponseMessage(
|
378 mike 1.12 Buffer& out,
|
379 kumpf 1.1 CIMInvokeMethodResponseMessage* message);
380
381 //
382 // CIMIndicationResponseMessages
383 //
384
|
385 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
386 kumpf 1.1 static void _serializeCIMCreateSubscriptionResponseMessage(
|
387 mike 1.12 Buffer& out,
|
388 kumpf 1.1 CIMCreateSubscriptionResponseMessage* message);
389
|
390 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
391 kumpf 1.1 static void _serializeCIMModifySubscriptionResponseMessage(
|
392 mike 1.12 Buffer& out,
|
393 kumpf 1.1 CIMModifySubscriptionResponseMessage* message);
394
|
395 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
396 kumpf 1.1 static void _serializeCIMDeleteSubscriptionResponseMessage(
|
397 mike 1.12 Buffer& out,
|
398 kumpf 1.1 CIMDeleteSubscriptionResponseMessage* message);
399
400 //
401 // Generic CIMResponseMessages
402 //
403
|
404 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
405 kumpf 1.1 static void _serializeCIMExportIndicationResponseMessage(
|
406 mike 1.12 Buffer& out,
|
407 kumpf 1.1 CIMExportIndicationResponseMessage* message);
408
|
409 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
410 kumpf 1.1 static void _serializeCIMProcessIndicationResponseMessage(
|
411 mike 1.12 Buffer& out,
|
412 kumpf 1.1 CIMProcessIndicationResponseMessage* message);
413
|
414 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
415 kumpf 1.1 static void _serializeCIMDisableModuleResponseMessage(
|
416 mike 1.12 Buffer& out,
|
417 kumpf 1.1 CIMDisableModuleResponseMessage* message);
418
|
419 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
420 kumpf 1.1 static void _serializeCIMEnableModuleResponseMessage(
|
421 mike 1.12 Buffer& out,
|
422 kumpf 1.1 CIMEnableModuleResponseMessage* message);
423
|
424 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
425 kumpf 1.1 static void _serializeCIMStopAllProvidersResponseMessage(
|
426 mike 1.12 Buffer& out,
|
427 kumpf 1.1 CIMStopAllProvidersResponseMessage* message);
428
|
429 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
430 kumpf 1.5 static void _serializeCIMInitializeProviderAgentResponseMessage(
|
431 mike 1.12 Buffer& out,
|
432 kumpf 1.5 CIMInitializeProviderAgentResponseMessage* message);
|
433 kumpf 1.6
|
434 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
435 kumpf 1.6 static void _serializeCIMNotifyConfigChangeResponseMessage(
|
436 mike 1.12 Buffer& out,
|
437 kumpf 1.6 CIMNotifyConfigChangeResponseMessage* message);
|
438 carolann.graves 1.11
|
439 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
440 carolann.graves 1.11 static void _serializeCIMSubscriptionInitCompleteResponseMessage(
|
441 mike 1.12 Buffer& out,
|
442 carolann.graves 1.11 CIMSubscriptionInitCompleteResponseMessage* message);
|
443 venkat.puvvada 1.21
444 PEGASUS_HIDDEN_LINKAGE
445 static void _serializeCIMIndicationServiceDisabledResponseMessage(
446 Buffer& out,
447 CIMIndicationServiceDisabledResponseMessage* message);
|
448 thilo.boehm 1.22
449 PEGASUS_HIDDEN_LINKAGE
450 static void _serializeProvAgtGetScmoClassResponseMessage(
451 Buffer& out,
452 ProvAgtGetScmoClassResponseMessage* message);
|
453 kumpf 1.1 };
454
455 PEGASUS_NAMESPACE_END
456
457 #endif /* Pegasus_CIMMessageSerializer_h */
|