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.1 //
146 //
147 // CIM Request Messages
148 //
149 //
150
151 //
152 // CIMOperationRequestMessages
153 //
154
|
155 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
156 kumpf 1.1 static void _serializeCIMGetInstanceRequestMessage(
|
157 mike 1.12 Buffer& out,
|
158 kumpf 1.1 CIMGetInstanceRequestMessage* message);
159
|
160 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
161 kumpf 1.1 static void _serializeCIMDeleteInstanceRequestMessage(
|
162 mike 1.12 Buffer& out,
|
163 kumpf 1.1 CIMDeleteInstanceRequestMessage* message);
164
|
165 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
166 kumpf 1.1 static void _serializeCIMCreateInstanceRequestMessage(
|
167 mike 1.12 Buffer& out,
|
168 kumpf 1.1 CIMCreateInstanceRequestMessage* message);
169
|
170 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
171 kumpf 1.1 static void _serializeCIMModifyInstanceRequestMessage(
|
172 mike 1.12 Buffer& out,
|
173 kumpf 1.1 CIMModifyInstanceRequestMessage* message);
174
|
175 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
176 kumpf 1.1 static void _serializeCIMEnumerateInstancesRequestMessage(
|
177 mike 1.12 Buffer& out,
|
178 kumpf 1.1 CIMEnumerateInstancesRequestMessage* message);
179
|
180 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
181 kumpf 1.1 static void _serializeCIMEnumerateInstanceNamesRequestMessage(
|
182 mike 1.12 Buffer& out,
|
183 kumpf 1.1 CIMEnumerateInstanceNamesRequestMessage* message);
184
|
185 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
186 kumpf 1.1 static void _serializeCIMExecQueryRequestMessage(
|
187 mike 1.12 Buffer& out,
|
188 kumpf 1.1 CIMExecQueryRequestMessage* message);
189
|
190 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
191 kumpf 1.1 static void _serializeCIMAssociatorsRequestMessage(
|
192 mike 1.12 Buffer& out,
|
193 kumpf 1.1 CIMAssociatorsRequestMessage* message);
194
|
195 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
196 kumpf 1.1 static void _serializeCIMAssociatorNamesRequestMessage(
|
197 mike 1.12 Buffer& out,
|
198 kumpf 1.1 CIMAssociatorNamesRequestMessage* message);
199
|
200 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
201 kumpf 1.1 static void _serializeCIMReferencesRequestMessage(
|
202 mike 1.12 Buffer& out,
|
203 kumpf 1.1 CIMReferencesRequestMessage* message);
204
|
205 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
206 kumpf 1.1 static void _serializeCIMReferenceNamesRequestMessage(
|
207 mike 1.12 Buffer& out,
|
208 kumpf 1.1 CIMReferenceNamesRequestMessage* message);
209
|
210 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
211 kumpf 1.1 static void _serializeCIMGetPropertyRequestMessage(
|
212 mike 1.12 Buffer& out,
|
213 kumpf 1.1 CIMGetPropertyRequestMessage* message);
214
|
215 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
216 kumpf 1.1 static void _serializeCIMSetPropertyRequestMessage(
|
217 mike 1.12 Buffer& out,
|
218 kumpf 1.1 CIMSetPropertyRequestMessage* message);
219
|
220 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
221 kumpf 1.1 static void _serializeCIMInvokeMethodRequestMessage(
|
222 mike 1.12 Buffer& out,
|
223 kumpf 1.1 CIMInvokeMethodRequestMessage* message);
224
225 //
226 // CIMIndicationRequestMessages
227 //
228
|
229 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
230 kumpf 1.1 static void _serializeCIMCreateSubscriptionRequestMessage(
|
231 mike 1.12 Buffer& out,
|
232 kumpf 1.1 CIMCreateSubscriptionRequestMessage* message);
233
|
234 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
235 kumpf 1.1 static void _serializeCIMModifySubscriptionRequestMessage(
|
236 mike 1.12 Buffer& out,
|
237 kumpf 1.1 CIMModifySubscriptionRequestMessage* message);
238
|
239 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
240 kumpf 1.1 static void _serializeCIMDeleteSubscriptionRequestMessage(
|
241 mike 1.12 Buffer& out,
|
242 kumpf 1.1 CIMDeleteSubscriptionRequestMessage* message);
243
244 //
245 // Generic CIMRequestMessages
246 //
247
|
248 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
249 kumpf 1.1 static void _serializeCIMExportIndicationRequestMessage(
|
250 mike 1.12 Buffer& out,
|
251 kumpf 1.1 CIMExportIndicationRequestMessage* message);
252
|
253 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
254 kumpf 1.1 static void _serializeCIMProcessIndicationRequestMessage(
|
255 mike 1.12 Buffer& out,
|
256 kumpf 1.1 CIMProcessIndicationRequestMessage* message);
257
|
258 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
259 kumpf 1.1 static void _serializeCIMDisableModuleRequestMessage(
|
260 mike 1.12 Buffer& out,
|
261 kumpf 1.1 CIMDisableModuleRequestMessage* message);
262
|
263 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
264 kumpf 1.1 static void _serializeCIMEnableModuleRequestMessage(
|
265 mike 1.12 Buffer& out,
|
266 kumpf 1.1 CIMEnableModuleRequestMessage* message);
267
|
268 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
269 kumpf 1.1 static void _serializeCIMStopAllProvidersRequestMessage(
|
270 mike 1.12 Buffer& out,
|
271 kumpf 1.1 CIMStopAllProvidersRequestMessage* message);
272
|
273 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
274 kumpf 1.2 static void _serializeCIMInitializeProviderRequestMessage(
|
275 mike 1.12 Buffer& out,
|
276 kumpf 1.2 CIMInitializeProviderRequestMessage* message);
277
|
278 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
279 kumpf 1.5 static void _serializeCIMInitializeProviderAgentRequestMessage(
|
280 mike 1.12 Buffer& out,
|
281 kumpf 1.5 CIMInitializeProviderAgentRequestMessage* message);
282
|
283 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
284 kumpf 1.6 static void _serializeCIMNotifyConfigChangeRequestMessage(
|
285 mike 1.12 Buffer& out,
|
286 kumpf 1.6 CIMNotifyConfigChangeRequestMessage* message);
287
|
288 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
289 carolann.graves 1.11 static void _serializeCIMSubscriptionInitCompleteRequestMessage(
|
290 mike 1.12 Buffer& out,
|
291 carolann.graves 1.11 CIMSubscriptionInitCompleteRequestMessage* message);
292
|
293 kumpf 1.2
|
294 kumpf 1.1 //
295 //
296 // CIM Response Messages
297 //
298 //
299
300 //
301 // CIMOperationResponseMessages
302 //
303
|
304 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
305 kumpf 1.1 static void _serializeCIMGetInstanceResponseMessage(
|
306 mike 1.12 Buffer& out,
|
307 kumpf 1.1 CIMGetInstanceResponseMessage* message);
308
|
309 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
310 kumpf 1.1 static void _serializeCIMDeleteInstanceResponseMessage(
|
311 mike 1.12 Buffer& out,
|
312 kumpf 1.1 CIMDeleteInstanceResponseMessage* message);
313
|
314 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
315 kumpf 1.1 static void _serializeCIMCreateInstanceResponseMessage(
|
316 mike 1.12 Buffer& out,
|
317 kumpf 1.1 CIMCreateInstanceResponseMessage* message);
318
|
319 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
320 kumpf 1.1 static void _serializeCIMModifyInstanceResponseMessage(
|
321 mike 1.12 Buffer& out,
|
322 kumpf 1.1 CIMModifyInstanceResponseMessage* message);
323
|
324 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
325 kumpf 1.1 static void _serializeCIMEnumerateInstancesResponseMessage(
|
326 mike 1.12 Buffer& out,
|
327 kumpf 1.1 CIMEnumerateInstancesResponseMessage* message);
328
|
329 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
330 kumpf 1.1 static void _serializeCIMEnumerateInstanceNamesResponseMessage(
|
331 mike 1.12 Buffer& out,
|
332 kumpf 1.1 CIMEnumerateInstanceNamesResponseMessage* message);
333
|
334 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
335 kumpf 1.1 static void _serializeCIMExecQueryResponseMessage(
|
336 mike 1.12 Buffer& out,
|
337 kumpf 1.1 CIMExecQueryResponseMessage* message);
338
|
339 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
340 kumpf 1.1 static void _serializeCIMAssociatorsResponseMessage(
|
341 mike 1.12 Buffer& out,
|
342 kumpf 1.1 CIMAssociatorsResponseMessage* message);
343
|
344 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
345 kumpf 1.1 static void _serializeCIMAssociatorNamesResponseMessage(
|
346 mike 1.12 Buffer& out,
|
347 kumpf 1.1 CIMAssociatorNamesResponseMessage* message);
348
|
349 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
350 kumpf 1.1 static void _serializeCIMReferencesResponseMessage(
|
351 mike 1.12 Buffer& out,
|
352 kumpf 1.1 CIMReferencesResponseMessage* message);
353
|
354 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
355 kumpf 1.1 static void _serializeCIMReferenceNamesResponseMessage(
|
356 mike 1.12 Buffer& out,
|
357 kumpf 1.1 CIMReferenceNamesResponseMessage* message);
358
|
359 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
360 kumpf 1.1 static void _serializeCIMGetPropertyResponseMessage(
|
361 mike 1.12 Buffer& out,
|
362 kumpf 1.1 CIMGetPropertyResponseMessage* message);
363
|
364 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
365 kumpf 1.1 static void _serializeCIMSetPropertyResponseMessage(
|
366 mike 1.12 Buffer& out,
|
367 kumpf 1.1 CIMSetPropertyResponseMessage* message);
368
|
369 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
370 kumpf 1.1 static void _serializeCIMInvokeMethodResponseMessage(
|
371 mike 1.12 Buffer& out,
|
372 kumpf 1.1 CIMInvokeMethodResponseMessage* message);
373
374 //
375 // CIMIndicationResponseMessages
376 //
377
|
378 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
379 kumpf 1.1 static void _serializeCIMCreateSubscriptionResponseMessage(
|
380 mike 1.12 Buffer& out,
|
381 kumpf 1.1 CIMCreateSubscriptionResponseMessage* message);
382
|
383 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
384 kumpf 1.1 static void _serializeCIMModifySubscriptionResponseMessage(
|
385 mike 1.12 Buffer& out,
|
386 kumpf 1.1 CIMModifySubscriptionResponseMessage* message);
387
|
388 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
389 kumpf 1.1 static void _serializeCIMDeleteSubscriptionResponseMessage(
|
390 mike 1.12 Buffer& out,
|
391 kumpf 1.1 CIMDeleteSubscriptionResponseMessage* message);
392
393 //
394 // Generic CIMResponseMessages
395 //
396
|
397 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
398 kumpf 1.1 static void _serializeCIMExportIndicationResponseMessage(
|
399 mike 1.12 Buffer& out,
|
400 kumpf 1.1 CIMExportIndicationResponseMessage* message);
401
|
402 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
403 kumpf 1.1 static void _serializeCIMProcessIndicationResponseMessage(
|
404 mike 1.12 Buffer& out,
|
405 kumpf 1.1 CIMProcessIndicationResponseMessage* message);
406
|
407 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
408 kumpf 1.1 static void _serializeCIMDisableModuleResponseMessage(
|
409 mike 1.12 Buffer& out,
|
410 kumpf 1.1 CIMDisableModuleResponseMessage* message);
411
|
412 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
413 kumpf 1.1 static void _serializeCIMEnableModuleResponseMessage(
|
414 mike 1.12 Buffer& out,
|
415 kumpf 1.1 CIMEnableModuleResponseMessage* message);
416
|
417 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
418 kumpf 1.1 static void _serializeCIMStopAllProvidersResponseMessage(
|
419 mike 1.12 Buffer& out,
|
420 kumpf 1.1 CIMStopAllProvidersResponseMessage* message);
421
|
422 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
423 kumpf 1.2 static void _serializeCIMInitializeProviderResponseMessage(
|
424 mike 1.12 Buffer& out,
|
425 kumpf 1.2 CIMInitializeProviderResponseMessage* message);
426
|
427 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
428 kumpf 1.5 static void _serializeCIMInitializeProviderAgentResponseMessage(
|
429 mike 1.12 Buffer& out,
|
430 kumpf 1.5 CIMInitializeProviderAgentResponseMessage* message);
|
431 kumpf 1.6
|
432 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
433 kumpf 1.6 static void _serializeCIMNotifyConfigChangeResponseMessage(
|
434 mike 1.12 Buffer& out,
|
435 kumpf 1.6 CIMNotifyConfigChangeResponseMessage* message);
|
436 carolann.graves 1.11
|
437 mike 1.15 PEGASUS_HIDDEN_LINKAGE
|
438 carolann.graves 1.11 static void _serializeCIMSubscriptionInitCompleteResponseMessage(
|
439 mike 1.12 Buffer& out,
|
440 carolann.graves 1.11 CIMSubscriptionInitCompleteResponseMessage* message);
|
441 kumpf 1.1 };
442
443 PEGASUS_NAMESPACE_END
444
445 #endif /* Pegasus_CIMMessageSerializer_h */
|