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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2