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

Diff for /pegasus/src/Pegasus/Common/CIMObject.h between version 1.38 and 1.47

version 1.38, 2003/03/12 21:02:53 version 1.47, 2007/10/19 18:22:02
Line 1 
Line 1 
 //%/////////////////////////////////////////////////////////////////////////////  //%2006////////////////////////////////////////////////////////////////////////
 // //
 // Copyright (c) 2000, 2001, 2002 BMC Software, Hewlett-Packard Company, IBM,  // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
 // The Open Group, Tivoli Systems  // Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
   // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
   // IBM Corp.; EMC Corporation, The Open Group.
   // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
   // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
   // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
   // EMC Corporation; VERITAS Software Corporation; The Open Group.
   // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
   // EMC Corporation; Symantec Corporation; The Open Group.
 // //
 // Permission is hereby granted, free of charge, to any person obtaining a copy // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to // of this software and associated documentation files (the "Software"), to
Line 21 
Line 29 
 // //
 //============================================================================== //==============================================================================
 // //
 // Author: Mike Brasher (mbrasher@bmc.com)  
 //  
 // Modified By: Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com)  
 //              Carol Ann Krug Graves, Hewlett-Packard Company  
 //                  (carolann_graves@hp.com)  
 //  
 //%///////////////////////////////////////////////////////////////////////////// //%/////////////////////////////////////////////////////////////////////////////
  
 #ifndef Pegasus_Object_h #ifndef Pegasus_Object_h
Line 48 
Line 50 
 class CIMConstClass; class CIMConstClass;
 class CIMInstance; class CIMInstance;
 class CIMConstInstance; class CIMConstInstance;
   class CIMProperty;
   class CIMConstProperty;
   class CIMQualifier;
   class CIMConstQualifier;
  
 //////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
 // //
