(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                static Boolean expectContentOrCData(
 87            	XmlParser& parser, 
 88            	XmlEntry& entry);
 89 mike  1.19 
 90 mike  1.18     static Boolean testStartTag(
 91            	XmlParser& parser, 
 92            	XmlEntry& entry,
 93            	const char* tagName);
 94            
 95                static Boolean testEndTag(
 96            	XmlParser& parser, 
 97            	const char* tagName);
 98            
 99                static Boolean testStartTagOrEmptyTag(
100            	XmlParser& parser, 
101            	XmlEntry& entry,
102            	const char* tagName);
103            
104                static Boolean testContentOrCData(
105            	XmlParser& parser, 
106            	XmlEntry& entry);
107            
108 kumpf 1.24     static void getCimStartTag(
109            	XmlParser& parser, 
110            	const char*& cimVersion,
111            	const char*& dtdVersion);
112 mike  1.18 
113 kumpf 1.40     static CIMName getCimNameAttribute(
114 mike  1.18 	Uint32 lineNumber, 
115            	const XmlEntry& entry,
116            	const char* elementName,
117            	Boolean acceptNull = false);
118            
119                static String getClassNameAttribute(
120            	Uint32 lineNumber, 
121            	const XmlEntry& entry,
122            	const char* elementName);
123            
124 kumpf 1.35     static CIMName getClassOriginAttribute(
125 mike  1.18 	Uint32 lineNumber, 
126            	const XmlEntry& entry,
127            	const char* tagName);
128            
129 kumpf 1.35     static CIMName getReferenceClassAttribute(
130 mike  1.18 	Uint32 lineNumber, 
131            	const XmlEntry& entry,
132            	const char* elementName);
133            
134 kumpf 1.35     static CIMName getSuperClassAttribute(
135 mike  1.18 	Uint32 lineNumber, 
136            	const XmlEntry& entry,
137            	const char* tagName);
138            
139 kumpf 1.38     static Boolean getCimTypeAttribute(
140 mike  1.18 	Uint32 lineNumber, 
141            	const XmlEntry& entry, 
142 kumpf 1.38         CIMType& cimType,  // Output parameter
143 kumpf 1.21 	const char* tagName,
144            	const char* attributeName = "TYPE",
145            	Boolean required = true);
146 mike  1.18 
147                static Boolean getCimBooleanAttribute(
148            	Uint32 lineNumber,
149            	const XmlEntry& entry,
150            	const char* tagName,
151            	const char* attributeName,
152            	Boolean defaultValue,
153            	Boolean required);
154            
155 kumpf 1.41     static String decodeURICharacters(String uriString);
156            
157 mike  1.18     static Boolean stringToReal(
158            	const char* stringValue, 
159            	Real64& x);
160            
161                static Boolean stringToSignedInteger(
162            	const char* stringValue, 
163            	Sint64& x);
164            
165                static Boolean stringToUnsignedInteger(
166            	const char* stringValue, 
167            	Uint64& x);
168            
169                static CIMValue stringToValue(
170            	Uint32 lineNumber, 
171            	const char* valueString, 
172            	CIMType type);
173            
174 karl  1.20     /* getValueElement - Gets the CIMType and CIMValue for a single
175                    XML Value element.  It expects <VALUE> as the start tag.
176                    @return Returns True if the value element exists 
177                */
178 mike  1.18     static Boolean getValueElement(
179            	XmlParser& parser, 
180            	CIMType type, 
181            	CIMValue& value);
182            
183                static Boolean getStringValueElement(
184            	XmlParser& parser, 
185            	String& str, 
186            	Boolean required);
187            
188                static CIMValue stringArrayToValue(
189            	Uint32 lineNumber, 
190            	const Array<const char*>& array, 
191            	CIMType type);
192            
193                static Boolean getValueArrayElement(
194            	XmlParser& parser, 
195            	CIMType type, 
196            	CIMValue& value);
197            
198 kumpf 1.37     static CIMFlavor getFlavor(
199 mike  1.18 	XmlEntry& entry, 
200            	Uint32 lineNumber, 
201            	const char* tagName);
202            
203 kumpf 1.36     static CIMScope getOptionalScope(
204 mike  1.18 	XmlParser& parser);
205            
206                static Boolean getQualifierElement(
207            	XmlParser& parser, 
208            	CIMQualifier& qualifier);
209            
210                static Boolean getPropertyElement(
211            	XmlParser& parser, 
212            	CIMProperty& property);
213            
214                static Boolean getArraySizeAttribute(
215            	Uint32 lineNumber,
216            	const XmlEntry& entry,
217            	const char* tagName,
218            	Uint32& value);
219            
220                static Boolean getPropertyArrayElement(
221            	XmlParser& parser, 
222            	CIMProperty& property);
223            
224                static Boolean getHostElement(
225 mike  1.18 	XmlParser& parser,
226            	String& host);
227            
228                static Boolean getNameSpaceElement(
229            	XmlParser& parser,
230 kumpf 1.40 	CIMName& nameSpaceComponent);
231 mike  1.18 
232                static Boolean getLocalNameSpacePathElement(
233            	XmlParser& parser,
234            	String& nameSpace);
235            
236                static Boolean getNameSpacePathElement(
237            	XmlParser& parser,
238            	String& host,
239            	String& nameSpace);
240            
241                static Boolean getClassNameElement(
242            	XmlParser& parser,
243 kumpf 1.40 	CIMName& className,
244 mike  1.18 	Boolean required = false);
245            
246 kumpf 1.39     static CIMKeyBinding::Type getValueTypeAttribute(
247 mike  1.18 	Uint32 lineNumber, 
248            	const XmlEntry& entry,
249            	const char* elementName);
250            
251                static Boolean getKeyValueElement(
252            	XmlParser& parser,
253 kumpf 1.39 	CIMKeyBinding::Type& type,
254 mike  1.18 	String& value);
255            
256                static Boolean getKeyBindingElement(
257            	XmlParser& parser,
258 kumpf 1.40 	CIMName& name,
259 mike  1.18 	String& value,
260 kumpf 1.39 	CIMKeyBinding::Type& type);
261 mike  1.18 
262                static Boolean getInstanceNameElement(
263            	XmlParser& parser,
264            	String& className,
265 kumpf 1.39 	Array<CIMKeyBinding>& keyBindings);
266 mike  1.18 
267                static Boolean getInstanceNameElement(
268            	XmlParser& parser,
269 kumpf 1.28 	CIMObjectPath& instanceName);
270 mike  1.18 
271                static Boolean getInstancePathElement(
272            	XmlParser& parser,
273 kumpf 1.28 	CIMObjectPath& reference);
274 mike  1.18 
275                static Boolean getLocalInstancePathElement(
276            	XmlParser& parser,
277 kumpf 1.28 	CIMObjectPath& reference);
278 mike  1.18 
279                static Boolean getClassPathElement(
280            	XmlParser& parser,
281 kumpf 1.28 	CIMObjectPath& reference);
282 mike  1.18 
283                static Boolean getLocalClassPathElement(
284            	XmlParser& parser,
285 kumpf 1.28 	CIMObjectPath& reference);
286 mike  1.18 
287                static Boolean getValueReferenceElement(
288            	XmlParser& parser,
289 kumpf 1.28 	CIMObjectPath& reference);
290 mike  1.18 
291 kumpf 1.23     static Boolean getValueReferenceArrayElement(
292            	XmlParser& parser, 
293            	CIMValue& value);
294            
295 mike  1.18     static Boolean getPropertyReferenceElement(
296            	XmlParser& parser, 
297            	CIMProperty& property);
298            
299                static Boolean getParameterElement(
300            	XmlParser& parser, 
301            	CIMParameter& parameter);
302            
303                static Boolean getParameterArrayElement(
304            	XmlParser& parser, 
305            	CIMParameter& parameter);
306            
307                static Boolean getParameterReferenceElement(
308            	XmlParser& parser, 
309            	CIMParameter& parameter);
310            
311 kumpf 1.21     static Boolean getParameterReferenceArrayElement(
312            	XmlParser& parser, 
313            	CIMParameter& parameter);
314            
315 mike  1.18     static Boolean getQualifierDeclElement(
316            	XmlParser& parser, 
317            	CIMQualifierDecl& qualifierDecl);
318            
319                static Boolean getMethodElement(
320            	XmlParser& parser, 
321            	CIMMethod& method);
322            
323                static Boolean getClassElement(
324            	XmlParser& parser, 
325            	CIMClass& cimClass);
326            
327                static Boolean getInstanceElement(
328            	XmlParser& parser, 
329            	CIMInstance& cimInstance);
330            
331 mike  1.19     static Boolean getNamedInstanceElement(
332            	XmlParser& parser, 
333 kumpf 1.31 	CIMInstance& namedInstance);
334 mike  1.19 
335 mike  1.18     static void getObject(XmlParser& parser, CIMClass& x);
336            
337                static void getObject(XmlParser& parser, CIMInstance& x);
338            
339                static void getObject(XmlParser& parser, CIMQualifierDecl& x);
340            
341                static Boolean getMessageStartTag(
342            	XmlParser& parser, 
343            	String& id,
344 kumpf 1.24 	String& protocolVersion);
345 mike  1.18 
346                static Boolean getIMethodCallStartTag(
347            	XmlParser& parser, 
348            	const char*& name);
349            
350                static Boolean getIMethodResponseStartTag(
351            	XmlParser& parser, 
352            	const char*& name);
353            
354                static Boolean getIParamValueTag(
355            	XmlParser& parser, 
356            	const char*& name);
357            
358                static Boolean getPropertyValue(
359            	XmlParser& parser, 
360            	CIMValue& cimValue);
361            
362                static Boolean getBooleanValueElement(
363            	XmlParser& parser, 
364            	Boolean& result,
365            	Boolean required = false);
366 mike  1.18 
367                static Boolean getErrorElement(
368            	XmlParser& parser, 
369 kumpf 1.27 	CIMException& cimException,
370 mike  1.18 	Boolean required = false);
371            
372 kumpf 1.25     static Boolean getValueObjectElement(
373            	XmlParser& parser, 
374            	CIMObject& object);
375            
376                static Boolean getValueObjectWithPathElement(
377            	XmlParser& parser, 
378 kumpf 1.32 	CIMObject& objectWithPath);
379 kumpf 1.25 
380                static Boolean getValueObjectWithLocalPathElement(
381 mike  1.18 	XmlParser& parser, 
382 kumpf 1.32 	CIMObject& objectWithPath);
383 kumpf 1.25 
384                static void getObjectArray(
385            	XmlParser& parser, 
386 kumpf 1.32 	Array<CIMObject>& objectArray);
387 mike  1.18 
388                static Boolean getObjectNameElement(
389            	XmlParser& parser, 
390 kumpf 1.28 	CIMObjectPath& objectName);
391 mike  1.18 
392                static Boolean getObjectPathElement(
393            	XmlParser& parser, 
394 kumpf 1.28 	CIMObjectPath& objectPath);
395 mike  1.19 
396                static Boolean getEMethodCallStartTag(
397            	XmlParser& parser, 
398            	const char*& name);
399            
400                static Boolean getEMethodResponseStartTag(
401            	XmlParser& parser, 
402            	const char*& name);
403            
404 kumpf 1.42     static Boolean getEParamValueTag(
405            	XmlParser& parser, 
406            	const char*& name);
407            
408 mike  1.19     static Boolean getMethodCallStartTag(
409            	XmlParser& parser, 
410            	const char*& name);
411            
412                static Boolean getMethodResponseStartTag(
413            	XmlParser& parser, 
414            	const char*& name);
415            
416 kumpf 1.21     static Boolean getParamValueElement(
417 mike  1.19 	XmlParser& parser, 
418 kumpf 1.21 	CIMParamValue& paramValue);
419 mike  1.18 
420 kumpf 1.22     static Boolean getReturnValueElement(
421            	XmlParser& parser, 
422            	CIMValue& returnValue);
423            
424 mike  1.18 private:
425            
426                XmlReader() 
427                { 
428            
429                }
430            };
431            
432            PEGASUS_NAMESPACE_END
433            
434            #endif /* Pegasus_XmlReader_h */

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2