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

  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                  &lt;namespace-path&gt;:&lt;model-path&gt;
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                  &lt;Qualifyingclass&gt;.&lt;key-1&gt;=&lt;value-1&gt;[,&lt;key-n&gt;=
238                  &lt;value-n&gt;]*
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                  &lt;namespace-path&gt;:&lt;model-path&gt;
352                  &lt;model-path&gt;
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              

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2