1 karl 1.32 //%2006////////////////////////////////////////////////////////////////////////
|
2 chip 1.1 //
|
3 karl 1.29 // 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.22 // IBM Corp.; EMC Corporation, The Open Group.
|
7 karl 1.29 // 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.30 // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
10 // EMC Corporation; VERITAS Software Corporation; The Open Group.
|
11 karl 1.32 // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
12 // EMC Corporation; Symantec Corporation; The Open Group.
|
13 chip 1.1 //
14 // Permission is hereby granted, free of charge, to any person obtaining a copy
15 // 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 // 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 kumpf 1.6 //
|
21 chip 1.1 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
22 // 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 // 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 // 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 kumpf 1.2 #ifndef Pegasus_ObjectPath_h
35 #define Pegasus_ObjectPath_h
|
36 chip 1.1
37 #include <Pegasus/Common/Config.h>
|
38 kumpf 1.9 #include <Pegasus/Common/Linkage.h>
|
39 kumpf 1.2 #include <Pegasus/Common/String.h>
|
40 kumpf 1.9 #include <Pegasus/Common/CIMName.h>
|
41 kumpf 1.2 #include <Pegasus/Common/Array.h>
42 #include <Pegasus/Common/Exception.h>
43
|
44 chip 1.1 PEGASUS_NAMESPACE_BEGIN
45
|
46 kumpf 1.2 class CIMObjectPath;
|
47 kumpf 1.15 class CIMKeyBindingRep;
|
48 kumpf 1.2 class CIMObjectPathRep;
|
49 kumpf 1.17 class CIMValue;
|
50 kumpf 1.2
|
51 kumpf 1.33 /**
52 The CIMKeyBinding class associates a key name, value, and type.
53 It is used to represent a key binding in a CIMObjectPath.
|
54 kumpf 1.2 */
|
55 kumpf 1.15 class PEGASUS_COMMON_LINKAGE CIMKeyBinding
|
56 kumpf 1.2 {
57 public:
58
59 enum Type { BOOLEAN, STRING, NUMERIC, REFERENCE };
60
|
61 kumpf 1.33 /**
62 Constructs a CIMKeyBinding object with null values.
63 */
|
64 kumpf 1.15 CIMKeyBinding();
|
65 kumpf 1.2
|
66 kumpf 1.33 /**
67 Constructs a CIMKeyBinding object from the value of a specified
68 CIMKeyBinding object.
69 @param x The CIMKeyBinding object from which to construct a new
70 CIMKeyBinding object.
|
71 karl 1.23 */
|
72 kumpf 1.15 CIMKeyBinding(const CIMKeyBinding& x);
|
73 kumpf 1.2
|
74 kumpf 1.33 /**
75 Constructs a CIMKeyBinding with a name, value, and type.
76 @param name A CIMName containing the key name.
77 @param value A String value for this key.
78 @param type A CIMKeyBinding::Type specifying the type of this key.
|
79 kumpf 1.2 */
|
80 kumpf 1.15 CIMKeyBinding(const CIMName& name, const String& value, Type type);
|
81 kumpf 1.2
|
82 kumpf 1.33 /**
83 Constructs a CIMKeyBinding with a key name and CIMValue. The key
84 value and type are taken from the CIMValue. CIM types are converted
85 to key binding types using this mapping:
86
87 <pre>
88 boolean - BOOLEAN
89 uint8 - NUMERIC
90 sint8 - NUMERIC
91 uint16 - NUMERIC
92 sint16 - NUMERIC
93 uint32 - NUMERIC
94 sint32 - NUMERIC
95 uint64 - NUMERIC
96 sint64 - NUMERIC
97 real32 - NUMERIC
98 real64 - NUMERIC
99 char16 - STRING
100 string - STRING
101 datetime - STRING
102 reference - REFERENCE
103 kumpf 1.33 </pre>
104
105 A value of type CIMTYPE_OBJECT cannot be used in a key binding.
106
107 @param name A CIMName containing the key name.
108 @param value A CIMValue specifying the value and type of this key.
109 @exception TypeMismatchException If the type is not a valid key type,
110 false otherwise.
|
111 kumpf 1.17 */
112 CIMKeyBinding(const CIMName& name, const CIMValue& value);
113
|
114 kumpf 1.33 /**
115 Destructs the CIMKeyBinding object.
|
116 karl 1.23 */
|
117 kumpf 1.15 ~CIMKeyBinding();
|
118 kumpf 1.2
|
119 kumpf 1.33 /**
120 Assigns the value of the specified CIMKeyBinding object to this object.
121 @param x The CIMKeyBinding object from which to assign this
122 CIMKeyBinding object.
123 @return A reference to this CIMKeyBinding object.
|
124 karl 1.23 */
|
125 kumpf 1.15 CIMKeyBinding& operator=(const CIMKeyBinding& x);
|
126 kumpf 1.2
|
127 kumpf 1.33 /**
128 Gets the key name for the key binding.
129 @return A CIMName containing the key name.
|
130 karl 1.23 */
|
131 kumpf 1.9 const CIMName& getName() const;
|
132 kumpf 1.2
|
133 kumpf 1.33 /**
134 Sets the key name for the key binding.
135 @param name A CIMName containing the key name.
|
136 karl 1.23 */
|
137 kumpf 1.9 void setName(const CIMName& name);
|
138 kumpf 1.2
|
139 kumpf 1.33 /**
140 Gets the key value for the key binding.
141 @return A String containing the key value.
|
142 karl 1.23 */
|
143 kumpf 1.2 const String& getValue() const;
144
|
145 kumpf 1.33 /**
146 Sets the key value for the key binding.
147 @param value A String containing the key value.
|
148 karl 1.23 */
|
149 kumpf 1.2 void setValue(const String& value);
150
|
151 kumpf 1.33 /**
152 Gets the key type for the key binding.
153 @return A CIMKeyBinding::Type containing the key type.
|
154 karl 1.23 */
|
155 kumpf 1.2 Type getType() const;
156
|
157 kumpf 1.33 /**
158 Sets the key type for the key binding.
159 @param type A CIMKeyBinding::Type containing the key type.
|
160 karl 1.23 */
|
161 kumpf 1.2 void setType(Type type);
|
162 kumpf 1.17
|
163 kumpf 1.33 /**
164 Compares the value and type of the key binding with a specified
165 CIMValue.
166 @param value The CIMValue to be compared.
167 @return True if the value and type of the key binding are the same as
168 the specified CIMValue, false otherwise.
|
169 karl 1.23 */
|
170 kumpf 1.17 Boolean equal(CIMValue value);
|
171 kumpf 1.2
172 private:
173
|
174 a.arora 1.26 CIMKeyBindingRep* _rep;
|
175 kumpf 1.2
176 friend class CIMObjectPath;
177 };
178
|
179 kumpf 1.33 /**
180 Compares two key bindings for equality.
181 @param x The first CIMKeyBinding to be compared.
182 @param y The second CIMKeyBinding to be compared.
183 @return True if the names, values, and types of the two key bindings are
184 equivalent, false otherwise.
185 */
|
186 kumpf 1.2 PEGASUS_COMMON_LINKAGE Boolean operator==(
|
187 kumpf 1.15 const CIMKeyBinding& x,
188 const CIMKeyBinding& y);
|
189 kumpf 1.2
|
190 kumpf 1.15 #define PEGASUS_ARRAY_T CIMKeyBinding
|
191 kumpf 1.4 # include <Pegasus/Common/ArrayInter.h>
|
192 kumpf 1.2 #undef PEGASUS_ARRAY_T
193
194 class XmlWriter;
195
|
196 kumpf 1.33 /**
197 The CIMObjectPath class represents the DMTF standard CIM object name or
198 reference. A reference is a property type that is used in an association.
199 Consider this MOF example:
|
200 kumpf 1.2
201 <pre>
202 [Association]
203 class MyAssociations
204 {
205 MyClass ref from;
206 MyClass ref to;
207 };
208 </pre>
209
|
210 kumpf 1.33 The value of the "from" and "to" properties are represented using a
211 CIMObjectPath.
|
212 kumpf 1.2
|
213 kumpf 1.21 A CIM reference is used to uniquely identify a CIM class or CIM instance
|
214 kumpf 1.33 object. A CIMObjectPath consists of:
|
215 kumpf 1.2
216 <ul>
|
217 kumpf 1.21 <li>Host - name of host that contains the object</li>
|
218 kumpf 1.2 <li>NameSpace - the namespace which contains the object</li>
219 <li>ClassName - name of objects class</li>
220 <li>KeyBindings key/value pairs which uniquely identify an instance</li>
221 </ul>
222
223 CIM references may also be expressed as simple strings (as opposed to
224 being represented by the CIMObjectPath class). This string is known as
225 the "Object Name". An object name has the following form:
226
227 <pre>
228 <namespace-path>:<model-path>
229 </pre>
230
231 As for the model-path mentioned above, its form is defined by the CIM
232 Standard (more is defined by the "XML Mapping Specification v2.0.0"
233 specification) as follows:
234
235 <pre>
236
237 <Qualifyingclass>.<key-1>=<value-1>[,<key-n>=
238 <value-n>]*
239 kumpf 1.2 </pre>
240
241 For example:
242
243 <pre>
244 TennisPlayer.first="Patrick",last="Rafter"
245 </pre>
246
|
247 karl 1.23 This presupposes the existence of a class called "TennisPlayer"
|
248 kumpf 1.2 that has key properties named "first" and "last". For example, here is what
249 the MOF might look like:
250
251 <pre>
252 class TennisPlayer : Person
253 {
254 [key] string first;
255 [key] string last;
256 };
257 </pre>
258
259 All keys must be present in the model path.
260
261 Now the namespace-type and model-path are combined in the following
262 string object name.
263
264 //atp:9999/root/cimv25:TennisPlayer.first="Patrick",last="Rafter"
265
266 Now suppose we wish to create a CIMObjectPath from this above string. There
267 are two constructors provided: one which takes the above string and the
268 other that takes the constituent elements. Here are the signature of the
269 kumpf 1.2 two constructors:
270
271 <pre>
272 CIMObjectPath(const String& objectName);
273
274 CIMObjectPath(
275 const String& host,
|
276 kumpf 1.9 const CIMNamespaceName& nameSpace,
277 const CIMName& className,
|
278 kumpf 1.15 const Array<CIMKeyBinding>& keyBindings);
|
279 kumpf 1.2 </pre>
280
281 Following our example, the above object name may be used to initialize
282 a CIMObjectPath like this:
283
284 <pre>
285 CIMObjectPath ref =
286 "//atp:9999/root/cimv25:TennisPlayer.first="Patrick",last="Rafter";
287 </pre>
288
289 A CIMObjectPath may also be initialized using the constituent elements
290 of the object name (sometimes the object name is not available as a string:
291 this is the case with CIM XML encodings). The arguments shown in that
292 constructor above correspond elements of the object name in the following
293 way:
294
295 <ul>
296 <li>host = "atp:9999"</li>
297 <li>nameSpace = "root/cimv25"</li>
298 <li>className = "TennisPlayer"</li>
299 <li>keyBindings = "first=\"Patrick\",last=\"Rafter\""</li>
300 kumpf 1.2 </ul>
301
302 Note that the host and nameSpace argument may be empty since object names
303 need not necessarily include a namespace path according to the standard.
304
|
305 kumpf 1.15 The key bindings must be built up by appending CIMKeyBinding objects
306 to an Array of CIMKeyBindings like this:
|
307 kumpf 1.2
308 <pre>
|
309 kumpf 1.15 Array<CIMKeyBinding> keyBindings;
|
310 kumpf 1.34 keyBindings.append(
311 CIMKeyBinding("first", "Patrick", CIMKeyBinding::STRING));
|
312 kumpf 1.15 keyBindings.append(CIMKeyBinding("last", "Rafter", CIMKeyBinding::STRING));
|
313 kumpf 1.2 </pre>
314
315 Notice that the keys in the object name may appear in any order.
316 That is the following object names refer to the same object:
317
318 <pre>
319 TennisPlayer.first="Patrick",last="Rafter"
320 TennisPlayer.last="Rafter",first="Patrick"
321 </pre>
322
323 And since CIM is not case sensitive, the following refer to the same
324 object:
325
326 <pre>
327 TennisPlayer.first="Patrick",last="Rafter"
328 tennisplayer.FIRST="Patrick",Last="Rafter"
329 </pre>
330
331 Therefore, the CIMObjectPaths::operator==() would return true for the last
332 two examples.
333
334 kumpf 1.2 The CIM standard leaves it an open question whether model paths may have
335 spaces around delimiters (like '.', '=', and ','). We assume they cannot.
336 So the following is an invalid model path:
337
338 <pre>
339 TennisPlayer . first = "Patrick", last="Rafter"
340 </pre>
341
342 We require that the '.', '=', and ',' have no spaces around them.
343
344 For reasons of efficiency, the key bindings are internally sorted
345 during initialization. This allows the key bindings to be compared
346 more easily. This means that when the string is converted back to
347 string (by calling toString()) that the keys may have been rearranged.
348
349 There are two forms an object name can take:
350
351 <pre>
352 <namespace-path>:<model-path>
353 <model-path>
354 </pre>
355 kumpf 1.2
356 In other words, the namespace-path is optional. Here is an example of
357 each:
358
359 <pre>
360 //atp:9999/root/cimv25:TennisPlayer.first="Patrick",last="Rafter"
361 TennisPlayer.first="Patrick",last="Rafter"
362 </pre>
363
364 If it begins with "//" then we assume the namespace-path is present and
365 process it that way.
366
367 It should also be noted that an object name may refer to an instance or
368 a class. Here is an example of each:
369
370 <pre>
371 TennisPlayer.first="Patrick",last="Rafter"
372 TennisPlayer
373 </pre>
374
375 In the second case--when it refers to a class--the key bindings are
376 kumpf 1.2 omitted.
377 */
378 class PEGASUS_COMMON_LINKAGE CIMObjectPath
379 {
380 public:
381
|
382 kumpf 1.33 /**
383 Constructs a CIMObjectPath object with null values.
|
384 karl 1.23 */
|
385 kumpf 1.2 CIMObjectPath();
386
|
387 kumpf 1.33 /**
388 Constructs a CIMObjectPath object from the value of a specified
389 CIMObjectPath object.
390 @param x The CIMObjectPath object from which to construct a new
391 CIMObjectPath object.
|
392 karl 1.23 */
|
393 kumpf 1.2 CIMObjectPath(const CIMObjectPath& x);
394
|
395 kumpf 1.33 /**
396 Constructs a CIMObjectPath from a CIM object name in String form.
397 <p><b>Example:</b>
398 <pre>
|
399 kumpf 1.2 CIMObjectPath r1 = "MyClass.z=true,y=1234,x=\"Hello World\"";
|
400 kumpf 1.33 </pre>
401 @param objectName A String representation of the object name.
402 @exception MalformedObjectNameException If the String does not contain
403 a properly formed object name.
|
404 kumpf 1.2 */
405 CIMObjectPath(const String& objectName);
406
|
407 kumpf 1.33 /**
408 Constructs a CIMObjectPath object with the specified attributes.
409 @param host A String containing the host name (e.g., "nemesis:5988").
410 An empty String indicates that the object path does not contain
411 a host name attribute.
412 @param nameSpace A CIMNamespaceName specifying the namespace name.
413 A null name indicates that the object path does not contain
414 a namespace attribute.
415 @param nameSpace A CIMName specifying the class name.
416 @param keyBindings An Array of CIMKeyBinding objects specifying the
417 key bindings.
418 @exception MalformedObjectNameException If the host name String
419 contains an improperly formed host name.
|
420 kumpf 1.2 */
421 CIMObjectPath(
422 const String& host,
|
423 kumpf 1.9 const CIMNamespaceName& nameSpace,
424 const CIMName& className,
|
425 kumpf 1.15 const Array<CIMKeyBinding>& keyBindings = Array<CIMKeyBinding>());
|
426 kumpf 1.2
|
427 kumpf 1.33 /**
428 Destructs the CIMObjectPath object.
|
429 karl 1.23 */
|
430 kumpf 1.2 ~CIMObjectPath();
431
|
432 kumpf 1.33 /**
433 Assigns the value of the specified CIMObjectPath object to this object.
434 @param x The CIMObjectPath object from which to assign this
435 CIMObjectPath object.
436 @return A reference to this CIMObjectPath object.
437 */
|
438 kumpf 1.2 CIMObjectPath& operator=(const CIMObjectPath& x);
439
|
440 kumpf 1.33 /**
441 Resets the attributes of the object path to null values.
442 The result is equivalent to using the default constructor.
|
443 kumpf 1.2 */
444 void clear();
445
|
446 kumpf 1.33 /**
447 Sets the CIMObjectPath with the specified attributes.
448 @param host A String containing the host name (e.g., "nemesis:5988").
449 An empty String indicates that the object path does not contain
450 a host name attribute.
451 @param nameSpace A CIMNamespaceName specifying the namespace name.
452 A null name indicates that the object path does not contain
453 a namespace attribute.
454 @param nameSpace A CIMName specifying the class name.
455 @param keyBindings An Array of CIMKeyBinding objects specifying the
456 key bindings.
457 @exception MalformedObjectNameException If the host name String
458 contains an improperly formed host name.
|
459 kumpf 1.2 */
460 void set(
461 const String& host,
|
462 kumpf 1.9 const CIMNamespaceName& nameSpace,
463 const CIMName& className,
|
464 kumpf 1.15 const Array<CIMKeyBinding>& keyBindings = Array<CIMKeyBinding>());
|
465 kumpf 1.2
|
466 kumpf 1.33 /**
467 Sets the CIMObjectPath from a CIM object name in String form.
468 @param objectName A String representation of the object name.
469 @exception MalformedObjectNameException If the String does not contain
470 a properly formed object name.
|
471 karl 1.23 */
|
472 kumpf 1.21 void set(const String& objectName);
|
473 kumpf 1.2
|
474 kumpf 1.33 /**
475 Sets the CIMObjectPath from a CIM object name in String form.
476 @param objectName A String representation of the object name.
477 @exception MalformedObjectNameException If the String does not contain
478 a properly formed object name.
|
479 karl 1.23 */
|
480 kumpf 1.2 CIMObjectPath& operator=(const String& objectName);
481
|
482 kumpf 1.33 /**
483 Gets the host name for the object path.
484 @return A String containing the host name.
|
485 kumpf 1.2 */
486 const String& getHost() const;
487
|
488 kumpf 1.33 /**
489 Sets the host name for the object path.
490 <p><b>Example:</b>
491 <pre>
|
492 kumpf 1.2 CIMObjectPath r1;
493 r1.setHost("fred:5988");
|
494 kumpf 1.33 </pre>
495 @param host A String containing the host name.
496 @exception MalformedObjectNameException If the host name String
497 contains an improperly formed host name.
|
498 kumpf 1.2 */
499 void setHost(const String& host);
500
|
501 kumpf 1.33 /**
502 Gets the namespace name for the object path.
503 @return A CIMNamespaceName containing the namespace name.
|
504 kumpf 1.2 */
|
505 kumpf 1.9 const CIMNamespaceName& getNameSpace() const;
|
506 kumpf 1.2
|
507 kumpf 1.33 /**
508 Sets the namespace name for the object path.
509 @param nameSpace A CIMNamespaceName containing the namespace name.
|
510 kumpf 1.2 */
|
511 kumpf 1.9 void setNameSpace(const CIMNamespaceName& nameSpace);
|
512 kumpf 1.2
|
513 kumpf 1.33 /**
514 Gets the class name for the object path.
515 @return A CIMName containing the class name.
516 */
|
517 kumpf 1.9 const CIMName& getClassName() const;
|
518 kumpf 1.2
|
519 kumpf 1.33 /**
520 Sets the class name for the object path.
521 @param className A CIMName containing the class name.
|
522 kumpf 1.2 */
|
523 kumpf 1.9 void setClassName(const CIMName& className);
|
524 kumpf 1.2
|
525 kumpf 1.33 /**
526 Gets the key bindings for the object path.
527 @return An Array of CIMKeyBinding objects containing the key bindings.
|
528 kumpf 1.2 */
|
529 kumpf 1.15 const Array<CIMKeyBinding>& getKeyBindings() const;
|
530 kumpf 1.2
|
531 kumpf 1.33 /**
532 Sets the key bindings for the object path.
533 @param keyBindings An Array of CIMKeyBinding objects containing the
534 key bindings.
|
535 kumpf 1.2 */
|
536 kumpf 1.15 void setKeyBindings(const Array<CIMKeyBinding>& keyBindings);
|
537 kumpf 1.2
|
538 kumpf 1.33 /**
539 Generates a String form of the object path.
540 The format is:
|
541 kumpf 1.7
|
542 kumpf 1.33 <pre>
|
543 kumpf 1.21 "//" + hostname + "/" + namespace + ":" + classname +"." +
544 (keyname) + "=" (keyvalue) +"," ...
|
545 kumpf 1.33 </pre>
546
547 Special characters are escaped in the resulting String.
|
548 kumpf 1.2
|
549 kumpf 1.33 @return A String form of the object path.
550 @exception UninitializedObjectException If the class name attribute
551 of the object path is null.
|
552 kumpf 1.2 */
|
553 kumpf 1.14 String toString() const;
|
554 kumpf 1.2
|
555 kumpf 1.33 /**
556 Compares the CIMObjectPath with a specified CIMObjectPath.
557 Comparisons of CIM names are case-insensitive, per the CIM
558 specification.
559 @param x The CIMObjectPath to be compared.
560 @return True if this object is identical to the one specified,
561 false otherwise.
|
562 kumpf 1.2 */
563 Boolean identical(const CIMObjectPath& x) const;
564
|
565 kumpf 1.33 /**
566 Generates a hash code for the object path. Identical references
567 generate the same hash code (despite insignificant differences such as
568 the case of names and the order of the key bindings).
|
569 kumpf 1.2 */
570 Uint32 makeHashCode() const;
571
572 private:
573
|
574 kumpf 1.33 /**
575 Generates a canonical String form of the object path (in which key
576 bindings are sorted and classnames and keynames are converted to
577 lower case).
578 @return A canonical String form of the object path.
579 @exception UninitializedObjectException If the class name attribute
580 of the object path is null.
|
581 kumpf 1.13 */
|
582 kumpf 1.14 String _toStringCanonical() const;
|
583 kumpf 1.2
|
584 a.arora 1.26 CIMObjectPathRep* _rep;
|
585 kumpf 1.2 };
586
|
587 kumpf 1.33 /**
588 Compares two object paths for equality.
589 @param x The first CIMObjectPath to be compared.
590 @param y The second CIMObjectPath to be compared.
591 @return True if the object paths are identical, false otherwise.
592 */
|
593 kumpf 1.2 PEGASUS_COMMON_LINKAGE Boolean operator==(
594 const CIMObjectPath& x,
595 const CIMObjectPath& y);
596
|
597 kumpf 1.33 /**
598 Compares two object paths for inequality.
599 @param x The first CIMObjectPath to be compared.
600 @param y The second CIMObjectPath to be compared.
601 @return False if the object paths are identical, true otherwise.
602 */
|
603 kumpf 1.2 PEGASUS_COMMON_LINKAGE Boolean operator!=(
604 const CIMObjectPath& x,
605 const CIMObjectPath& y);
606
607 #define PEGASUS_ARRAY_T CIMObjectPath
|
608 kumpf 1.5 # include <Pegasus/Common/ArrayInter.h>
|
609 kumpf 1.2 #undef PEGASUS_ARRAY_T
|
610 chip 1.1
611 PEGASUS_NAMESPACE_END
612
|
613 kumpf 1.2 #endif /* Pegasus_ObjectPath_h */
614
615
|