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

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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2