1 karl 1.49 //%2006////////////////////////////////////////////////////////////////////////
|
2 mike 1.11 //
|
3 karl 1.40 // 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.35 // IBM Corp.; EMC Corporation, The Open Group.
|
7 karl 1.40 // 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.42 // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
10 // EMC Corporation; VERITAS Software Corporation; The Open Group.
|
11 karl 1.49 // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
12 // EMC Corporation; Symantec Corporation; The Open Group.
|
13 mike 1.11 //
14 // Permission is hereby granted, free of charge, to any person obtaining a copy
|
15 kumpf 1.25 // 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.11 // 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.25 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
|
22 mike 1.11 // 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.25 // 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.11 // 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 //%/////////////////////////////////////////////////////////////////////////////
33
34 #ifndef Pegasus_Value_h
35 #define Pegasus_Value_h
36
37 #include <Pegasus/Common/String.h>
38 #include <Pegasus/Common/Config.h>
39 #include <Pegasus/Common/CIMType.h>
|
40 kumpf 1.23 #include <Pegasus/Common/CIMObjectPath.h>
|
41 dave.sudlik 1.41 #include <Pegasus/Common/CIMObject.h>
|
42 mike 1.11 #include <Pegasus/Common/CIMDateTime.h>
|
43 kumpf 1.18 #include <Pegasus/Common/Exception.h>
|
44 mike 1.11 #include <Pegasus/Common/Array.h>
|
45 kumpf 1.29 #include <Pegasus/Common/Linkage.h>
|
46 mike 1.11
47 PEGASUS_NAMESPACE_BEGIN
48
|
49 kumpf 1.18 class CIMValueRep;
|
50 dave.sudlik 1.41 class CIMObject;
|
51 kumpf 1.18
|
52 mike 1.11 /**
53 The CIMValue class represents a value of any of the CIM data types
|
54 kumpf 1.34 (see \Ref{CIMType} for a list of valid CIM data types). This class
|
55 mike 1.11 encapsulates a union which holds the current value. The class also
56 has a type field indicating the type of that value.
57 */
58 class PEGASUS_COMMON_LINKAGE CIMValue
59 {
60 public:
|
61 kumpf 1.34 /** Constructor - Creates an NULL CIMValue object set to null and
62 with type CIMType:none and !arraytype.
|
63 karl 1.15 */
|
64 mike 1.11 CIMValue();
65
|
66 kumpf 1.34 /** Constructor - Creates a NULL CIMValue object with the type and
|
67 kumpf 1.32 array indicator set as specified.
68 @exception TypeMismatchException If the given type is not valid for a
69 CIMValue object.
|
70 karl 1.15 */
71 CIMValue(CIMType type, Boolean isArray, Uint32 arraySize = 0);
72
|
73 kumpf 1.34 /// Constructor.
|
74 kumpf 1.18 CIMValue(Boolean x);
|
75 mike 1.11
|
76 kumpf 1.34 /// Constructor.
|
77 kumpf 1.18 CIMValue(Uint8 x);
|
78 mike 1.11
|
79 kumpf 1.34 /// Constructor.
|
80 kumpf 1.18 CIMValue(Sint8 x);
|
81 mike 1.11
|
82 kumpf 1.34 /// Constructor.
|
83 kumpf 1.18 CIMValue(Uint16 x);
|
84 mike 1.11
|
85 kumpf 1.34 /// Constructor.
|
86 kumpf 1.18 CIMValue(Sint16 x);
|
87 mike 1.11
|
88 kumpf 1.34 /// Constructor.
|
89 kumpf 1.18 CIMValue(Uint32 x);
|
90 mike 1.11
|
91 kumpf 1.34 /// Constructor.
|
92 kumpf 1.18 CIMValue(Sint32 x);
|
93 mike 1.11
|
94 kumpf 1.34 /// Constructor.
|
95 kumpf 1.18 CIMValue(Uint64 x);
|
96 mike 1.11
|
97 kumpf 1.34 /// Constructor.
|
98 kumpf 1.18 CIMValue(Sint64 x);
|
99 mike 1.11
|
100 kumpf 1.34 /// Constructor.
|
101 kumpf 1.18 CIMValue(Real32 x);
|
102 mike 1.11
|
103 kumpf 1.34 /// Constructor.
|
104 kumpf 1.18 CIMValue(Real64 x);
|
105 mike 1.11
|
106 kumpf 1.34 /// Constructor.
|
107 kumpf 1.18 CIMValue(const Char16& x);
|
108 mike 1.11
|
109 kumpf 1.34 /// Constructor.
|
110 kumpf 1.18 CIMValue(const String& x);
|
111 mike 1.11
|
112 kumpf 1.34 /// Constructor.
|
113 kumpf 1.18 CIMValue(const CIMDateTime& x);
|
114 mike 1.11
|
115 kumpf 1.34 /// Constructor.
|
116 kumpf 1.23 CIMValue(const CIMObjectPath& x);
|
117 mike 1.11
|
118 denise.eckstein 1.46 /** Constructor.
119 Note: Constructing a CIMValue with an uninitialized CIMObject is not
120 defined and results in a thrown UninitializedObjectException.
121 Note: The input CIMObject will be cloned before putting it into the
122 value of the constructed CIMValue. This is because CIMObjects use a
123 shared representation model, but we don't want CIMObjects inside a
124 CIMValue to be altered by other external changes.
125 */
|
126 dave.sudlik 1.41 CIMValue(const CIMObject& x);
127
128 /// Constructor.
|
129 kumpf 1.18 CIMValue(const Array<Boolean>& x);
|
130 mike 1.11
|
131 kumpf 1.34 /// Constructor.
|
132 kumpf 1.18 CIMValue(const Array<Uint8>& x);
|
133 mike 1.11
|
134 kumpf 1.34 /// Constructor.
|
135 kumpf 1.18 CIMValue(const Array<Sint8>& x);
|
136 mike 1.11
|
137 kumpf 1.34 /// Constructor.
|
138 kumpf 1.18 CIMValue(const Array<Uint16>& x);
|
139 mike 1.11
|
140 kumpf 1.34 /// Constructor.
|
141 kumpf 1.18 CIMValue(const Array<Sint16>& x);
|
142 mike 1.11
|
143 kumpf 1.34 /// Constructor.
|
144 kumpf 1.18 CIMValue(const Array<Uint32>& x);
|
145 mike 1.11
|
146 kumpf 1.34 /// Constructor.
|
147 kumpf 1.18 CIMValue(const Array<Sint32>& x);
|
148 mike 1.11
|
149 kumpf 1.34 /// Constructor.
|
150 kumpf 1.18 CIMValue(const Array<Uint64>& x);
|
151 mike 1.11
|
152 kumpf 1.34 /// Constructor.
|
153 kumpf 1.18 CIMValue(const Array<Sint64>& x);
|
154 mike 1.11
|
155 kumpf 1.34 /// Constructor.
|
156 kumpf 1.18 CIMValue(const Array<Real32>& x);
|
157 mike 1.11
|
158 kumpf 1.34 /// Constructor.
|
159 kumpf 1.18 CIMValue(const Array<Real64>& x);
|
160 mike 1.11
|
161 kumpf 1.34 /// Constructor.
|
162 kumpf 1.18 CIMValue(const Array<Char16>& x);
|
163 mike 1.11
|
164 kumpf 1.34 /// Constructor.
|
165 kumpf 1.18 CIMValue(const Array<String>& x);
|
166 mike 1.11
|
167 kumpf 1.34 /// Constructor.
|
168 kumpf 1.18 CIMValue(const Array<CIMDateTime>& x);
|
169 mike 1.11
|
170 kumpf 1.34 /// Constructor.
|
171 kumpf 1.23 CIMValue(const Array<CIMObjectPath>& x);
|
172 kumpf 1.14
|
173 denise.eckstein 1.46 /** Constructor.
174 Note: Constructing a CIMValue with an uninitialized CIMObject anywhere
175 in the input array is not defined and results in a thrown
176 UninitializedObjectException.
177 Note: Each CIMObject in the input Array will be cloned before putting
178 the Array into the value of the constructed CIMValue. This is because
179 CIMObjects use a shared representation model, but we don't want
180 CIMObjects inside a CIMValue to be altered by other external changes.
181 */
|
182 dave.sudlik 1.41 CIMValue(const Array<CIMObject>& x);
183
|
184 denise.eckstein 1.46 /** Constructor.
185 Note: If the input type is CIMObject, it/they will be cloned before
186 putting it into the value of the constructed CIMValue. This is because
187 CIMObjects use a shared representation model, but we don't want
188 CIMObjects inside a CIMValue to be altered by other external changes.
189 */
|
190 mike 1.11 CIMValue(const CIMValue& x);
191
|
192 kumpf 1.34 /// Destructor.
|
193 mike 1.11 ~CIMValue();
194
|
195 denise.eckstein 1.46 /** Operator =
196 Note: If the right hand side type is CIMObject, it/they will be cloned
197 before putting it into the value of the target CIMValue. This is because
198 CIMObjects use a shared representation model, but we don't want
199 CIMObjects inside a CIMValue to be altered by other external changes.
200 */
|
201 kumpf 1.18 CIMValue& operator=(const CIMValue& x);
|
202 mike 1.11
|
203 kumpf 1.34 /** Assigns one CIMValue object to another CIMValue object.
204 @param x - CIMValue object to be used for assignment.
|
205 dave.sudlik 1.45 Note: If the input type is CIMObject, it/they will be cloned before
206 putting it into the value of the target CIMValue. This is because
207 CIMObjects use a shared representation model, but we don't want
208 CIMObjects inside a CIMValue to be altered by other external changes.
|
209 karl 1.13 */
|
210 mike 1.11 void assign(const CIMValue& x);
211
|
212 kumpf 1.34 /** Clears the attributes and value of the CIMValue object.
|
213 karl 1.13 */
|
214 mike 1.11 void clear();
215
|
216 kumpf 1.34 /** Compares the types of two CIMValues. This
|
217 karl 1.13 compares the type field and the array indicators.
|
218 kumpf 1.18 @return true if both are of the same type and both are either arrays
|
219 kumpf 1.34 or not, false otherwise.
|
220 karl 1.13 <pre>
221 CIMValue a(Boolean(true);
222 CIMValue b = a;
223 if b.typeCompatible(a)
224 ...
225 </pre>
|
226 mike 1.11 */
|
227 kumpf 1.18 Boolean typeCompatible(const CIMValue& x) const;
|
228 mike 1.11
|
229 kumpf 1.34 /** Determines if the value is an array.
230 @return true if the value is an array, false otherwise.
|
231 mike 1.11 */
|
232 kumpf 1.18 Boolean isArray() const;
|
233 mike 1.11
|
234 kumpf 1.34 /** Determines whether the CIMvalue object is Null.
|
235 kumpf 1.18 Null is the specific condition where no value has
|
236 kumpf 1.34 yet been set. If a CIMValue object is Null, any get on that
237 object will create an exception.
238 @return true if the CIMValue object is Null, false otherwise.
|
239 mike 1.12 */
|
240 kumpf 1.18 Boolean isNull() const;
|
241 mike 1.12
|
242 kumpf 1.34 /** Gets the size of an Array CIMValue.
243 @return The number of entries in the array.
|
244 mike 1.11 */
245 Uint32 getArraySize() const;
246
|
247 kumpf 1.34 /** Gets the CIMType attribute for the CIMValue.
248 @return the CIMType value.
|
249 karl 1.13 */
|
250 kumpf 1.18 CIMType getType() const;
|
251 mike 1.11
|
252 kumpf 1.34 /** Sets the CIMValue a NULL, but with valid CIMType and array
253 characteristics.
254 @param type - CIMType for this CIMValue.
255 @param isArray - Boolean indicating whether this is an array CIMValue.
256 @param arraySize - Optional parameter indicating the array size.
|
257 karl 1.15 <pre>
|
258 kumpf 1.34 CIMValue value;
259 value.setNullValue(CIMType::BOOLEAN, false);
|
260 karl 1.15 </pre>
|
261 karl 1.13 */
|
262 mike 1.11 void setNullValue(CIMType type, Boolean isArray, Uint32 arraySize = 0);
263
|
264 kumpf 1.34 /** Sets the type, Array attribute and puts the value provided
265 into the value of the target CIMValue.
|
266 karl 1.13 <pre>
267 CIMValue x;
268 x.set(Uint16(9));
269 </pre>
|
270 dave.sudlik 1.45 @exception UninitializedObjectException If the given type is CIMObject,
271 and the input CIMObject parameter is uninitialized or at least one entry
272 in the Array of CIMObjects is uninitialized.
273 Note: If the input type is CIMObject, it/they will be cloned before
274 putting it into the value of the target CIMValue. This is because
275 CIMObjects use a shared representation model, but we don't want
276 CIMObjects inside a CIMValue to be altered by other external changes.
|
277 karl 1.13 */
|
278 mike 1.11 void set(Boolean x);
279
|
280 kumpf 1.34 ///
|
281 mike 1.11 void set(Uint8 x);
|
282 karl 1.13 ///
|
283 mike 1.11 void set(Sint8 x);
|
284 karl 1.13 ///
|
285 mike 1.11 void set(Uint16 x);
|
286 karl 1.13 ///
|
287 mike 1.11 void set(Sint16 x);
|
288 karl 1.13 ///
|
289 mike 1.11 void set(Uint32 x);
|
290 karl 1.13 ///
|
291 mike 1.11 void set(Sint32 x);
|
292 karl 1.13 ///
|
293 mike 1.11 void set(Uint64 x);
|
294 karl 1.13 ///
|
295 mike 1.11 void set(Sint64 x);
|
296 karl 1.13 ///
|
297 mike 1.11 void set(Real32 x);
|
298 karl 1.13 ///
|
299 mike 1.11 void set(Real64 x);
|
300 karl 1.13 ///
|
301 mike 1.11 void set(const Char16& x);
|
302 karl 1.13 ///
|
303 mike 1.11 void set(const String& x);
|
304 karl 1.13 ///
|
305 mike 1.11 void set(const CIMDateTime& x);
|
306 karl 1.13 ///
|
307 kumpf 1.23 void set(const CIMObjectPath& x);
|
308 karl 1.13 ///
|
309 dave.sudlik 1.41 void set(const CIMObject& x);
310 ///
|
311 mike 1.11 void set(const Array<Boolean>& x);
|
312 karl 1.13 ///
|
313 mike 1.11 void set(const Array<Uint8>& x);
|
314 karl 1.13 ///
|
315 mike 1.11 void set(const Array<Sint8>& x);
|
316 karl 1.13 ///
|
317 mike 1.11 void set(const Array<Uint16>& x);
|
318 karl 1.13 ///
|
319 mike 1.11 void set(const Array<Sint16>& x);
|
320 karl 1.13 ///
|
321 mike 1.11 void set(const Array<Uint32>& x);
|
322 karl 1.13 ///
|
323 mike 1.11 void set(const Array<Sint32>& x);
|
324 karl 1.13 ///
|
325 mike 1.11 void set(const Array<Uint64>& x);
|
326 karl 1.13 ///
|
327 mike 1.11 void set(const Array<Sint64>& x);
|
328 karl 1.13 ///
|
329 mike 1.11 void set(const Array<Real32>& x);
|
330 karl 1.13 ///
|
331 mike 1.11 void set(const Array<Real64>& x);
|
332 karl 1.13 ///
|
333 mike 1.11 void set(const Array<Char16>& x);
|
334 karl 1.13 ///
|
335 mike 1.11 void set(const Array<String>& x);
|
336 karl 1.13 ///
|
337 mike 1.11 void set(const Array<CIMDateTime>& x);
|
338 kumpf 1.14 ///
|
339 kumpf 1.23 void set(const Array<CIMObjectPath>& x);
|
340 dave.sudlik 1.41 ///
341 void set(const Array<CIMObject>& x);
|
342 mike 1.11
|
343 kumpf 1.34 /** Gets the value of a CIMValue.
|
344 kumpf 1.31 Note: Before using get, the caller should use getType () and isNull ()
345 to ensure that the value is not null, and is of the correct type.
|
346 dave.sudlik 1.45
347 The behavior of get is undefined when the value is null.
|
348 kumpf 1.31
|
349 kumpf 1.34 @param Variable in which to return the value.
|
350 kumpf 1.31 @exception TypeMismatchException If the CIMValue type is not compatible
|
351 kumpf 1.34 with the type of the output parameter.
352 <pre>
353 Uint32 v;
354 CIMValue value(CIMValue::UINT32, UINT32(99));
355 value.get(v);
356 </pre>
|
357 kumpf 1.31
358 <pre>
|
359 kumpf 1.34 Uint32 v;
360 CIMValue value = property.getValue ();
361 if ((value.getType () == CIMTYPE_UINT32) && (!value.isNull ()))
362 value.get (v);
|
363 kumpf 1.31 </pre>
|
364 karl 1.13 */
|
365 mike 1.11 void get(Boolean& x) const;
|
366 karl 1.13 ///
|
367 mike 1.11 void get(Uint8& x) const;
|
368 karl 1.13 ///
|
369 mike 1.11 void get(Sint8& x) const;
|
370 karl 1.13 ///
|
371 mike 1.11 void get(Uint16& x) const;
|
372 karl 1.13 ///
|
373 mike 1.11 void get(Sint16& x) const;
|
374 karl 1.13 ///
|
375 mike 1.11 void get(Uint32& x) const;
|
376 karl 1.13 ///
|
377 mike 1.11 void get(Sint32& x) const;
|
378 karl 1.13 ///
|
379 mike 1.11 void get(Uint64& x) const;
|
380 karl 1.13 ///
|
381 mike 1.11 void get(Sint64& x) const;
|
382 karl 1.13 ///
|
383 mike 1.11 void get(Real32& x) const;
|
384 karl 1.13 ///
|
385 mike 1.11 void get(Real64& x) const;
|
386 karl 1.13 ///
|
387 mike 1.11 void get(Char16& x) const;
|
388 karl 1.13 ///
|
389 mike 1.11 void get(String& x) const;
|
390 karl 1.13 ///
|
391 mike 1.11 void get(CIMDateTime& x) const;
|
392 karl 1.13 ///
|
393 kumpf 1.23 void get(CIMObjectPath& x) const;
|
394 karl 1.13 ///
|
395 dave.sudlik 1.41 void get(CIMObject& x) const;
396 ///
|
397 mike 1.11 void get(Array<Boolean>& x) const;
|
398 karl 1.13 ///
|
399 mike 1.11 void get(Array<Uint8>& x) const;
|
400 kumpf 1.44 ///
|
401 mike 1.11 void get(Array<Sint8>& x) const;
|
402 karl 1.13 ///
|
403 mike 1.11 void get(Array<Uint16>& x) const;
|
404 karl 1.13 ///
|
405 mike 1.11 void get(Array<Sint16>& x) const;
|
406 karl 1.13 ///
|
407 mike 1.11 void get(Array<Uint32>& x) const;
|
408 karl 1.13 ///
|
409 mike 1.11 void get(Array<Sint32>& x) const;
|
410 karl 1.13 ///
|
411 mike 1.11 void get(Array<Uint64>& x) const;
|
412 karl 1.13 ///
|
413 mike 1.11 void get(Array<Sint64>& x) const;
|
414 karl 1.13 ///
|
415 mike 1.11 void get(Array<Real32>& x) const;
|
416 karl 1.13 ///
|
417 mike 1.11 void get(Array<Real64>& x) const;
|
418 karl 1.13 ///
|
419 mike 1.11 void get(Array<Char16>& x) const;
|
420 karl 1.13 ///
|
421 mike 1.11 void get(Array<String>& x) const;
|
422 karl 1.13 ///
|
423 mike 1.11 void get(Array<CIMDateTime>& x) const;
|
424 kumpf 1.14 ///
|
425 kumpf 1.23 void get(Array<CIMObjectPath>& x) const;
|
426 dave.sudlik 1.41 ///
427 void get(Array<CIMObject>& x) const;
|
428 mike 1.11
|
429 kumpf 1.34 /** Compares with another CIMValue object for equality.
430 @param x - CIMValue to compare with.
431 @return true if they are identical in type, attribute and value,
432 false otherwise.
|
433 kumpf 1.27 */
434 Boolean equal(const CIMValue& x) const;
|
435 kumpf 1.20
|
436 kumpf 1.34 /** Converts the CIMvalue to a string. Should only be
437 used for output purposes. To get an actual String value, use
438 get(String &).
439 @return String output for CIMValue.
|
440 kumpf 1.18 <PRE>
441 String test;
442 CIMValue value(Boolean(true));
443 test = value.toString(); // puts "TRUE" into test
444 </PRE>
|
445 kumpf 1.44 */
|
446 mike 1.11 String toString() const;
447
|
448 david.dillard 1.43 #ifdef PEGASUS_USE_DEPRECATED_INTERFACES
|
449 kumpf 1.44 /**
450 <I><B>Deprecated Interface</B></I><BR>
451 Constructor. (Note: This constructor exists solely to support binary
452 compatibility with a previous definition of the Sint8 type.)
453 */
|
454 david.dillard 1.43 CIMValue(char x);
455
|
456 kumpf 1.44 /**
457 <I><B>Deprecated Interface</B></I><BR>
458 Constructor. (Note: This constructor exists solely to support binary
459 compatibility with a previous definition of the Sint8 type.)
460 */
|
461 david.dillard 1.43 CIMValue(const Array<char>& x);
462
|
463 kumpf 1.44 /**
464 <I><B>Deprecated Interface</B></I><BR>
465 Sets an Sint8 value. (Note: This method exists solely to support
466 binary compatibility with a previous definition of the Sint8 type.)
467 */
|
468 david.dillard 1.43 void set(char x);
469
|
470 kumpf 1.44 /**
471 <I><B>Deprecated Interface</B></I><BR>
472 Sets an Sint8 array value. (Note: This method exists solely to support
473 binary compatibility with a previous definition of the Sint8 type.)
474 */
|
475 david.dillard 1.43 void set(const Array<char>& x);
476
|
477 kumpf 1.44 /**
478 <I><B>Deprecated Interface</B></I><BR>
479 Gets an Sint8 value. (Note: This method exists solely to support
480 binary compatibility with a previous definition of the Sint8 type.)
481 */
|
482 david.dillard 1.43 void get(char& x) const;
483
|
484 kumpf 1.44 /**
485 <I><B>Deprecated Interface</B></I><BR>
486 Gets an Sint8 array value. (Note: This method exists solely to support
487 binary compatibility with a previous definition of the Sint8 type.)
488 */
|
489 david.dillard 1.43 void get(Array<char>& x) const;
490 #endif
491
|
492 mike 1.11 private:
493
|
494 mike 1.47 void _get(const String*& data, Uint32& size) const;
495
|
496 a.arora 1.37 CIMValueRep* _rep;
|
497 mike 1.11
498 friend class CIMMethodRep;
499 friend class CIMParameterRep;
500 friend class CIMPropertyRep;
501 friend class CIMQualifierRep;
502 friend class CIMQualifierDeclRep;
|
503 schuur 1.38 friend class BinaryStreamer;
|
504 mike 1.47 friend class XmlWriter;
|
505 mike 1.11 };
|
506 kumpf 1.18
|
507 karl 1.17 /** operator == compares two CIMValue objects for equality.
|
508 kumpf 1.34 @param x - First CIMValue to compare
509 @param y - Second CIMValue to compare
510 @return true if they are identical in type, attribute and value,
511 false otherwise.
|
512 karl 1.17 */
|
513 mike 1.11 PEGASUS_COMMON_LINKAGE Boolean operator==(const CIMValue& x, const CIMValue& y);
514
|
515 kumpf 1.34 /** operator != compares two CIMValue objects for inequality.
516 @param x - First CIMValue to compare
517 @param y - Second CIMValue to compare
518 @return true if they are NOT identical in type, attribute or value,
519 false otherwise.
|
520 karl 1.17 */
|
521 kumpf 1.18 PEGASUS_COMMON_LINKAGE Boolean operator!=(const CIMValue& x, const CIMValue& y);
|
522 mike 1.11
523 #define PEGASUS_ARRAY_T CIMValue
|
524 kumpf 1.24 # include <Pegasus/Common/ArrayInter.h>
|
525 mike 1.11 #undef PEGASUS_ARRAY_T
526
527 PEGASUS_NAMESPACE_END
528
|
529 mike 1.48 #ifdef PEGASUS_INTERNALONLY
530 #include <Pegasus/Common/CIMValueInline.h>
531 #endif
532
|
533 mike 1.11 #endif /* Pegasus_Value_h */
|