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

  1 mike  1.1 //BEGIN_LICENSE
  2           //
  3           // Copyright (c) 2000 The Open Group, BMC Software, Tivoli Systems, IBM
  4           //
  5           // Permission is hereby granted, free of charge, to any person obtaining a
  6           // copy of this software and associated documentation files (the "Software"),
  7           // to deal in the Software without restriction, including without limitation
  8           // the rights to use, copy, modify, merge, publish, distribute, sublicense,
  9           // and/or sell copies of the Software, and to permit persons to whom the
 10           // Software is furnished to do so, subject to the following conditions:
 11           //
 12           // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 13           // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 14           // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
 15           // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 16           // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 17           // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 18           // DEALINGS IN THE SOFTWARE.
 19           //
 20           //END_LICENSE
 21           //BEGIN_HISTORY
 22 mike  1.1 //
 23           // Author:
 24           //
 25 mike  1.2 // $Log: XmlReader.h,v $
 26 karl  1.7 // Revision 1.6  2001/04/08 01:13:22  mike
 27           // Changed "ConstCIM" to "CIMConst"
 28           //
 29 mike  1.5 // Revision 1.4  2001/02/20 07:25:57  mike
 30           // Added basic create-instance in repository and in client.
 31           //
 32 mike  1.4 // Revision 1.3  2001/02/19 01:47:16  mike
 33 mike  1.6 // Renamed names of the form CIMConst to CIMConst.
 34 mike  1.4 //
 35 mike  1.3 // Revision 1.2  2001/02/16 02:06:07  mike
 36           // Renamed many classes and headers.
 37           //
 38 mike  1.2 // Revision 1.1.1.1  2001/01/14 19:53:33  mike
 39           // Pegasus import
 40           //
 41 mike  1.1 //
 42           //END_HISTORY
 43           
 44           ////////////////////////////////////////////////////////////////////////////////
 45           //
 46           // XmlReader.h
 47           //
 48           ////////////////////////////////////////////////////////////////////////////////
 49           
 50           #ifndef Pegasus_XmlReader_h
 51           #define Pegasus_XmlReader_h
 52           
 53           #include <Pegasus/Common/Config.h>
 54           #include <Pegasus/Common/XmlParser.h>
 55 mike  1.2 #include <Pegasus/Common/CIMFlavor.h>
 56           #include <Pegasus/Common/CIMScope.h>
 57           #include <Pegasus/Common/CIMReference.h>
 58 mike  1.1 
 59           PEGASUS_NAMESPACE_BEGIN
 60           
 61 mike  1.2 class CIMQualifier;
 62           class CIMQualifierDecl;
 63           class CIMClass;
 64           class CIMInstance;
 65           class CIMProperty;
 66           class CIMParameter;
 67           class CIMMethod;
 68 mike  1.1 
 69           class PEGASUS_COMMON_LINKAGE XmlReader
 70           {
 71           public:
 72           
 73               static void expectXmlDeclaration(
 74           	XmlParser& parser, 
 75           	XmlEntry& entry);
 76           
 77               static void expectStartTag(
 78           	XmlParser& parser, 
 79           	XmlEntry& entry,
 80           	const char* tagName);
 81           
 82               static void expectEndTag(
 83           	XmlParser& parser, 
 84           	const char* tagName);
 85           
 86               static void expectStartTagOrEmptyTag(
 87           	XmlParser& parser, 
 88           	XmlEntry& entry,
 89 mike  1.1 	const char* tagName);
 90           
 91               static Boolean expectContentOrCData(
 92           	XmlParser& parser, 
 93           	XmlEntry& entry);
 94           
 95               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           
109               static Boolean testContentOrCData(
110 mike  1.1 	XmlParser& parser, 
111           	XmlEntry& entry);
112           
113               static void testCimStartTag(XmlParser& parser);
114           
115               static Boolean getIsArrayAttribute(
116           	Uint32 lineNumber,
117           	const XmlEntry& entry,
118           	const char* tagName,
119           	Boolean& value);
120           
121               static String getCimNameAttribute(
122           	Uint32 lineNumber, 
123           	const XmlEntry& entry,
124           	const char* elementName,
125           	Boolean acceptNull = false);
126           
127               static String getClassNameAttribute(
128           	Uint32 lineNumber, 
129           	const XmlEntry& entry,
130           	const char* elementName);
131 mike  1.1 
132               static String getClassOriginAttribute(
133           	Uint32 lineNumber, 
134           	const XmlEntry& entry,
135           	const char* tagName);
136           
137               static String getReferenceClassAttribute(
138           	Uint32 lineNumber, 
139           	const XmlEntry& entry,
140           	const char* elementName);
141           
142               static String getSuperClassAttribute(
143           	Uint32 lineNumber, 
144           	const XmlEntry& entry,
145           	const char* tagName);
146           
147 mike  1.2     static CIMType getCimTypeAttribute(
148 mike  1.1 	Uint32 lineNumber, 
149           	const XmlEntry& entry, 
150           	const char* tagName);
151           
152               static Boolean getCimBooleanAttribute(
153           	Uint32 lineNumber,
154           	const XmlEntry& entry,
155           	const char* tagName,
156           	const char* attributeName,
157           	Boolean defaultValue,
158           	Boolean required);
159           
160               static Boolean stringToReal(
161           	const char* stringValue, 
162           	Real64& x);
163           
164               static Boolean stringToSignedInteger(
165           	const char* stringValue, 
166           	Sint64& x);
167           
168               static Boolean stringToUnsignedInteger(
169 mike  1.1 	const char* stringValue, 
170           	Uint64& x);
171           
172 mike  1.2     static CIMValue stringToValue(
173 mike  1.1 	Uint32 lineNumber, 
174           	const char* valueString, 
175 mike  1.2 	CIMType type);
176 mike  1.1 
177               static Boolean getValueElement(
178           	XmlParser& parser, 
179 mike  1.2 	CIMType type, 
180           	CIMValue& value);
181 mike  1.1 
182 mike  1.2     static CIMValue stringArrayToValue(
183 mike  1.1 	Uint32 lineNumber, 
184           	const Array<const char*>& array, 
185 mike  1.2 	CIMType type);
186 mike  1.1 
187               static Boolean getValueArrayElement(
188           	XmlParser& parser, 
189 mike  1.2 	CIMType type, 
190           	CIMValue& value);
191 mike  1.1 
192               static Uint32 getFlavor(
193           	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 mike  1.2 	CIMQualifier& qualifier);
203 mike  1.1 
204               static Boolean getPropertyElement(
205           	XmlParser& parser, 
206 mike  1.2 	CIMProperty& property);
207 mike  1.1 
208               static Boolean getArraySizeAttribute(
209           	Uint32 lineNumber,
210           	const XmlEntry& entry,
211           	const char* tagName,
212           	Uint32& value);
213           
214               static Boolean getPropertyArrayElement(
215           	XmlParser& parser, 
216 mike  1.2 	CIMProperty& property);
217 mike  1.1 
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               static Boolean getClassNameElement(
236           	XmlParser& parser,
237           	String& className,
238 mike  1.1 	Boolean required = false);
239           
240 mike  1.2     static KeyBinding::CIMType getValueTypeAttribute(
241 mike  1.1 	Uint32 lineNumber, 
242           	const XmlEntry& entry,
243           	const char* elementName);
244           
245               static Boolean getKeyValueElement(
246           	XmlParser& parser,
247 mike  1.2 	KeyBinding::CIMType& type,
248 mike  1.1 	String& value);
249           
250               static Boolean getKeyBindingElement(
251           	XmlParser& parser,
252           	String& name,
253           	String& value,
254 mike  1.2 	KeyBinding::CIMType& type);
255 mike  1.1 
256               static Boolean getInstanceNameElement(
257           	XmlParser& parser,
258           	String& className,
259           	Array<KeyBinding>& keyBindings);
260           
261               static Boolean getInstancePathElement(
262           	XmlParser& parser,
263 mike  1.2 	CIMReference& reference);
264 mike  1.1 
265               static Boolean getLocalInstancePathElement(
266           	XmlParser& parser,
267 mike  1.2 	CIMReference& reference);
268 mike  1.1 
269               static Boolean getClassPathElement(
270           	XmlParser& parser,
271 mike  1.2 	CIMReference& reference);
272 mike  1.1 
273               static Boolean getLocalClassPathElement(
274           	XmlParser& parser,
275 mike  1.2 	CIMReference& reference);
276 mike  1.1 
277               static Boolean getValueReferenceElement(
278           	XmlParser& parser,
279 mike  1.2 	CIMReference& reference);
280 mike  1.1 
281               static Boolean getPropertyReferenceElement(
282           	XmlParser& parser, 
283 mike  1.2 	CIMProperty& property);
284 mike  1.1 
285               static Boolean getParameterElement(
286           	XmlParser& parser, 
287 mike  1.2 	CIMParameter& parameter);
288 mike  1.1 
289               static Boolean getParameterArrayElement(
290           	XmlParser& parser, 
291 mike  1.2 	CIMParameter& parameter);
292 mike  1.1 
293               static Boolean getParameterReferenceElement(
294           	XmlParser& parser, 
295 mike  1.2 	CIMParameter& parameter);
296 mike  1.1 
297               static Boolean getQualifierDeclElement(
298           	XmlParser& parser, 
299 mike  1.2 	CIMQualifierDecl& qualifierDecl);
300 mike  1.1 
301               static Boolean getMethodElement(
302           	XmlParser& parser, 
303 mike  1.2 	CIMMethod& method);
304 mike  1.1 
305               static Boolean getClassElement(
306           	XmlParser& parser, 
307 mike  1.3 	CIMClass& cimClass);
308 mike  1.1 
309               static Boolean getInstanceElement(
310           	XmlParser& parser, 
311 mike  1.3 	CIMInstance& cimInstance);
312 mike  1.1 
313 mike  1.2     static void getObject(XmlParser& parser, CIMClass& x)
314 mike  1.1     {
315           	if (!getClassElement(parser, x))
316           	{
317           	    throw XmlValidationError(parser.getLine(),
318           		"expected CLASS element");
319 mike  1.4 	}
320               }
321           
322               static void getObject(XmlParser& parser, CIMInstance& x)
323               {
324           	if (!getInstanceElement(parser, x))
325           	{
326           	    throw XmlValidationError(parser.getLine(),
327           		"expected INSTANCE element");
328 mike  1.1 	}
329               }
330           
331 mike  1.2     static void getObject(XmlParser& parser, CIMQualifierDecl& x)
332 mike  1.1     {
333           	if (!getQualifierDeclElement(parser, x))
334           	{
335           	    throw XmlValidationError(parser.getLine(),
336           		"expected QUALIFIER.DECLARATION element");
337           	}
338               }
339           
340               static Boolean getMessageStartTag(
341           	XmlParser& parser, 
342           	Uint32& id,
343           	const char*& protocolVersion);
344           
345               static Boolean getIMethodCallStartTag(
346           	XmlParser& parser, 
347           	const char*& name);
348           
349               static Boolean getIMethodResponseStartTag(
350           	XmlParser& parser, 
351           	const char*& name);
352           
353 mike  1.1     static Boolean getIParamValueTag(
354           	XmlParser& parser, 
355           	const char*& name);
356 karl  1.7 
357               static Boolean getPropertyValue(
358           	XmlParser& parser, 
359           	CIMValue& cimValue);
360 mike  1.1 
361               static Boolean getBooleanValueElement(
362           	XmlParser& parser, 
363           	Boolean& result,
364           	Boolean required = false);
365           
366               static Boolean getErrorElement(
367           	XmlParser& parser, 
368 mike  1.5 	CIMException::Code& code,
369 mike  1.1 	const char*& description,
370           	Boolean required = false);
371           
372           private:
373           
374               XmlReader() 
375               { 
376           
377               }
378           };
379           
380           PEGASUS_NAMESPACE_END
381           
382           #endif /* Pegasus_XmlReader_h */

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2