Line 55 
Line 61 
 // //
 //////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
  
 /** The CIMObject class is the superclass for the CIMInstance and  /**
     CIMClass classes.      The CIMObject class represents the DMTF standard CIM object definition,
       which may represent a CIMClass or a CIMInstance.
     The CIMObjectRep data member points to either a CIMInstanceRep or  
     CIMClassRep.      <p>The CIMObject class uses a shared representation model, such that
       multiple CIMObject objects may refer to the same data copy.  Assignment
       and copy operators create new references to the same data, not distinct
       copies.  An update to a CIMObject object affects all the CIMObject
       objects that refer to the same data copy.  The data remains valid until
       all the CIMObject objects that refer to it are destructed.  A separate
       copy of the data may be created using the clone method.
 */ */
 class PEGASUS_COMMON_LINKAGE CIMObject class PEGASUS_COMMON_LINKAGE CIMObject
 { {
 public: public:
  
     /** Constructor.      /**
           Constructs an uninitialized CIMObject object.  A method
           invocation on an uninitialized object will result in the throwing
           of an UninitializedObjectException.  An uninitialized object may
           be converted into an initialized object only by using the assignment
           operator with an initialized object.
     */     */
     CIMObject();     CIMObject();
  
     /** Copy constructor.      /**
           Constructs a CIMObject object from the value of a specified
           CIMObject object, so that both objects refer to the same data copy.
           @param x The CIMObject object from which to construct a new
               CIMObject object.
     */     */
     CIMObject(const CIMObject& x);     CIMObject(const CIMObject& x);
  
     /** Construction from CIMClass.      /**
           Constructs a CIMObject object from the value of a specified
           CIMClass object, so that both objects refer to the same data copy.
           @param x The CIMClass object from which to construct the
               CIMObject object.
     */     */
     CIMObject(const CIMClass& x);     CIMObject(const CIMClass& x);
  
     /** Construction from CIMInstance.      /**
           Constructs a CIMObject object from the value of a specified
           CIMInstance object, so that both objects refer to the same data copy.
           @param x The CIMInstance object from which to construct the
               CIMObject object.
     */     */
     CIMObject(const CIMInstance& x);     CIMObject(const CIMInstance& x);
  
     /** Assignment operator.      /**
           Assigns the value of the specified CIMObject object to this object,
           so that both objects refer to the same data copy.
           @param x The CIMObject object from which to assign this CIMObject
               object.
           @return A reference to this CIMObject object.
     */     */
     CIMObject& operator=(const CIMObject& x);     CIMObject& operator=(const CIMObject& x);
  
     /** Destructor.      /**
           Destructs the CIMObject object.
     */     */
     ~CIMObject();     ~CIMObject();
  
     /** Gets the ClassName of the object.      /**
         @return ClassName of the object in a CIMName parameter.          Gets the class name of the object.
         <pre>          @return A CIMName containing the class name.
             CIMName className;          @exception UninitializedObjectException If the object is not
             CIMClass myclass("myclass", "superclass");              initialized.
             className = myclass.getClassName;  
         </pre>  
     */     */
     const CIMName& getClassName() const;     const CIMName& getClassName() const;
  
     ///      /**
           Gets the object path for the object.
           @return A CIMObjectPath containing the object path.
           @exception UninitializedObjectException If the object is not
               initialized.
       */
     const CIMObjectPath& getPath() const;     const CIMObjectPath& getPath() const;
  
     /** Sets the object path for the object.      /**
         @param  path -  CIMObjectPath containing the object path.          Sets the object path for the object.
           @param path A CIMObjectPath containing the object path.
           @exception UninitializedObjectException If the object is not
               initialized.
     */     */
     void setPath (const CIMObjectPath & path);     void setPath (const CIMObjectPath & path);
  
     /** Adds the CIMQualifier object to the instance.      /**
         @param qualifier - CIMQualifier object to add to instance.          Adds a qualifier to the object.
         @return the resulting CIMObject.          @param qualifier The CIMQualifier to be added.
         @exception AlreadyExistsException if the CIMQualifier already          @return A reference to this CIMObject object.
         exists in the instance.          @exception AlreadyExistsException If a qualifier with the
               same name already exists in the CIMObject.
           @exception UninitializedObjectException If the object is not
               initialized.
     */     */
     CIMObject& addQualifier(const CIMQualifier& qualifier);     CIMObject& addQualifier(const CIMQualifier& qualifier);
  
     /** Searches the instance for the qualifier object      /**
         defined by the input parameter.          Finds a qualifier by name.
         @param name - CIMName defining the qualifier object to be found.          @param name A CIMName specifying the name of the qualifier to be found.
         @return  Position of the qualifier to be used in subsequent          @return Index of the qualifier if found or PEG_NOT_FOUND if not found.
         operations or PEG_NOT_FOUND if the qualifier is not found.          @exception UninitializedObjectException If the object is not
               initialized.
     */     */
     Uint32 findQualifier(const CIMName& name) const;     Uint32 findQualifier(const CIMName& name) const;
  
     /** Retrieves the qualifier object defined by the input parameter.      /**
         @param  index - Index for the qualifier object. The index to          Gets the qualifier at the specified index.
         qualifier objects is zero-origin and continuous so that          @param index The index of the qualifier to be retrieved.
         incrementing loops can be used to get all qualifier          @return The CIMQualifier at the specified index.
         objects in a CIMInstance.          @exception IndexOutOfBoundsException If the index is outside
         @return CIMQualifier object defined by the index.              the range of qualifiers available for the CIMObject.
         @exception IndexOutOfBoundsException exception if the index          @exception UninitializedObjectException If the object is not
         is out of bounds.              initialized.
     */     */
     CIMQualifier getQualifier(Uint32 index);     CIMQualifier getQualifier(Uint32 index);
  
     /** Retrieves the qualifier object defined by the input parameter.      /**
         @param index - Index for the qualifier object. The index to          Gets the qualifier at the specified index.
         qualifier objects is zero-origin and continuous so that          @param index The index of the qualifier to be retrieved.
         incrementing loops can be used to get all qualifier          @return The CIMConstQualifier at the specified index.
         objects in a CIMInstance.          @exception IndexOutOfBoundsException If the index is outside
         @return CIMConstQualifier object defined by the index.              the range of qualifiers available for the CIMObject.
         @exception IndexOutOfBoundsException exception if the index          @exception UninitializedObjectException If the object is not
         is out of bounds.              initialized.
     */     */
     CIMConstQualifier getQualifier(Uint32 index) const;     CIMConstQualifier getQualifier(Uint32 index) const;
  
     ///      /**
           Removes a qualifier from the object.
           @param index The index of the qualifier to remove.
           @exception IndexOutOfBoundsException If the index is
               outside the range of qualifiers available for the CIMObject.
           @exception UninitializedObjectException If the object is not
               initialized.
       */
     void removeQualifier(Uint32 index);     void removeQualifier(Uint32 index);
  
     /** Gets the number of CIMQualifier objects defined for      /**
         this CIMObject.          Gets the number of qualifiers in the object.
         @return Count of the number of CIMQualifier objects in the          @return An integer count of the qualifiers in the CIMObject.
         CIMObject.          @exception UninitializedObjectException If the object is not
               initialized.
     */     */
     Uint32 getQualifierCount() const;     Uint32 getQualifierCount() const;
  
     /** Adds a property object defined by the input parameter to      /**
         the CIMObject.          Adds a property to the object.
         @param x - Property Object to be added. See the CIM Property          @param x The CIMProperty to be added.
         class for definition of the property object.          @return A reference to this CIMObject object.
         @return the resulting CIMObject.          @exception AlreadyExistsException If a property with the
         @exception AlreadyExistsException if the property already exists.              same name already exists in the CIMObject.
           @exception UninitializedObjectException If the object is not
               initialized.
     */     */
     CIMObject& addProperty(const CIMProperty& x);     CIMObject& addProperty(const CIMProperty& x);
  
     /** Searches the CIMProperty objects in the      /**
         CIMObject for a property object with the name defined by the          Finds a property by name.
         input parameter.          @param name A CIMName specifying the name of the property to be found.
         @param name - CIMName with the name of the property object to be found.          @return Index of the property if found or PEG_NOT_FOUND if not found.
         @return Position in the CIM object of the property object if found or          @exception UninitializedObjectException If the object is not
         PEG_NOT_FOUND if no property object found with the name defined by the              initialized.
         input parameter.  
     */     */
     Uint32 findProperty(const CIMName& name) const;     Uint32 findProperty(const CIMName& name) const;
  
     /** Gets the CIMProperty object in the CIMObject defined      /**
         by the input parameter.          Gets the property at the specified index.
         @param index - Index to the property object in the CIMObject.          @param index The index of the property to be retrieved.
         The index to qualifier objects is zero-origin and continuous          @return The CIMProperty at the specified index.
         so that incrementing loops can be used to get all qualifier          @exception IndexOutOfBoundsException If the index is outside
         objects in a CIMObject.              the range of properties available for the CIMObject.
         @return CIMProperty object corresponding to the index.          @exception UninitializedObjectException If the object is not
         @exception IndexOutOfBoundsException exception if the index              initialized.
         is out of bounds.  
     */     */
     CIMProperty getProperty(Uint32 index);     CIMProperty getProperty(Uint32 index);
  
     /** Gets the CIMproperty object in the CIMObject defined      /**
         by the input parameter.          Gets the property at the specified index.
         @param index - Index to the property object in the CIMObject.          @param index The index of the property to be retrieved.
         @return CIMProperty object corresponding to the index.          @return The CIMConstProperty at the specified index.
         @exception IndexOutOfBoundsException if the index is outside the          @exception IndexOutOfBoundsException If the index is outside
         range of properties in this object.              the range of properties available for the CIMObject.
           @exception UninitializedObjectException If the object is not
               initialized.
     */     */
     CIMConstProperty getProperty(Uint32 index) const;     CIMConstProperty getProperty(Uint32 index) const;
  
     /** Remove the specified property from the instance.      /**
         @param index - Index to the property to be removed from the          Removes a property from the object.
         instance.  Normally this is obtained by findProperty();          @param index The index of the property to remove.
         @exception IndexOutOfBoundsException if the index is outside the          @exception IndexOutOfBoundsException If the index is
         range of properties in this object.              outside the range of properties available for the CIMObject.
           @exception UninitializedObjectException If the object is not
               initialized.
     */     */
     void removeProperty(Uint32 index);     void removeProperty(Uint32 index);
  
     /** Gets the number of CIMProperty objects defined for this CIMObject.      /**
         @return Count of the number of CIMProperty objects in the          Gets the number of properties in the object.
         CIMObject. Zero indicates that no CIMProperty objects          @return An integer count of the properties in the CIMObject.
         are contained in the CIMObject.          @exception UninitializedObjectException If the object is not
               initialized.
     */     */
     Uint32 getPropertyCount() const;     Uint32 getPropertyCount() const;
  
     /** Makes a deep copy (clone) of the given object.      /**
         @return copy of the CIMObject.          Makes a deep copy of the object.  This creates a new copy of all
           the object attributes including qualifiers and properties.
           @return A new copy of the CIMObject object.
           @exception UninitializedObjectException If the object is not
               initialized.
     */     */
     CIMObject clone() const;     CIMObject clone() const;
  
     /** Compares with another CIM Object.      /**
         @param x - CIM object for comparision.          Compares the CIMObject with a specified CIMConstObject.
         @return true if the objects are identical, false otherwise.          @param x The CIMConstObject to be compared.
           @return True if this object is identical to the one specified,
               false otherwise.
           @exception UninitializedObjectException If the object is not
               initialized.
     */     */
     Boolean identical(const CIMConstObject& x) const;     Boolean identical(const CIMConstObject& x) const;
  
     /** Determines if the object has not been initialized.      /**
         @return  true if the object has not been initialized,          Determines whether the object has been initialized.
                  false otherwise.          @return True if the object has not been initialized, false otherwise.
      */      */
     Boolean isUninitialized() const;     Boolean isUninitialized() const;
  
     /** Determines if the object represents a CIMClass.      /**
         @return  true if the object represents a CIMClass,          Generates a human-readable String representing the value of the
                  false otherwise.          CIMObject.  The String may be in MOF format, but the format is not
           guaranteed and may change without notice.
           @return A human-readable String representing the CIMObject value.
           @exception UninitializedObjectException If the object is not
               initialized.
       */
       String toString() const;
   
       /**
           Indicates whether the object represents a CIMClass.
           @return True if the object represents a CIMClass; false otherwise.
      */      */
     Boolean isClass () const;     Boolean isClass () const;
  
     /** Determines if the object represents a CIMInstance.      /**
         @return  true if the object represents a CIMInstance,          Indicates whether the object represents a CIMInstance.
                  false otherwise          @return True if the object represents a CIMInstance; false otherwise.
      */      */
     Boolean isInstance () const;     Boolean isInstance () const;
  
Line 245 
Line 321 
  
     CIMObject(CIMObjectRep* rep);     CIMObject(CIMObjectRep* rep);
  
     void _checkRep() const;  
   
     friend class CIMConstObject;     friend class CIMConstObject;
     friend class CIMClass;     friend class CIMClass;
     friend class CIMConstClass;     friend class CIMConstClass;
Line 258 
Line 332 
 # include <Pegasus/Common/ArrayInter.h> # include <Pegasus/Common/ArrayInter.h>
 #undef PEGASUS_ARRAY_T #undef PEGASUS_ARRAY_T
  
   
 //////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
 // //
 // CIMConstObject // CIMConstObject
 // //
 //////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
  
 ///  /**
       The CIMConstObject class provides a const interface to a CIMObject
       object.  This class is needed because the shared representation model
       used by CIMObject does not prevent modification to a const CIMObject
       object.  Note that the value of a CIMConstObject object could still be
       modified by a CIMObject object that refers to the same data copy.
   */
 class PEGASUS_COMMON_LINKAGE CIMConstObject class PEGASUS_COMMON_LINKAGE CIMConstObject
 { {
 public: public:
  
     ///      /**
           Constructs an uninitialized CIMConstObject object.  A method
           invocation on an uninitialized object will result in the throwing
           of an UninitializedObjectException.  An uninitialized object may
           be converted into an initialized object only by using the assignment
           operator with an initialized object.
       */
     CIMConstObject();     CIMConstObject();
  
     ///      /**
           Constructs a CIMConstObject object from the value of a specified
           CIMConstObject object, so that both objects refer to the same data
           copy.
           @param x The CIMConstObject object from which to construct a new
               CIMConstObject object.
       */
     CIMConstObject(const CIMConstObject& x);     CIMConstObject(const CIMConstObject& x);
  
     ///      /**
           Constructs a CIMConstObject object from the value of a specified
           CIMObject object, so that both objects refer to the same data copy.
           @param x The CIMObject object from which to construct a new
               CIMConstObject object.
       */
     CIMConstObject(const CIMObject& x);     CIMConstObject(const CIMObject& x);
  
     /** Constructs a CIMObject instance from a CIMClass instance.      /**
           Constructs a CIMConstObject object from the value of a specified
           CIMClass object, so that both objects refer to the same data copy.
           @param x The CIMClass object from which to construct the
               CIMConstObject object.
     */     */
     CIMConstObject(const CIMClass& x);     CIMConstObject(const CIMClass& x);
  
     /** Constructs a CIMObject instance from a CIMInstance instance.      /**
           Constructs a CIMConstObject object from the value of a specified
           CIMInstance object, so that both objects refer to the same data copy.
           @param x The CIMInstance object from which to construct the
               CIMConstObject object.
     */     */
     CIMConstObject(const CIMInstance& x);     CIMConstObject(const CIMInstance& x);
  
     /** Constructs a CIMObject instance from a CIMConstClass instance.      /**
           Constructs a CIMConstObject object from the value of a specified
           CIMConstClass object, so that both objects refer to the same data copy.
           @param x The CIMConstClass object from which to construct the
               CIMConstObject object.
     */     */
     CIMConstObject(const CIMConstClass& x);     CIMConstObject(const CIMConstClass& x);
  
     /** Constructs a CIMObject instance from a CIMConstInstance instance.      /**
           Constructs a CIMConstObject object from the value of a specified
           CIMConstInstance object, so that both objects refer to the same data
           copy.
           @param x The CIMConstInstance object from which to construct the
               CIMConstObject object.
     */     */
     CIMConstObject(const CIMConstInstance& x);     CIMConstObject(const CIMConstInstance& x);
  
     ///      /**
           Assigns the value of the specified CIMConstObject object to this
           object, so that both objects refer to the same data copy.
           @param x The CIMConstObject object from which to assign this
               CIMConstObject object.
           @return A reference to this CIMConstObject object.
       */
     CIMConstObject& operator=(const CIMConstObject& x);     CIMConstObject& operator=(const CIMConstObject& x);
  
     ///      /**
           Destructs the CIMConstObject object.
       */
     ~CIMConstObject();     ~CIMConstObject();
  
     ///      /**
           Gets the class name of the object.
           @return A CIMName containing the class name.
           @exception UninitializedObjectException If the object is not
               initialized.
       */
     const CIMName& getClassName() const;     const CIMName& getClassName() const;
  
     ///      /**
           Gets the object path for the object.
           @return A CIMObjectPath containing the object path.
           @exception UninitializedObjectException If the object is not
               initialized.
       */
     const CIMObjectPath& getPath() const;     const CIMObjectPath& getPath() const;
  
     ///      /**
           Finds a qualifier by name.
           @param name A CIMName specifying the name of the qualifier to be found.
           @return Index of the qualifier if found or PEG_NOT_FOUND if not found.
           @exception UninitializedObjectException If the object is not
               initialized.
       */
     Uint32 findQualifier(const CIMName& name) const;     Uint32 findQualifier(const CIMName& name) const;
  
     ///      /**
           Gets the qualifier at the specified index.
           @param index The index of the qualifier to be retrieved.
           @return The CIMConstQualifier at the specified index.
           @exception IndexOutOfBoundsException If the index is outside
               the range of qualifiers available for the CIMConstObject.
           @exception UninitializedObjectException If the object is not
               initialized.
       */
     CIMConstQualifier getQualifier(Uint32 index) const;     CIMConstQualifier getQualifier(Uint32 index) const;
  
     ///      /**
           Gets the number of qualifiers in the object.
           @return An integer count of the qualifiers in the CIMConstObject.
           @exception UninitializedObjectException If the object is not
               initialized.
       */
     Uint32 getQualifierCount() const;     Uint32 getQualifierCount() const;
  
     ///      /**
           Finds a property by name.
           @param name A CIMName specifying the name of the property to be found.
           @return Index of the property if found or PEG_NOT_FOUND if not found.
           @exception UninitializedObjectException If the object is not
               initialized.
       */
     Uint32 findProperty(const CIMName& name) const;     Uint32 findProperty(const CIMName& name) const;
  
     ///      /**
           Gets the property at the specified index.
           @param index The index of the property to be retrieved.
           @return The CIMConstProperty at the specified index.
           @exception IndexOutOfBoundsException If the index is outside
               the range of properties available for the CIMConstObject.
           @exception UninitializedObjectException If the object is not
               initialized.
       */
     CIMConstProperty getProperty(Uint32 index) const;     CIMConstProperty getProperty(Uint32 index) const;
  
     ///      /**
           Gets the number of properties in the object.
           @return An integer count of the properties in the CIMConstObject.
           @exception UninitializedObjectException If the object is not
               initialized.
       */
     Uint32 getPropertyCount() const;     Uint32 getPropertyCount() const;
  
     ///      /**
           Makes a deep copy of the object.  This creates a new copy of all
           the object attributes including qualifiers and properties.
           @return A CIMObject object with a separate copy of the
               CIMConstObject object.
           @exception UninitializedObjectException If the object is not
               initialized.
       */
     CIMObject clone() const;     CIMObject clone() const;
  
     ///      /**
           Compares the CIMConstObject with a specified CIMConstObject.
           @param x The CIMConstObject to be compared.
           @return True if this object is identical to the one specified,
               false otherwise.
           @exception UninitializedObjectException If the object is not
               initialized.
       */
     Boolean identical(const CIMConstObject& x) const;     Boolean identical(const CIMConstObject& x) const;
  
     ///      /**
           Determines whether the object has been initialized.
           @return True if the object has not been initialized, false otherwise.
       */
     Boolean isUninitialized() const;     Boolean isUninitialized() const;
  
     ///      /**
           Generates a human-readable String representing the value of the
           CIMObject.  The String may be in MOF format, but the format is not
           guaranteed and may change without notice.
           @return A human-readable String representing the CIMObject value.
           @exception UninitializedObjectException If the object is not
               initialized.
       */
       String toString () const;
   
       /**
           Indicates whether the object represents a CIMConstClass.
           @return True if the object represents a CIMConstClass; false otherwise.
       */
     Boolean isClass() const;     Boolean isClass() const;
  
     ///      /**
           Indicates whether the object represents a CIMConstInstance.
           @return True if the object represents a CIMConstInstance; false
               otherwise.
       */
     Boolean isInstance() const;     Boolean isInstance() const;
  
 private: private:
  
     CIMObjectRep* _rep;     CIMObjectRep* _rep;
  
     void _checkRep() const;  
   
     friend class CIMObject;     friend class CIMObject;
     friend class CIMClass;     friend class CIMClass;
     friend class CIMConstClass;     friend class CIMConstClass;


Legend:
Removed from v.1.38  
changed lines
  Added in v.1.47

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2