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 keyBindings.append(CIMKeyBinding("first", "Patrick", CIMKeyBinding::STRING));
311 keyBindings.append(CIMKeyBinding("last", "Rafter", CIMKeyBinding::STRING));
|
312 kumpf 1.2 </pre>
313
314 Notice that the keys in the object name may appear in any order.
315 That is the following object names refer to the same object:
316
317 <pre>
318 TennisPlayer.first="Patrick",last="Rafter"
319 TennisPlayer.last="Rafter",first="Patrick"
320 </pre>
321
322 And since CIM is not case sensitive, the following refer to the same
323 object:
324
325 <pre>
326 TennisPlayer.first="Patrick",last="Rafter"
327 tennisplayer.FIRST="Patrick",Last="Rafter"
328 </pre>
329
330 Therefore, the CIMObjectPaths::operator==() would return true for the last
331 two examples.
332
333 kumpf 1.2 The CIM standard leaves it an open question whether model paths may have
334 spaces around delimiters (like '.', '=', and ','). We assume they cannot.
335 So the following is an invalid model path:
336
337 <pre>
338 TennisPlayer . first = "Patrick", last="Rafter"
339 </pre>
340
341 We require that the '.', '=', and ',' have no spaces around them.
342
343 For reasons of efficiency, the key bindings are internally sorted
344 during initialization. This allows the key bindings to be compared
345 more easily. This means that when the string is converted back to
346 string (by calling toString()) that the keys may have been rearranged.
347
348 There are two forms an object name can take:
349
350 <pre>
351 <namespace-path>:<model-path>
352 <model-path>
353 </pre>
354 kumpf 1.2
355 In other words, the namespace-path is optional. Here is an example of
356 each:
357
358 <pre>
359 //atp:9999/root/cimv25:TennisPlayer.first="Patrick",last="Rafter"
360 TennisPlayer.first="Patrick",last="Rafter"
361 </pre>
362
363 If it begins with "//" then we assume the namespace-path is present and
364 process it that way.
365
366 It should also be noted that an object name may refer to an instance or
367 a class. Here is an example of each:
368
369 <pre>
370 TennisPlayer.first="Patrick",last="Rafter"
371 TennisPlayer
372 </pre>
373
374 In the second case--when it refers to a class--the key bindings are
375 kumpf 1.2 omitted.
376 */
377 class PEGASUS_COMMON_LINKAGE CIMObjectPath
378 {
379 public:
380
|
381 kumpf 1.33 /**
382 Constructs a CIMObjectPath object with null values.
|
383 karl 1.23 */
|
384 kumpf 1.2 CIMObjectPath();
385
|
386 kumpf 1.33 /**
387 Constructs a CIMObjectPath object from the value of a specified
388 CIMObjectPath object.
389 @param x The CIMObjectPath object from which to construct a new
390 CIMObjectPath object.
|
391 karl 1.23 */
|
392 kumpf 1.2 CIMObjectPath(const CIMObjectPath& x);
393
|
394 kumpf 1.33 /**
395 Constructs a CIMObjectPath from a CIM object name in String form.
396 <p><b>Example:</b>
397 <pre>
|
398 kumpf 1.2 CIMObjectPath r1 = "MyClass.z=true,y=1234,x=\"Hello World\"";
|
399 kumpf 1.33 </pre>
400 @param objectName A String representation of the object name.
401 @exception MalformedObjectNameException If the String does not contain
402 a properly formed object name.
|
403 kumpf 1.2 */
404 CIMObjectPath(const String& objectName);
405
|
406 kumpf 1.33 /**
407 Constructs a CIMObjectPath object with the specified attributes.
408 @param host A String containing the host name (e.g., "nemesis:5988").
409 An empty String indicates that the object path does not contain
410 a host name attribute.
411 @param nameSpace A CIMNamespaceName specifying the namespace name.
412 A null name indicates that the object path does not contain
413 a namespace attribute.
414 @param nameSpace A CIMName specifying the class name.
415 @param keyBindings An Array of CIMKeyBinding objects specifying the
416 key bindings.
417 @exception MalformedObjectNameException If the host name String
418 contains an improperly formed host name.
|
419 kumpf 1.2 */
420 CIMObjectPath(
421 const String& host,
|
422 kumpf 1.9 const CIMNamespaceName& nameSpace,
423 const CIMName& className,
|
424 kumpf 1.15 const Array<CIMKeyBinding>& keyBindings = Array<CIMKeyBinding>());
|
425 kumpf 1.2
|
426 kumpf 1.33 /**
427 Destructs the CIMObjectPath object.
|
428 karl 1.23 */
|
429 kumpf 1.2 ~CIMObjectPath();
430
|
431 kumpf 1.33 /**
432 Assigns the value of the specified CIMObjectPath object to this object.
433 @param x The CIMObjectPath object from which to assign this
434 CIMObjectPath object.
435 @return A reference to this CIMObjectPath object.
436 */
|
437 kumpf 1.2 CIMObjectPath& operator=(const CIMObjectPath& x);
438
|
439 kumpf 1.33 /**
440 Resets the attributes of the object path to null values.
441 The result is equivalent to using the default constructor.
|
442 kumpf 1.2 */
443 void clear();
444
|
445 kumpf 1.33 /**
446 Sets the CIMObjectPath with the specified attributes.
447 @param host A String containing the host name (e.g., "nemesis:5988").
448 An empty String indicates that the object path does not contain
449 a host name attribute.
450 @param nameSpace A CIMNamespaceName specifying the namespace name.
451 A null name indicates that the object path does not contain
452 a namespace attribute.
453 @param nameSpace A CIMName specifying the class name.
454 @param keyBindings An Array of CIMKeyBinding objects specifying the
455 key bindings.
456 @exception MalformedObjectNameException If the host name String
457 contains an improperly formed host name.
|
458 kumpf 1.2 */
459 void set(
460 const String& host,
|
461 kumpf 1.9 const CIMNamespaceName& nameSpace,
462 const CIMName& className,
|
463 kumpf 1.15 const Array<CIMKeyBinding>& keyBindings = Array<CIMKeyBinding>());
|
464 kumpf 1.2
|
465 kumpf 1.33 /**
466 Sets the CIMObjectPath from a CIM object name in String form.
467 @param objectName A String representation of the object name.
468 @exception MalformedObjectNameException If the String does not contain
469 a properly formed object name.
|
470 karl 1.23 */
|
471 kumpf 1.21 void set(const String& objectName);
|
472 kumpf 1.2
|
473 kumpf 1.33 /**
474 Sets the CIMObjectPath from a CIM object name in String form.
475 @param objectName A String representation of the object name.
476 @exception MalformedObjectNameException If the String does not contain
477 a properly formed object name.
|
478 karl 1.23 */
|
479 kumpf 1.2 CIMObjectPath& operator=(const String& objectName);
480
|
481 kumpf 1.33 /**
482 Gets the host name for the object path.
483 @return A String containing the host name.
|
484 kumpf 1.2 */
485 const String& getHost() const;
486
|
487 kumpf 1.33 /**
488 Sets the host name for the object path.
489 <p><b>Example:</b>
490 <pre>
|
491 kumpf 1.2 CIMObjectPath r1;
492 r1.setHost("fred:5988");
|
493 kumpf 1.33 </pre>
494 @param host A String containing the host name.
495 @exception MalformedObjectNameException If the host name String
496 contains an improperly formed host name.
|
497 kumpf 1.2 */
498 void setHost(const String& host);
499
|
500 kumpf 1.33 /**
501 Gets the namespace name for the object path.
502 @return A CIMNamespaceName containing the namespace name.
|
503 kumpf 1.2 */
|
504 kumpf 1.9 const CIMNamespaceName& getNameSpace() const;
|
505 kumpf 1.2
|
506 kumpf 1.33 /**
507 Sets the namespace name for the object path.
508 @param nameSpace A CIMNamespaceName containing the namespace name.
|
509 kumpf 1.2 */
|
510 kumpf 1.9 void setNameSpace(const CIMNamespaceName& nameSpace);
|
511 kumpf 1.2
|
512 kumpf 1.33 /**
513 Gets the class name for the object path.
514 @return A CIMName containing the class name.
515 */
|
516 kumpf 1.9 const CIMName& getClassName() const;
|
517 kumpf 1.2
|
518 kumpf 1.33 /**
519 Sets the class name for the object path.
520 @param className A CIMName containing the class name.
|
521 kumpf 1.2 */
|
522 kumpf 1.9 void setClassName(const CIMName& className);
|
523 kumpf 1.2
|
524 kumpf 1.33 /**
525 Gets the key bindings for the object path.
526 @return An Array of CIMKeyBinding objects containing the key bindings.
|
527 kumpf 1.2 */
|
528 kumpf 1.15 const Array<CIMKeyBinding>& getKeyBindings() const;
|
529 kumpf 1.2
|
530 kumpf 1.33 /**
531 Sets the key bindings for the object path.
532 @param keyBindings An Array of CIMKeyBinding objects containing the
533 key bindings.
|
534 kumpf 1.2 */
|
535 kumpf 1.15 void setKeyBindings(const Array<CIMKeyBinding>& keyBindings);
|
536 kumpf 1.2
|
537 kumpf 1.33 /**
538 Generates a String form of the object path.
539 The format is:
|
540 kumpf 1.7
|
541 kumpf 1.33 <pre>
|
542 kumpf 1.21 "//" + hostname + "/" + namespace + ":" + classname +"." +
543 (keyname) + "=" (keyvalue) +"," ...
|
544 kumpf 1.33 </pre>
545
546 Special characters are escaped in the resulting String.
|
547 kumpf 1.2
|
548 kumpf 1.33 @return A String form of the object path.
549 @exception UninitializedObjectException If the class name attribute
550 of the object path is null.
|
551 kumpf 1.2 */
|
552 kumpf 1.14 String toString() const;
|
553 kumpf 1.2
|
554 kumpf 1.33 /**
555 Compares the CIMObjectPath with a specified CIMObjectPath.
556 Comparisons of CIM names are case-insensitive, per the CIM
557 specification.
558 @param x The CIMObjectPath to be compared.
559 @return True if this object is identical to the one specified,
560 false otherwise.
|
561 kumpf 1.2 */
562 Boolean identical(const CIMObjectPath& x) const;
563
|
564 kumpf 1.33 /**
565 Generates a hash code for the object path. Identical references
566 generate the same hash code (despite insignificant differences such as
567 the case of names and the order of the key bindings).
|
568 kumpf 1.2 */
569 Uint32 makeHashCode() const;
570
571 private:
572
|
573 kumpf 1.33 /**
574 Generates a canonical String form of the object path (in which key
575 bindings are sorted and classnames and keynames are converted to
576 lower case).
577 @return A canonical String form of the object path.
578 @exception UninitializedObjectException If the class name attribute
579 of the object path is null.
|
580 kumpf 1.13 */
|
581 kumpf 1.14 String _toStringCanonical() const;
|
582 kumpf 1.2
|
583 a.arora 1.26 CIMObjectPathRep* _rep;
|
584 kumpf 1.2 };
585
|
586 kumpf 1.33 /**
587 Compares two object paths for equality.
588 @param x The first CIMObjectPath to be compared.
589 @param y The second CIMObjectPath to be compared.
590 @return True if the object paths are identical, false otherwise.
591 */
|
592 kumpf 1.2 PEGASUS_COMMON_LINKAGE Boolean operator==(
593 const CIMObjectPath& x,
594 const CIMObjectPath& y);
595
|
596 kumpf 1.33 /**
597 Compares two object paths for inequality.
598 @param x The first CIMObjectPath to be compared.
599 @param y The second CIMObjectPath to be compared.
600 @return False if the object paths are identical, true otherwise.
601 */
|
602 kumpf 1.2 PEGASUS_COMMON_LINKAGE Boolean operator!=(
603 const CIMObjectPath& x,
604 const CIMObjectPath& y);
605
606 #define PEGASUS_ARRAY_T CIMObjectPath
|
607 kumpf 1.5 # include <Pegasus/Common/ArrayInter.h>
|
608 kumpf 1.2 #undef PEGASUS_ARRAY_T
|
609 chip 1.1
610 PEGASUS_NAMESPACE_END
611
|
612 kumpf 1.2 #endif /* Pegasus_ObjectPath_h */
613
614
|