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