1 mike 1.21 //%/////////////////////////////////////////////////////////////////////////////
2 //
|
3 kumpf 1.21.2.1 // Copyright (c) 2000, 2001 BMC Software, Hewlett-Packard Company, IBM,
4 // The Open Group, Tivoli Systems
|
5 mike 1.21 //
6 // Permission is hereby granted, free of charge, to any person obtaining a copy
7 // of this software and associated documentation files (the "Software"), to
8 // deal in the Software without restriction, including without limitation the
9 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
10 // sell copies of the Software, and to permit persons to whom the Software is
11 // furnished to do so, subject to the following conditions:
12 //
13 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
14 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
15 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
16 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
17 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
18 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
19 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 //
22 //==============================================================================
23 //
24 // Author: Mike Brasher (mbrasher@bmc.com)
25 //
|
26 kumpf 1.21.2.1 // Modified By:
27 // Nitin Upasani, Hewlett-Packard Company (Nitin_Upasani@hp.com)
|
28 kumpf 1.21.2.7 // Nag Boranna, Hewlett-Packard Company (nagaraja_boranna@hp.com)
29 // Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com)
|
30 kumpf 1.21.2.6 //
|
31 mike 1.21 //%/////////////////////////////////////////////////////////////////////////////
32
33 #ifndef Pegasus_XmlWriter_h
34 #define Pegasus_XmlWriter_h
35
36 #include <iostream>
37 #include <Pegasus/Common/Config.h>
38 #include <Pegasus/Common/Exception.h>
39 #include <Pegasus/Common/Array.h>
40 #include <Pegasus/Common/String.h>
41 #include <Pegasus/Common/Indentor.h>
42 #include <Pegasus/Common/CIMReference.h>
|
43 kumpf 1.21.2.7 #include <Pegasus/Common/CIMPropertyList.h>
44 #include <Pegasus/Common/CIMNamedInstance.h>
|
45 mike 1.21
46 PEGASUS_NAMESPACE_BEGIN
47
48 class CIMConstQualifierDecl;
49 class CIMConstClass;
50 class CIMConstInstance;
51
52 class PEGASUS_COMMON_LINKAGE XmlWriter
53 {
54 public:
55
56 static void append(Array<Sint8>& out, Char16 x);
57
58 static void append(Array<Sint8>& out, char x)
59 {
60 append(out, Char16(x));
61 }
62
63 static void append(Array<Sint8>& out, const char* x);
64
65 static void append(Array<Sint8>& out, const String& x);
66 mike 1.21
67 static void append(Array<Sint8>& out, Uint32 x);
68
69 static void appendSpecial(Array<Sint8>& out, Char16 x);
70
71 static void appendSpecial(Array<Sint8>& out, char x);
72
73 static void appendSpecial(Array<Sint8>& out, const char* x);
74
75 static void appendSpecial(Array<Sint8>& out, const String& x);
76
77 static void append(Array<Sint8>& out, const Indentor& x);
78
79 static void appendLocalNameSpaceElement(
80 Array<Sint8>& out,
81 const String& nameSpace);
82
83 static void appendNameSpaceElement(
84 Array<Sint8>& out,
85 const String& nameSpace);
86
87 mike 1.21 static Array<Sint8> formatGetHeader(
88 const char* documentPath);
89
90 static Array<Sint8> formatMPostHeader(
91 const char* host,
92 const char* cimOperation,
93 const char* cimMethod,
94 const String& cimObject,
|
95 kumpf 1.21.2.6 const String& authenticationHeader,
|
96 mike 1.21 const Array<Sint8>& content);
97
98 static Array<Sint8> formatMethodResponseHeader(
99 const Array<Sint8>& content);
100
101 static Array<Sint8> formatMessageElement(
102 const String& messageId,
103 const Array<Sint8>& body);
104
105 static Array<Sint8> formatSimpleReqElement(
106 const Array<Sint8>& body);
107
108 static Array<Sint8> formatSimpleRspElement(
109 const Array<Sint8>& body);
110
111 static Array<Sint8> formatIMethodCallElement(
112 const char* name,
113 const String& nameSpace,
114 const Array<Sint8>& iParamValues);
115
116 static Array<Sint8> formatIReturnValueElement(
117 mike 1.21 const Array<Sint8>& body);
118
119 static Array<Sint8> formatIMethodResponseElement(
120 const char* name,
121 const Array<Sint8>& iParamValues);
122
123 static Array<Sint8>& formatIParamValueElement(
124 Array<Sint8>& out,
125 const char* name,
126 const Array<Sint8>& body);
127
128 static Array<Sint8> formatErrorElement(
129 CIMStatusCode code,
130 const char* description);
131
132 static Array<Sint8>& appendBooleanParameter(
133 Array<Sint8>& out,
134 const char* parameterName,
135 Boolean flag);
136
|
137 kumpf 1.21.2.4 static Array<Sint8>& appendStringIParameter(
|
138 mike 1.21 Array<Sint8>& out,
139 const char* parameterName,
140 const String& str);
141
142 static Array<Sint8>& appendClassNameParameter(
143 Array<Sint8>& out,
144 const char* parameterName,
145 const String& className);
146
147 static Array<Sint8>& appendQualifierNameParameter(
148 Array<Sint8>& out,
149 const char* parameterName,
150 const String& qualifierName);
151
152 static Array<Sint8>& appendClassParameter(
153 Array<Sint8>& out,
154 const char* parameterName,
155 const CIMConstClass& cimClass);
156
157 static Array<Sint8>& appendInstanceNameParameter(
158 Array<Sint8>& out,
159 mike 1.21 const char* parameterName,
160 const CIMReference& instanceName);
161
162 static Array<Sint8>& appendInstanceParameter(
163 Array<Sint8>& out,
164 const char* parameterName,
165 const CIMConstInstance& instance);
166
|
167 kumpf 1.21.2.7 static Array<Sint8>& appendNamedInstanceParameter(
168 Array<Sint8>& out,
169 const char* parameterName,
170 const CIMNamedInstance& namedInstance);
171
|
172 mike 1.21 static Array<Sint8>& appendQualifierDeclarationParameter(
173 Array<Sint8>& out,
174 const char* parameterName,
175 const CIMConstQualifierDecl& qualifierDecl);
176
177 static Array<Sint8>& appendClassNameElement(
178 Array<Sint8>& out,
179 const String& className);
180
181 static Array<Sint8>& appendInstanceNameElement(
182 Array<Sint8>& out,
183 const CIMReference& instanceName);
184
185 static Array<Sint8>& appendPropertyNameParameter(
186 Array<Sint8>& out,
187 const String& propertyName);
188
|
189 kumpf 1.21.2.5 static Array<Sint8>& appendPropertyValueParameter(
190 Array<Sint8>& out,
191 const char* parameterName,
192 const CIMValue& value);
193
194 static Array<Sint8>& appendPropertyListParameter(
195 Array<Sint8>& out,
|
196 kumpf 1.21.2.7 const CIMPropertyList& propertyList);
|
197 kumpf 1.21.2.5
|
198 mike 1.21 static Array<Sint8>& appendObjectNameParameter(
199 Array<Sint8>& out,
200 const char* name,
201 const CIMReference& objectName);
202
203 static void indentedPrint(
204 PEGASUS_STD(ostream)& os,
205 const char* text,
206 Uint32 indentChars = 2);
207
|
208 kumpf 1.21.2.4 static Array<Sint8> formatSimpleIMethodReqMessage(
|
209 mike 1.21 const char* host,
210 const String& nameSpace,
211 const char* iMethodName,
|
212 mike 1.21.2.2 const String& messageId,
|
213 kumpf 1.21.2.6 const String& authenticationHeader,
|
214 mike 1.21 const Array<Sint8>& body);
215
216 static Array<Sint8> formatSimpleRspMessage(
217 const char* iMethodName,
218 const String& messageId,
219 const Array<Sint8>& body);
220
221 static String getNextMessageId();
|
222 kumpf 1.21.2.3
|
223 kumpf 1.21.2.1 static Array<Sint8> formatSimpleIndicationReqMessage(
224 const char* host,
225 const char* iMethodName,
|
226 mike 1.21.2.2 const String& messageId,
|
227 kumpf 1.21.2.6 const String& authenticationHeader,
|
228 kumpf 1.21.2.1 const Array<Sint8>& body);
229
230 static Array<Sint8> formatEMethodCallElement(
231 const char* name,
232 const Array<Sint8>& iParamValues);
233
234 static Array<Sint8> formatMPostIndicationHeader(
235 const char* host,
236 const char* cimOperation,
237 const char* cimMethod,
|
238 kumpf 1.21.2.6 const String& authenticationHeader,
|
239 kumpf 1.21.2.1 const Array<Sint8>& content);
240
241 static Array<Sint8> formatSimpleExportReqElement(
242 const Array<Sint8>& body);
|
243 kumpf 1.21.2.3
244 static Array<Sint8> formatSimpleExportRspElement(
245 const Array<Sint8>& body);
246
247 static Array<Sint8> formatSimpleIndicationRspMessage(
248 const char* iMethodName,
249 const String& messageId,
250 const Array<Sint8>& body);
251
252 static Array<Sint8> formatEMethodResponseElement(
253 const char* name,
254 const Array<Sint8>& iParamValues);
255
256 static Array<Sint8> formatEMethodResponseHeader(
257 const Array<Sint8>& content);
|
258 kumpf 1.21.2.4
259 static Array<Sint8> formatSimpleMethodReqMessage(
260 const char* host,
261 const String& nameSpace,
262 const char* iMethodName,
263 const String& messageId,
|
264 kumpf 1.21.2.6 const String& authenticationHeader,
|
265 kumpf 1.21.2.4 const Array<Sint8>& body);
266
267 static Array<Sint8> formatMethodCallElement(
268 const char* name,
269 const String& nameSpace,
270 const Array<Sint8>& iParamValues);
271
272 static Array<Sint8> formatSimpleMethodRspMessage(
273 const char* iMethodName,
274 const String& messageId,
275 const Array<Sint8>& body);
276
277 static Array<Sint8> formatMethodResponseElement(
278 const char* name,
279 const Array<Sint8>& iParamValues);
280
281 static Array<Sint8>& appendStringParameter(
282 Array<Sint8>& out,
283 const char* parameterName,
284 const String& str);
285
286 kumpf 1.21.2.4 static Array<Sint8>& formatParamValueElement(
287 Array<Sint8>& out,
288 const char* name,
289 const Array<Sint8>& body);
290
291 static Array<Sint8> formatReturnValueElement(
292 const Array<Sint8>& body);
|
293 kumpf 1.21.2.6
294 static Array<Sint8> formatUnauthorizedResponseHeader(
295 const String& content);
|
296 mike 1.21
297 private:
298
299 XmlWriter() { }
300 };
301
302 PEGASUS_COMMON_LINKAGE Array<Sint8>& operator<<(
303 Array<Sint8>& out,
304 const char* x);
305
306 PEGASUS_COMMON_LINKAGE Array<Sint8>& operator<<(Array<Sint8>& out, char x);
307
308 PEGASUS_COMMON_LINKAGE Array<Sint8>& operator<<(Array<Sint8>& out, Char16 x);
309
310 PEGASUS_COMMON_LINKAGE Array<Sint8>& operator<<(
311 Array<Sint8>& out,
312 const String& x);
313
314 PEGASUS_COMMON_LINKAGE Array<Sint8>& operator<<(
315 Array<Sint8>& out,
316 const Indentor& x);
317 mike 1.21
318 PEGASUS_COMMON_LINKAGE Array<Sint8>& operator<<(
319 Array<Sint8>& out,
320 const Array<Sint8>& x);
321
322 PEGASUS_COMMON_LINKAGE Array<Sint8>& operator<<(
323 Array<Sint8>& out,
324 Uint32 x);
325
326 PEGASUS_NAMESPACE_END
327
328 #endif /* Pegasus_XmlWriter_h */
|