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

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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2