(file) Return to XmlReader.h CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / Common

  1 karl  1.43 //%2003////////////////////////////////////////////////////////////////////////
  2 mike  1.18 //
  3 karl  1.43 // 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 mike  1.18 //
  8            // Permission is hereby granted, free of charge, to any person obtaining a copy
  9 kumpf 1.33 // 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 mike  1.18 // 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 kumpf 1.33 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
 16 mike  1.18 // 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 kumpf 1.33 // 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 mike  1.18 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 22            // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 23            //
 24            //==============================================================================
 25            //
 26            // Author: Mike Brasher (mbrasher@bmc.com)
 27            //
 28 mike  1.19 // Modified By: Carol Ann Krug Graves, Hewlett-Packard Company
 29            //                  (carolann_graves@hp.com)
 30            //              Nitin Upasani, Hewlett-Packard Company (Nitin_Upasani@hp.com)
 31            //              Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com)
 32 mike  1.18 //
 33            //%/////////////////////////////////////////////////////////////////////////////
 34            
 35            #ifndef Pegasus_XmlReader_h
 36            #define Pegasus_XmlReader_h
 37            
 38            #include <Pegasus/Common/Config.h>
 39            #include <Pegasus/Common/XmlParser.h>
 40            #include <Pegasus/Common/CIMFlavor.h>
 41            #include <Pegasus/Common/CIMScope.h>
 42 kumpf 1.30 #include <Pegasus/Common/CIMType.h>
 43 kumpf 1.28 #include <Pegasus/Common/CIMObjectPath.h>
 44 kumpf 1.34 #include <Pegasus/Common/Linkage.h>
 45 mike  1.18 
 46            PEGASUS_NAMESPACE_BEGIN
 47            
 48            class CIMQualifier;
 49            class CIMQualifierDecl;
 50            class CIMClass;
 51            class CIMInstance;
 52            class CIMProperty;
 53            class CIMParameter;
 54            class CIMMethod;
 55            class CIMObject;
 56 mike  1.19 class CIMParamValue;
 57 kumpf 1.29 class CIMValue;
 58 mike  1.18 
 59            class PEGASUS_COMMON_LINKAGE XmlReader
 60            {
 61            public:
 62            
 63 kumpf 1.26     static void getXmlDeclaration(
 64 mike  1.18 	XmlParser& parser, 
 65 kumpf 1.26 	const char*& xmlVersion,
 66            	const char*& xmlEncoding);
 67            
 68                static Boolean testXmlDeclaration (
 69            	XmlParser& parser,
 70 mike  1.18 	XmlEntry& entry);
 71            
 72                static void expectStartTag(
 73            	XmlParser& parser, 
 74            	XmlEntry& entry,
 75            	const char* tagName);
 76            
 77                static void expectEndTag(
 78            	XmlParser& parser, 
 79            	const char* tagName);
 80            
 81                static void expectStartTagOrEmptyTag(
 82            	XmlParser& parser, 
 83            	XmlEntry& entry,
 84            	const char* tagName);
 85            
 86 kumpf 1.44     static void skipElement(
 87            	XmlParser& parser,
 88            	XmlEntry& entry);
 89            
 90 mike  1.18     static Boolean expectContentOrCData(
 91            	XmlParser& parser, 
 92            	XmlEntry& entry);
 93 mike  1.19 
 94 mike  1.18     static Boolean testStartTag(
 95            	XmlParser& parser, 
 96            	XmlEntry& entry,
 97            	const char* tagName);
 98            
 99                static Boolean testEndTag(
100            	XmlParser& parser, 
101            	const char* tagName);
102            
103                static Boolean testStartTagOrEmptyTag(
104            	XmlParser& parser, 
105            	XmlEntry& entry,
106            	const char* tagName);
107 kumpf 1.44 
108                static Boolean testStartTagOrEmptyTag(
109            	XmlParser& parser, 
110            	XmlEntry& entry);
111 mike  1.18 
112                static Boolean testContentOrCData(
113            	XmlParser& parser, 
114            	XmlEntry& entry);
115            
116 kumpf 1.24     static void getCimStartTag(
117            	XmlParser& parser, 
118            	const char*& cimVersion,
119            	const char*& dtdVersion);
120 mike  1.18 
121 kumpf 1.40     static CIMName getCimNameAttribute(
122 mike  1.18 	Uint32 lineNumber, 
123            	const XmlEntry& entry,
124            	const char* elementName,
125            	Boolean acceptNull = false);
126            
127                static String getClassNameAttribute(
128            	Uint32 lineNumber, 
129            	const XmlEntry& entry,
130            	const char* elementName);
131            
132 kumpf 1.35     static CIMName getClassOriginAttribute(
133 mike  1.18 	Uint32 lineNumber, 
134            	const XmlEntry& entry,
135            	const char* tagName);
136            
137 kumpf 1.35     static CIMName getReferenceClassAttribute(
138 mike  1.18 	Uint32 lineNumber, 
139            	const XmlEntry& entry,
140            	const char* elementName);
141            
142 kumpf 1.35     static CIMName getSuperClassAttribute(
143 mike  1.18 	Uint32 lineNumber, 
144            	const XmlEntry& entry,
145            	const char* tagName);
146            
147 kumpf 1.38     static Boolean getCimTypeAttribute(
148 mike  1.18 	Uint32 lineNumber, 
149            	const XmlEntry& entry, 
150 kumpf 1.38         CIMType& cimType,  // Output parameter
151 kumpf 1.21 	const char* tagName,
152            	const char* attributeName = "TYPE",
153            	Boolean required = true);
154 mike  1.18 
155                static Boolean getCimBooleanAttribute(
156            	Uint32 lineNumber,
157            	const XmlEntry& entry,
158            	const char* tagName,
159            	const char* attributeName,
160            	Boolean defaultValue,
161            	Boolean required);
162            
163 kumpf 1.41     static String decodeURICharacters(String uriString);
164            
165 mike  1.18     static Boolean stringToReal(
166            	const char* stringValue, 
167            	Real64& x);
168            
169                static Boolean stringToSignedInteger(
170            	const char* stringValue, 
171            	Sint64& x);
172            
173                static Boolean stringToUnsignedInteger(
174            	const char* stringValue, 
175            	Uint64& x);
176            
177                static CIMValue stringToValue(
178            	Uint32 lineNumber, 
179            	const char* valueString, 
180            	CIMType type);
181            
182 karl  1.20     /* getValueElement - Gets the CIMType and CIMValue for a single
183                    XML Value element.  It expects <VALUE> as the start tag.
184                    @return Returns True if the value element exists 
185                */
186 mike  1.18     static Boolean getValueElement(
187            	XmlParser& parser, 
188            	CIMType type, 
189            	CIMValue& value);
190            
191                static Boolean getStringValueElement(
192            	XmlParser& parser, 
193            	String& str, 
194            	Boolean required);
195            
196                static CIMValue stringArrayToValue(
197            	Uint32 lineNumber, 
198            	const Array<const char*>& array, 
199            	CIMType type);
200            
201                static Boolean getValueArrayElement(
202            	XmlParser& parser, 
203            	CIMType type, 
204            	CIMValue& value);
205            
206 kumpf 1.37     static CIMFlavor getFlavor(
207 mike  1.18 	XmlEntry& entry, 
208            	Uint32 lineNumber, 
209            	const char* tagName);
210            
211 kumpf 1.36     static CIMScope getOptionalScope(
212 mike  1.18 	XmlParser& parser);
213            
214                static Boolean getQualifierElement(
215            	XmlParser& parser, 
216            	CIMQualifier& qualifier);
217            
218                static Boolean getPropertyElement(
219            	XmlParser& parser, 
220            	CIMProperty& property);
221            
222                static Boolean getArraySizeAttribute(
223            	Uint32 lineNumber,
224            	const XmlEntry& entry,
225            	const char* tagName,
226            	Uint32& value);
227            
228                static Boolean getPropertyArrayElement(
229            	XmlParser& parser, 
230            	CIMProperty& property);
231            
232                static Boolean getHostElement(
233 mike  1.18 	XmlParser& parser,
234            	String& host);
235            
236                static Boolean getNameSpaceElement(
237            	XmlParser& parser,
238 kumpf 1.40 	CIMName& nameSpaceComponent);
239 mike  1.18 
240                static Boolean getLocalNameSpacePathElement(
241            	XmlParser& parser,
242            	String& nameSpace);
243            
244                static Boolean getNameSpacePathElement(
245            	XmlParser& parser,
246            	String& host,
247            	String& nameSpace);
248            
249                static Boolean getClassNameElement(
250            	XmlParser& parser,
251 kumpf 1.40 	CIMName& className,
252 mike  1.18 	Boolean required = false);
253            
254 kumpf 1.39     static CIMKeyBinding::Type getValueTypeAttribute(
255 mike  1.18 	Uint32 lineNumber, 
256            	const XmlEntry& entry,
257            	const char* elementName);
258            
259                static Boolean getKeyValueElement(
260            	XmlParser& parser,
261 kumpf 1.39 	CIMKeyBinding::Type& type,
262 mike  1.18 	String& value);
263            
264                static Boolean getKeyBindingElement(
265            	XmlParser& parser,
266 kumpf 1.40 	CIMName& name,
267 mike  1.18 	String& value,
268 kumpf 1.39 	CIMKeyBinding::Type& type);
269 mike  1.18 
270                static Boolean getInstanceNameElement(
271            	XmlParser& parser,
272            	String& className,
273 kumpf 1.39 	Array<CIMKeyBinding>& keyBindings);
274 mike  1.18 
275                static Boolean getInstanceNameElement(
276            	XmlParser& parser,
277 kumpf 1.28 	CIMObjectPath& instanceName);
278 mike  1.18 
279                static Boolean getInstancePathElement(
280            	XmlParser& parser,
281 kumpf 1.28 	CIMObjectPath& reference);
282 mike  1.18 
283                static Boolean getLocalInstancePathElement(
284            	XmlParser& parser,
285 kumpf 1.28 	CIMObjectPath& reference);
286 mike  1.18 
287                static Boolean getClassPathElement(
288            	XmlParser& parser,
289 kumpf 1.28 	CIMObjectPath& reference);
290 mike  1.18 
291                static Boolean getLocalClassPathElement(
292            	XmlParser& parser,
293 kumpf 1.28 	CIMObjectPath& reference);
294 mike  1.18 
295                static Boolean getValueReferenceElement(
296            	XmlParser& parser,
297 kumpf 1.28 	CIMObjectPath& reference);
298 mike  1.18 
299 kumpf 1.23     static Boolean getValueReferenceArrayElement(
300            	XmlParser& parser, 
301            	CIMValue& value);
302            
303 mike  1.18     static Boolean getPropertyReferenceElement(
304            	XmlParser& parser, 
305            	CIMProperty& property);
306            
307                static Boolean getParameterElement(
308            	XmlParser& parser, 
309            	CIMParameter& parameter);
310            
311                static Boolean getParameterArrayElement(
312            	XmlParser& parser, 
313            	CIMParameter& parameter);
314            
315                static Boolean getParameterReferenceElement(
316            	XmlParser& parser, 
317            	CIMParameter& parameter);
318            
319 kumpf 1.21     static Boolean getParameterReferenceArrayElement(
320            	XmlParser& parser, 
321            	CIMParameter& parameter);
322            
323 mike  1.18     static Boolean getQualifierDeclElement(
324            	XmlParser& parser, 
325            	CIMQualifierDecl& qualifierDecl);
326            
327                static Boolean getMethodElement(
328            	XmlParser& parser, 
329            	CIMMethod& method);
330            
331                static Boolean getClassElement(
332            	XmlParser& parser, 
333            	CIMClass& cimClass);
334            
335                static Boolean getInstanceElement(
336            	XmlParser& parser, 
337            	CIMInstance& cimInstance);
338            
339 mike  1.19     static Boolean getNamedInstanceElement(
340            	XmlParser& parser, 
341 kumpf 1.31 	CIMInstance& namedInstance);
342 mike  1.19 
343 mike  1.18     static void getObject(XmlParser& parser, CIMClass& x);
344            
345                static void getObject(XmlParser& parser, CIMInstance& x);
346            
347                static void getObject(XmlParser& parser, CIMQualifierDecl& x);
348            
349                static Boolean getMessageStartTag(
350            	XmlParser& parser, 
351            	String& id,
352 kumpf 1.24 	String& protocolVersion);
353 mike  1.18 
354                static Boolean getIMethodCallStartTag(
355            	XmlParser& parser, 
356            	const char*& name);
357            
358                static Boolean getIMethodResponseStartTag(
359            	XmlParser& parser, 
360            	const char*& name);
361            
362                static Boolean getIParamValueTag(
363            	XmlParser& parser, 
364            	const char*& name);
365            
366                static Boolean getPropertyValue(
367            	XmlParser& parser, 
368            	CIMValue& cimValue);
369            
370                static Boolean getBooleanValueElement(
371            	XmlParser& parser, 
372            	Boolean& result,
373            	Boolean required = false);
374 mike  1.18 
375                static Boolean getErrorElement(
376            	XmlParser& parser, 
377 kumpf 1.27 	CIMException& cimException,
378 mike  1.18 	Boolean required = false);
379            
380 kumpf 1.25     static Boolean getValueObjectElement(
381            	XmlParser& parser, 
382            	CIMObject& object);
383            
384                static Boolean getValueObjectWithPathElement(
385            	XmlParser& parser, 
386 kumpf 1.32 	CIMObject& objectWithPath);
387 kumpf 1.25 
388                static Boolean getValueObjectWithLocalPathElement(
389 mike  1.18 	XmlParser& parser, 
390 kumpf 1.32 	CIMObject& objectWithPath);
391 kumpf 1.25 
392                static void getObjectArray(
393            	XmlParser& parser, 
394 kumpf 1.32 	Array<CIMObject>& objectArray);
395 mike  1.18 
396                static Boolean getObjectNameElement(
397            	XmlParser& parser, 
398 kumpf 1.28 	CIMObjectPath& objectName);
399 mike  1.18 
400                static Boolean getObjectPathElement(
401            	XmlParser& parser, 
402 kumpf 1.28 	CIMObjectPath& objectPath);
403 mike  1.19 
404                static Boolean getEMethodCallStartTag(
405            	XmlParser& parser, 
406            	const char*& name);
407            
408                static Boolean getEMethodResponseStartTag(
409            	XmlParser& parser, 
410            	const char*& name);
411            
412 kumpf 1.42     static Boolean getEParamValueTag(
413            	XmlParser& parser, 
414            	const char*& name);
415            
416 mike  1.19     static Boolean getMethodCallStartTag(
417            	XmlParser& parser, 
418            	const char*& name);
419            
420                static Boolean getMethodResponseStartTag(
421            	XmlParser& parser, 
422            	const char*& name);
423            
424 kumpf 1.21     static Boolean getParamValueElement(
425 mike  1.19 	XmlParser& parser, 
426 kumpf 1.21 	CIMParamValue& paramValue);
427 mike  1.18 
428 kumpf 1.22     static Boolean getReturnValueElement(
429            	XmlParser& parser, 
430            	CIMValue& returnValue);
431            
432 mike  1.18 private:
433            
434                XmlReader() 
435                { 
436            
437                }
438            };
439            
440            PEGASUS_NAMESPACE_END
441            
442            #endif /* Pegasus_XmlReader_h */

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2