1 kumpf 1.1 //%2003////////////////////////////////////////////////////////////////////////
2 //
3 // 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 // IBM Corp.; EMC Corporation, The Open Group.
7 //
8 // Permission is hereby granted, free of charge, to any person obtaining a copy
9 // of this software and associated documentation files (the "Software"), to
10 // deal in the Software without restriction, including without limitation the
11 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
12 // sell copies of the Software, and to permit persons to whom the Software is
13 // furnished to do so, subject to the following conditions:
14 //
15 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
16 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
17 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
18 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
19 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
20 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
21 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22 kumpf 1.1 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23 //
24 //==============================================================================
25 //
26 // Author: Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com)
27 //
28 // Modified By:
29 //
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 kumpf 1.1 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 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 structure of member data (such as the AcceptLanguages class) and
57 addition of new OperationContext containers will affect message
58 serialization.
59 */
60 class PEGASUS_COMMON_LINKAGE CIMMessageSerializer
61 {
62 public:
63
64 kumpf 1.1 static void serialize(Array<Sint8>& out, CIMMessage* cimMessage);
65
66 private:
67
68 static void _serializeCIMRequestMessage(
69 Array<Sint8>& out,
70 CIMRequestMessage* cimMessage);
71
72 static void _serializeCIMResponseMessage(
73 Array<Sint8>& out,
74 CIMResponseMessage* cimMessage);
75
76 //
77 // Utility Methods
78 //
79
80 static void _serializeUserInfo(
81 Array<Sint8>& out,
82 const String& authType,
83 const String& userName);
84
85 kumpf 1.1 static void _serializeQueueIdStack(
86 Array<Sint8>& out,
87 const QueueIdStack& queueIdStack);
88
89 static void _serializeOperationContext(
90 Array<Sint8>& out,
91 const OperationContext& operationContext);
92
93 static void _serializeContentLanguages(
94 Array<Sint8>& out,
95 const ContentLanguages& contentLanguages);
96
97 static void _serializeAcceptLanguages(
98 Array<Sint8>& out,
99 const AcceptLanguages& acceptLanguages);
100
101 static void _serializeCIMException(
102 Array<Sint8>& out,
103 const CIMException& cimException);
104
105 static void _serializeCIMPropertyList(
106 kumpf 1.1 Array<Sint8>& out,
107 const CIMPropertyList& cimPropertyList);
108
109 static void _serializeCIMObjectPath(
110 Array<Sint8>& out,
111 const CIMObjectPath& cimObjectPath);
112
113 static void _serializeCIMInstance(
114 Array<Sint8>& out,
115 const CIMInstance& cimInstance);
116
117 static void _serializeCIMNamespaceName(
118 Array<Sint8>& out,
119 const CIMNamespaceName& cimNamespaceName);
120
121 static void _serializeCIMName(
122 Array<Sint8>& out,
123 const CIMName& cimName);
124
125 //
126 //
127 kumpf 1.1 // CIM Request Messages
128 //
129 //
130
131 //
132 // CIMOperationRequestMessages
133 //
134
135 static void _serializeCIMGetInstanceRequestMessage(
136 Array<Sint8>& out,
137 CIMGetInstanceRequestMessage* message);
138
139 static void _serializeCIMDeleteInstanceRequestMessage(
140 Array<Sint8>& out,
141 CIMDeleteInstanceRequestMessage* message);
142
143 static void _serializeCIMCreateInstanceRequestMessage(
144 Array<Sint8>& out,
145 CIMCreateInstanceRequestMessage* message);
146
147 static void _serializeCIMModifyInstanceRequestMessage(
148 kumpf 1.1 Array<Sint8>& out,
149 CIMModifyInstanceRequestMessage* message);
150
151 static void _serializeCIMEnumerateInstancesRequestMessage(
152 Array<Sint8>& out,
153 CIMEnumerateInstancesRequestMessage* message);
154
155 static void _serializeCIMEnumerateInstanceNamesRequestMessage(
156 Array<Sint8>& out,
157 CIMEnumerateInstanceNamesRequestMessage* message);
158
159 static void _serializeCIMExecQueryRequestMessage(
160 Array<Sint8>& out,
161 CIMExecQueryRequestMessage* message);
162
163 static void _serializeCIMAssociatorsRequestMessage(
164 Array<Sint8>& out,
165 CIMAssociatorsRequestMessage* message);
166
167 static void _serializeCIMAssociatorNamesRequestMessage(
168 Array<Sint8>& out,
169 kumpf 1.1 CIMAssociatorNamesRequestMessage* message);
170
171 static void _serializeCIMReferencesRequestMessage(
172 Array<Sint8>& out,
173 CIMReferencesRequestMessage* message);
174
175 static void _serializeCIMReferenceNamesRequestMessage(
176 Array<Sint8>& out,
177 CIMReferenceNamesRequestMessage* message);
178
179 static void _serializeCIMGetPropertyRequestMessage(
180 Array<Sint8>& out,
181 CIMGetPropertyRequestMessage* message);
182
183 static void _serializeCIMSetPropertyRequestMessage(
184 Array<Sint8>& out,
185 CIMSetPropertyRequestMessage* message);
186
187 static void _serializeCIMInvokeMethodRequestMessage(
188 Array<Sint8>& out,
189 CIMInvokeMethodRequestMessage* message);
190 kumpf 1.1
191 //
192 // CIMIndicationRequestMessages
193 //
194
195 static void _serializeCIMEnableIndicationsRequestMessage(
196 Array<Sint8>& out,
197 CIMEnableIndicationsRequestMessage* message);
198
199 static void _serializeCIMDisableIndicationsRequestMessage(
200 Array<Sint8>& out,
201 CIMDisableIndicationsRequestMessage* message);
202
203 static void _serializeCIMCreateSubscriptionRequestMessage(
204 Array<Sint8>& out,
205 CIMCreateSubscriptionRequestMessage* message);
206
207 static void _serializeCIMModifySubscriptionRequestMessage(
208 Array<Sint8>& out,
209 CIMModifySubscriptionRequestMessage* message);
210
211 kumpf 1.1 static void _serializeCIMDeleteSubscriptionRequestMessage(
212 Array<Sint8>& out,
213 CIMDeleteSubscriptionRequestMessage* message);
214
215 //
216 // Generic CIMRequestMessages
217 //
218
219 static void _serializeCIMExportIndicationRequestMessage(
220 Array<Sint8>& out,
221 CIMExportIndicationRequestMessage* message);
222
223 static void _serializeCIMProcessIndicationRequestMessage(
224 Array<Sint8>& out,
225 CIMProcessIndicationRequestMessage* message);
226
227 static void _serializeCIMDisableModuleRequestMessage(
228 Array<Sint8>& out,
229 CIMDisableModuleRequestMessage* message);
230
231 static void _serializeCIMEnableModuleRequestMessage(
232 kumpf 1.1 Array<Sint8>& out,
233 CIMEnableModuleRequestMessage* message);
234
235 static void _serializeCIMStopAllProvidersRequestMessage(
236 Array<Sint8>& out,
237 CIMStopAllProvidersRequestMessage* message);
238
|
252 kumpf 1.1 //
253 //
254 // CIM Response Messages
255 //
256 //
257
258 //
259 // CIMOperationResponseMessages
260 //
261
262 static void _serializeCIMGetInstanceResponseMessage(
263 Array<Sint8>& out,
264 CIMGetInstanceResponseMessage* message);
265
266 static void _serializeCIMDeleteInstanceResponseMessage(
267 Array<Sint8>& out,
268 CIMDeleteInstanceResponseMessage* message);
269
270 static void _serializeCIMCreateInstanceResponseMessage(
271 Array<Sint8>& out,
272 CIMCreateInstanceResponseMessage* message);
273 kumpf 1.1
274 static void _serializeCIMModifyInstanceResponseMessage(
275 Array<Sint8>& out,
276 CIMModifyInstanceResponseMessage* message);
277
278 static void _serializeCIMEnumerateInstancesResponseMessage(
279 Array<Sint8>& out,
280 CIMEnumerateInstancesResponseMessage* message);
281
282 static void _serializeCIMEnumerateInstanceNamesResponseMessage(
283 Array<Sint8>& out,
284 CIMEnumerateInstanceNamesResponseMessage* message);
285
286 static void _serializeCIMExecQueryResponseMessage(
287 Array<Sint8>& out,
288 CIMExecQueryResponseMessage* message);
289
290 static void _serializeCIMAssociatorsResponseMessage(
291 Array<Sint8>& out,
292 CIMAssociatorsResponseMessage* message);
293
294 kumpf 1.1 static void _serializeCIMAssociatorNamesResponseMessage(
295 Array<Sint8>& out,
296 CIMAssociatorNamesResponseMessage* message);
297
298 static void _serializeCIMReferencesResponseMessage(
299 Array<Sint8>& out,
300 CIMReferencesResponseMessage* message);
301
302 static void _serializeCIMReferenceNamesResponseMessage(
303 Array<Sint8>& out,
304 CIMReferenceNamesResponseMessage* message);
305
306 static void _serializeCIMGetPropertyResponseMessage(
307 Array<Sint8>& out,
308 CIMGetPropertyResponseMessage* message);
309
310 static void _serializeCIMSetPropertyResponseMessage(
311 Array<Sint8>& out,
312 CIMSetPropertyResponseMessage* message);
313
314 static void _serializeCIMInvokeMethodResponseMessage(
315 kumpf 1.1 Array<Sint8>& out,
316 CIMInvokeMethodResponseMessage* message);
317
318 //
319 // CIMIndicationResponseMessages
320 //
321
322 static void _serializeCIMEnableIndicationsResponseMessage(
323 Array<Sint8>& out,
324 CIMEnableIndicationsResponseMessage* message);
325
326 static void _serializeCIMDisableIndicationsResponseMessage(
327 Array<Sint8>& out,
328 CIMDisableIndicationsResponseMessage* message);
329
330 static void _serializeCIMCreateSubscriptionResponseMessage(
331 Array<Sint8>& out,
332 CIMCreateSubscriptionResponseMessage* message);
333
334 static void _serializeCIMModifySubscriptionResponseMessage(
335 Array<Sint8>& out,
336 kumpf 1.1 CIMModifySubscriptionResponseMessage* message);
337
338 static void _serializeCIMDeleteSubscriptionResponseMessage(
339 Array<Sint8>& out,
340 CIMDeleteSubscriptionResponseMessage* message);
341
342 //
343 // Generic CIMResponseMessages
344 //
345
346 static void _serializeCIMExportIndicationResponseMessage(
347 Array<Sint8>& out,
348 CIMExportIndicationResponseMessage* message);
349
350 static void _serializeCIMProcessIndicationResponseMessage(
351 Array<Sint8>& out,
352 CIMProcessIndicationResponseMessage* message);
353
354 static void _serializeCIMDisableModuleResponseMessage(
355 Array<Sint8>& out,
356 CIMDisableModuleResponseMessage* message);
357 kumpf 1.1
358 static void _serializeCIMEnableModuleResponseMessage(
359 Array<Sint8>& out,
360 CIMEnableModuleResponseMessage* message);
361
362 static void _serializeCIMStopAllProvidersResponseMessage(
363 Array<Sint8>& out,
364 CIMStopAllProvidersResponseMessage* message);
365
|