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

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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2