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