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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2