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