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

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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2