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

  1 martin 1.55 //%LICENSE////////////////////////////////////////////////////////////////
  2 martin 1.56 //
  3 martin 1.55 // Licensed to The Open Group (TOG) under one or more contributor license
  4             // agreements.  Refer to the OpenPegasusNOTICE.txt file distributed with
  5             // this work for additional information regarding copyright ownership.
  6             // Each contributor licenses this file to you under the OpenPegasus Open
  7             // Source License; you may not use this file except in compliance with the
  8             // License.
  9 martin 1.56 //
 10 martin 1.55 // Permission is hereby granted, free of charge, to any person obtaining a
 11             // copy of this software and associated documentation files (the "Software"),
 12             // to deal in the Software without restriction, including without limitation
 13             // the rights to use, copy, modify, merge, publish, distribute, sublicense,
 14             // and/or sell copies of the Software, and to permit persons to whom the
 15             // Software is furnished to do so, subject to the following conditions:
 16 martin 1.56 //
 17 martin 1.55 // The above copyright notice and this permission notice shall be included
 18             // in all copies or substantial portions of the Software.
 19 martin 1.56 //
 20 martin 1.55 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 21 martin 1.56 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 22 martin 1.55 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 23             // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
 24             // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
 25             // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 26             // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 27 martin 1.56 //
 28 martin 1.55 //////////////////////////////////////////////////////////////////////////
 29 mike   1.18 //
 30             //%/////////////////////////////////////////////////////////////////////////////
 31             
 32             #ifndef Pegasus_XmlReader_h
 33             #define Pegasus_XmlReader_h
 34             
 35             #include <Pegasus/Common/Config.h>
 36             #include <Pegasus/Common/XmlParser.h>
 37             #include <Pegasus/Common/CIMFlavor.h>
 38             #include <Pegasus/Common/CIMScope.h>
 39 kumpf  1.30 #include <Pegasus/Common/CIMType.h>
 40 kumpf  1.28 #include <Pegasus/Common/CIMObjectPath.h>
 41 kumpf  1.34 #include <Pegasus/Common/Linkage.h>
 42 karl   1.58.4.4 #include <Pegasus/Common/UintArg.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 venkat.puvvada 1.57     struct CharString
 58                         {
 59                             const char *value;
 60                             Uint32 length;
 61                             CharString(const char *value, Uint32 length) :
 62                                 value(value), length(length)
 63                             {
 64                             }
 65                         };
 66                         
 67 mike           1.18     class PEGASUS_COMMON_LINKAGE XmlReader
 68                         {
 69                         public:
 70                         
 71 kumpf          1.26         static void getXmlDeclaration(
 72 kumpf          1.51             XmlParser& parser,
 73                                 const char*& xmlVersion,
 74                                 const char*& xmlEncoding);
 75                         
 76                             static Boolean testXmlDeclaration(
 77                                 XmlParser& parser,
 78                                 XmlEntry& entry);
 79 mike           1.18     
 80                             static void expectStartTag(
 81 kumpf          1.51             XmlParser& parser,
 82                                 XmlEntry& entry,
 83                                 const char* tagName);
 84 mike           1.18     
 85                             static void expectEndTag(
 86 kumpf          1.51             XmlParser& parser,
 87                                 const char* tagName);
 88 mike           1.18     
 89                             static void expectStartTagOrEmptyTag(
 90 kumpf          1.51             XmlParser& parser,
 91                                 XmlEntry& entry,
 92                                 const char* tagName);
 93 mike           1.18     
 94 kumpf          1.44         static void skipElement(
 95 kumpf          1.51             XmlParser& parser,
 96                                 XmlEntry& entry);
 97 kumpf          1.44     
 98 mike           1.18         static Boolean expectContentOrCData(
 99 kumpf          1.51             XmlParser& parser,
100                                 XmlEntry& entry);
101 mike           1.19     
102 mike           1.18         static Boolean testStartTag(
103 kumpf          1.51             XmlParser& parser,
104                                 XmlEntry& entry,
105                                 const char* tagName);
106 mike           1.18     
107                             static Boolean testEndTag(
108 kumpf          1.51             XmlParser& parser,
109                                 const char* tagName);
110 mike           1.18     
111                             static Boolean testStartTagOrEmptyTag(
112 kumpf          1.51             XmlParser& parser,
113                                 XmlEntry& entry,
114                                 const char* tagName);
115 kumpf          1.44     
116                             static Boolean testStartTagOrEmptyTag(
117 kumpf          1.51             XmlParser& parser,
118                                 XmlEntry& entry);
119 mike           1.18     
120                             static Boolean testContentOrCData(
121 kumpf          1.51             XmlParser& parser,
122                                 XmlEntry& entry);
123 mike           1.18     
124 kumpf          1.24         static void getCimStartTag(
125 kumpf          1.51             XmlParser& parser,
126                                 const char*& cimVersion,
127                                 const char*& dtdVersion);
128 mike           1.18     
129 kumpf          1.40         static CIMName getCimNameAttribute(
130 kumpf          1.51             Uint32 lineNumber,
131                                 const XmlEntry& entry,
132                                 const char* elementName,
133                                 Boolean acceptNull = false);
134 mike           1.18     
135                             static String getClassNameAttribute(
136 kumpf          1.51             Uint32 lineNumber,
137                                 const XmlEntry& entry,
138                                 const char* elementName);
139 mike           1.18     
140 kumpf          1.35         static CIMName getClassOriginAttribute(
141 kumpf          1.51             Uint32 lineNumber,
142                                 const XmlEntry& entry,
143                                 const char* tagName);
144 mike           1.18     
145 thilo.boehm    1.54         typedef enum _embeddedObjectAttributeType
146                             {
147                                 NO_EMBEDDED_OBJECT     = 0,
148                                 EMBEDDED_OBJECT_ATTR   = 1,
149                                 EMBEDDED_INSTANCE_ATTR = 2
150                             } EmbeddedObjectAttributeType;
151                         
152                             static EmbeddedObjectAttributeType getEmbeddedObjectAttribute(
153 kumpf          1.51             Uint32 lineNumber,
154                                 const XmlEntry& entry,
155                                 const char* tagName);
156 dave.sudlik    1.49     
157 kumpf          1.35         static CIMName getReferenceClassAttribute(
158 kumpf          1.51             Uint32 lineNumber,
159                                 const XmlEntry& entry,
160                                 const char* elementName);
161 mike           1.18     
162 kumpf          1.35         static CIMName getSuperClassAttribute(
163 kumpf          1.51             Uint32 lineNumber,
164                                 const XmlEntry& entry,
165                                 const char* tagName);
166 mike           1.18     
167 kumpf          1.38         static Boolean getCimTypeAttribute(
168 kumpf          1.51             Uint32 lineNumber,
169                                 const XmlEntry& entry,
170 kumpf          1.38             CIMType& cimType,  // Output parameter
171 kumpf          1.51             const char* tagName,
172                                 const char* attributeName = "TYPE",
173                                 Boolean required = true);
174 mike           1.18     
175                             static Boolean getCimBooleanAttribute(
176 kumpf          1.51             Uint32 lineNumber,
177                                 const XmlEntry& entry,
178                                 const char* tagName,
179                                 const char* attributeName,
180                                 Boolean defaultValue,
181                                 Boolean required);
182 mike           1.18     
183 kumpf          1.41         static String decodeURICharacters(String uriString);
184                         
185 mike           1.18         static CIMValue stringToValue(
186 kumpf          1.51             Uint32 lineNumber,
187                                 const char* valueString,
188                                 CIMType type);
189 mike           1.18     
190 venkat.puvvada 1.57         static CIMValue stringToValue(
191                                 Uint32 lineNumber,
192                                 const char* valueString,
193                                 Uint32 valueStringLen,
194                                 CIMType type);
195                         
196                         
197 karl           1.20         /* getValueElement - Gets the CIMType and CIMValue for a single
198                                 XML Value element.  It expects <VALUE> as the start tag.
199 kumpf          1.51             @return Returns True if the value element exists
200 karl           1.20         */
201 mike           1.18         static Boolean getValueElement(
202 kumpf          1.51             XmlParser& parser,
203                                 CIMType type,
204                                 CIMValue& value);
205 mike           1.18     
206                             static Boolean getStringValueElement(
207 kumpf          1.51             XmlParser& parser,
208                                 String& str,
209                                 Boolean required);
210 mike           1.18     
211 karl           1.58.4.2 // KS_PULL_BEGIN
212 karl           1.58.4.3     static Boolean getUint32ArgValueElement(
213 karl           1.58.4.1         XmlParser& parser,
214                                 Uint32Arg& val,
215                                 Boolean required);
216                         
217 karl           1.58.4.3     static Boolean getUint32ValueElement(
218                                 XmlParser& parser,
219                                 Uint32& val,
220                                 Boolean required);
221                         
222 karl           1.58.4.1     static Boolean getUint64ValueElement(
223                                 XmlParser& parser,
224                                 Uint64Arg& val,
225                                 Boolean required);
226 karl           1.58.4.2 //KS_PULL_END
227 karl           1.58.4.1 
228 mike           1.18         static CIMValue stringArrayToValue(
229 kumpf          1.51             Uint32 lineNumber,
230                                 const Array<const char*>& array,
231                                 CIMType type);
232 mike           1.18     
233                             static Boolean getValueArrayElement(
234 kumpf          1.51             XmlParser& parser,
235                                 CIMType type,
236                                 CIMValue& value);
237 mike           1.18     
238 kumpf          1.37         static CIMFlavor getFlavor(
239 kumpf          1.51             XmlEntry& entry,
240                                 Uint32 lineNumber,
241                                 const char* tagName);
242 mike           1.18     
243 kumpf          1.36         static CIMScope getOptionalScope(
244 kumpf          1.51             XmlParser& parser);
245 mike           1.18     
246                             static Boolean getQualifierElement(
247 kumpf          1.51             XmlParser& parser,
248                                 CIMQualifier& qualifier);
249 mike           1.18     
250                             static Boolean getPropertyElement(
251 kumpf          1.51             XmlParser& parser,
252                                 CIMProperty& property);
253 mike           1.18     
254                             static Boolean getArraySizeAttribute(
255 kumpf          1.51             Uint32 lineNumber,
256                                 const XmlEntry& entry,
257                                 const char* tagName,
258                                 Uint32& value);
259 mike           1.18     
260                             static Boolean getPropertyArrayElement(
261 kumpf          1.51             XmlParser& parser,
262                                 CIMProperty& property);
263 mike           1.18     
264                             static Boolean getHostElement(
265 kumpf          1.51             XmlParser& parser,
266                                 String& host);
267 mike           1.18     
268                             static Boolean getNameSpaceElement(
269 kumpf          1.51             XmlParser& parser,
270                                 CIMName& nameSpaceComponent);
271 mike           1.18     
272                             static Boolean getLocalNameSpacePathElement(
273 kumpf          1.51             XmlParser& parser,
274                                 String& nameSpace);
275 mike           1.18     
276                             static Boolean getNameSpacePathElement(
277 kumpf          1.51             XmlParser& parser,
278                                 String& host,
279                                 String& nameSpace);
280 mike           1.18     
281                             static Boolean getClassNameElement(
282 kumpf          1.51             XmlParser& parser,
283                                 CIMName& className,
284                                 Boolean required = false);
285 mike           1.18     
286 kumpf          1.39         static CIMKeyBinding::Type getValueTypeAttribute(
287 kumpf          1.51             Uint32 lineNumber,
288                                 const XmlEntry& entry,
289                                 const char* elementName);
290 mike           1.18     
291                             static Boolean getKeyValueElement(
292 kumpf          1.51             XmlParser& parser,
293                                 CIMKeyBinding::Type& type,
294                                 String& value);
295 mike           1.18     
296                             static Boolean getKeyBindingElement(
297 kumpf          1.51             XmlParser& parser,
298                                 CIMName& name,
299                                 String& value,
300                                 CIMKeyBinding::Type& type);
301 mike           1.18     
302                             static Boolean getInstanceNameElement(
303 kumpf          1.51             XmlParser& parser,
304                                 String& className,
305                                 Array<CIMKeyBinding>& keyBindings);
306 mike           1.18     
307                             static Boolean getInstanceNameElement(
308 kumpf          1.51             XmlParser& parser,
309                                 CIMObjectPath& instanceName);
310 mike           1.18     
311                             static Boolean getInstancePathElement(
312 kumpf          1.51             XmlParser& parser,
313                                 CIMObjectPath& reference);
314 mike           1.18     
315                             static Boolean getLocalInstancePathElement(
316 kumpf          1.51             XmlParser& parser,
317                                 CIMObjectPath& reference);
318 mike           1.18     
319                             static Boolean getClassPathElement(
320 kumpf          1.51             XmlParser& parser,
321                                 CIMObjectPath& reference);
322 mike           1.18     
323                             static Boolean getLocalClassPathElement(
324 kumpf          1.51             XmlParser& parser,
325                                 CIMObjectPath& reference);
326 mike           1.18     
327                             static Boolean getValueReferenceElement(
328 kumpf          1.51             XmlParser& parser,
329                                 CIMObjectPath& reference);
330 mike           1.18     
331 kumpf          1.23         static Boolean getValueReferenceArrayElement(
332 kumpf          1.51             XmlParser& parser,
333                                 CIMValue& value);
334 kumpf          1.23     
335 mike           1.18         static Boolean getPropertyReferenceElement(
336 kumpf          1.51             XmlParser& parser,
337                                 CIMProperty& property);
338 mike           1.18     
339                             static Boolean getParameterElement(
340 kumpf          1.51             XmlParser& parser,
341                                 CIMParameter& parameter);
342 mike           1.18     
343                             static Boolean getParameterArrayElement(
344 kumpf          1.51             XmlParser& parser,
345                                 CIMParameter& parameter);
346 mike           1.18     
347                             static Boolean getParameterReferenceElement(
348 kumpf          1.51             XmlParser& parser,
349                                 CIMParameter& parameter);
350 mike           1.18     
351 kumpf          1.21         static Boolean getParameterReferenceArrayElement(
352 kumpf          1.51             XmlParser& parser,
353                                 CIMParameter& parameter);
354 kumpf          1.21     
355 mike           1.18         static Boolean getQualifierDeclElement(
356 kumpf          1.51             XmlParser& parser,
357                                 CIMQualifierDecl& qualifierDecl);
358 mike           1.18     
359                             static Boolean getMethodElement(
360 kumpf          1.51             XmlParser& parser,
361                                 CIMMethod& method);
362 mike           1.18     
363                             static Boolean getClassElement(
364 kumpf          1.51             XmlParser& parser,
365                                 CIMClass& cimClass);
366 mike           1.18     
367                             static Boolean getInstanceElement(
368 kumpf          1.51             XmlParser& parser,
369                                 CIMInstance& cimInstance);
370 mike           1.18     
371 mike           1.19         static Boolean getNamedInstanceElement(
372 kumpf          1.51             XmlParser& parser,
373                                 CIMInstance& namedInstance);
374 mike           1.19     
375 karl           1.58.4.2 //EXP_PULL_BEGIN
376 karl           1.58.4.1     static Boolean getInstanceWithPathElement(
377                                 XmlParser& parser,
378                                 CIMInstance& namedInstance);
379                         //EXP_PULL_END
380                         
381 mike           1.18         static void getObject(XmlParser& parser, CIMClass& x);
382                         
383                             static void getObject(XmlParser& parser, CIMInstance& x);
384                         
385                             static void getObject(XmlParser& parser, CIMQualifierDecl& x);
386                         
387                             static Boolean getMessageStartTag(
388 kumpf          1.51             XmlParser& parser,
389                                 String& id,
390                                 String& protocolVersion);
391 mike           1.18     
392                             static Boolean getIMethodCallStartTag(
393 kumpf          1.51             XmlParser& parser,
394                                 const char*& name);
395 mike           1.18     
396                             static Boolean getIMethodResponseStartTag(
397 kumpf          1.46             XmlParser& parser,
398                                 const char*& name,
399                                 Boolean& isEmptyTag);
400 mike           1.18     
401                             static Boolean getIParamValueTag(
402 kumpf          1.51             XmlParser& parser,
403                                 const char*& name,
404                                 Boolean& isEmptyTag);
405 kumpf          1.45     
406 karl           1.58.4.1 // EXP_PULL_BEGIN
407                         
408                             static Boolean getParamValueTag(
409                                 XmlParser& parser,
410                                 const char*& name,
411                                 Boolean& isEmptyTag);
412                         
413                             static Boolean getIReturnValueTag(
414                                 XmlParser& parser,
415                                 const char*& name,
416                                 Boolean& isEmptyTag);
417                         // EXP_PULL_END
418 kumpf          1.45         static void rejectNullIParamValue(
419                                 XmlParser& parser,
420                                 Boolean isEmptyTag,
421                                 const char* paramName);
422 mike           1.18     
423 karl           1.58.4.1 // EXP_PULL_BEGIN
424                             static void rejectNullParamValue(
425                                 XmlParser& parser,
426                                 Boolean isEmptyTag,
427                                 const char* paramName);
428                             static void rejectNullIReturnValue(
429                                 XmlParser& parser,
430                                 Boolean isEmptyTag,
431                                 const char* paramName);
432                         // EXP_PULL_END
433 mike           1.18         static Boolean getPropertyValue(
434 kumpf          1.51             XmlParser& parser,
435                                 CIMValue& cimValue);
436 mike           1.18     
437                             static Boolean getBooleanValueElement(
438 kumpf          1.51             XmlParser& parser,
439                                 Boolean& result,
440                                 Boolean required = false);
441 mike           1.18     
442                             static Boolean getErrorElement(
443 kumpf          1.51             XmlParser& parser,
444                                 CIMException& cimException,
445                                 Boolean required = false);
446 mike           1.18     
447 kumpf          1.25         static Boolean getValueObjectElement(
448 kumpf          1.51             XmlParser& parser,
449                                 CIMObject& object);
450 kumpf          1.25     
451                             static Boolean getValueObjectWithPathElement(
452 kumpf          1.51             XmlParser& parser,
453                                 CIMObject& objectWithPath);
454 kumpf          1.25     
455                             static Boolean getValueObjectWithLocalPathElement(
456 kumpf          1.51             XmlParser& parser,
457                                 CIMObject& objectWithPath);
458 kumpf          1.25     
459                             static void getObjectArray(
460 kumpf          1.51             XmlParser& parser,
461                                 Array<CIMObject>& objectArray);
462 mike           1.18     
463                             static Boolean getObjectNameElement(
464 kumpf          1.51             XmlParser& parser,
465                                 CIMObjectPath& objectName);
466 mike           1.18     
467                             static Boolean getObjectPathElement(
468 kumpf          1.51             XmlParser& parser,
469                                 CIMObjectPath& objectPath);
470 mike           1.19     
471                             static Boolean getEMethodCallStartTag(
472 kumpf          1.51             XmlParser& parser,
473                                 const char*& name);
474 mike           1.19     
475                             static Boolean getEMethodResponseStartTag(
476 kumpf          1.46             XmlParser& parser,
477                                 const char*& name,
478                                 Boolean& isEmptyTag);
479 mike           1.19     
480 kumpf          1.42         static Boolean getEParamValueTag(
481 kumpf          1.51             XmlParser& parser,
482                                 const char*& name);
483 kumpf          1.42     
484 mike           1.19         static Boolean getMethodCallStartTag(
485 kumpf          1.51             XmlParser& parser,
486                                 const char*& name);
487 mike           1.19     
488                             static Boolean getMethodResponseStartTag(
489 kumpf          1.46             XmlParser& parser,
490                                 const char*& name,
491                                 Boolean& isEmptyTag);
492 mike           1.19     
493 kumpf          1.21         static Boolean getParamValueElement(
494 kumpf          1.51             XmlParser& parser,
495                                 CIMParamValue& paramValue);
496 mike           1.18     
497 kumpf          1.22         static Boolean getReturnValueElement(
498 kumpf          1.51             XmlParser& parser,
499                                 CIMValue& returnValue);
500 kumpf          1.22     
501 karl           1.52         static Boolean isSupportedCIMVersion(
502                                 const char* cimVersion);
503                         
504                             static Boolean isSupportedProtocolVersion(
505                                 const String& protocolVersion);
506                         
507                             static Boolean isSupportedDTDVersion(
508                                 const char* dtdVersion);
509 mike           1.18     private:
510                         
511 venkat.puvvada 1.57         static CIMValue _stringArrayToValue(
512                                 Uint32 lineNumber,
513                                 const Array<CharString>& array,
514                                 CIMType type);
515                         
516 kumpf          1.51         XmlReader()
517                             {
518 mike           1.18     
519                             }
520                         };
521                         
522                         PEGASUS_NAMESPACE_END
523                         
524                         #endif /* Pegasus_XmlReader_h */

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2