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

Diff for /pegasus/src/Pegasus/Common/CIMPropertyRep.h between version 1.10 and 1.44.4.1

version 1.10, 2001/05/23 21:57:14 version 1.44.4.1, 2009/07/17 07:46:33
Line 1 
Line 1 
 //%/////////////////////////////////////////////////////////////////////////////  //%LICENSE////////////////////////////////////////////////////////////////
 // //
 // Copyright (c) 2000 The Open Group, BMC Software, Tivoli Systems, IBM  // Licensed to The Open Group (TOG) under one or more contributor license
   // agreements.  Refer to the OpenPegasusNOTICE.txt file distributed with
   // this work for additional information regarding copyright ownership.
   // Each contributor licenses this file to you under the OpenPegasus Open
   // Source License; you may not use this file except in compliance with the
   // License.
 // //
 // Permission is hereby granted, free of charge, to any person obtaining a // Permission is hereby granted, free of charge, to any person obtaining a
 // copy of this software and associated documentation files (the "Software"), // copy of this software and associated documentation files (the "Software"),
Line 9 
Line 14 
 // and/or sell copies of the Software, and to permit persons to whom the // and/or sell copies of the Software, and to permit persons to whom the
 // Software is furnished to do so, subject to the following conditions: // Software is furnished to do so, subject to the following conditions:
 // //
 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR  // The above copyright notice and this permission notice shall be included
 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,  // in all copies or substantial portions of the Software.
 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL  
 // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER  
 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING  
 // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER  
 // DEALINGS IN THE SOFTWARE.  
 //  
 //==============================================================================  
 // //
 // Author: Mike Brasher (mbrasher@bmc.com)  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
   // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
   // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
   // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
   // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
   // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
   // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 // //
 // Modified By:  //////////////////////////////////////////////////////////////////////////
 // //
 //%///////////////////////////////////////////////////////////////////////////// //%/////////////////////////////////////////////////////////////////////////////
  
Line 29 
Line 33 
 #define Pegasus_PropertyRep_h #define Pegasus_PropertyRep_h
  
 #include <Pegasus/Common/Config.h> #include <Pegasus/Common/Config.h>
 #include <Pegasus/Common/Exception.h>  #include <Pegasus/Common/Constants.h>
   #include <Pegasus/Common/InternalException.h>
 #include <Pegasus/Common/String.h> #include <Pegasus/Common/String.h>
   #include <Pegasus/Common/CIMName.h>
 #include <Pegasus/Common/CIMValue.h> #include <Pegasus/Common/CIMValue.h>
 #include <Pegasus/Common/CIMQualifier.h> #include <Pegasus/Common/CIMQualifier.h>
 #include <Pegasus/Common/CIMQualifierList.h> #include <Pegasus/Common/CIMQualifierList.h>
 #include <Pegasus/Common/Sharable.h>  #include <Pegasus/Common/Linkage.h>
 #include <Pegasus/Common/Pair.h>  #include <Pegasus/Common/OrderedSet.h>
  
 PEGASUS_NAMESPACE_BEGIN PEGASUS_NAMESPACE_BEGIN
  
Line 44 
Line 50 
 class CIMConstProperty; class CIMConstProperty;
 class DeclContext; class DeclContext;
  
 class PEGASUS_COMMON_LINKAGE CIMPropertyRep : public Sharable  class CIMPropertyRep
 { {
 public: public:
  
     CIMPropertyRep(     CIMPropertyRep(
         const String& name,          const CIMName& name,
         const CIMValue& value,         const CIMValue& value,
         Uint32 arraySize,         Uint32 arraySize,
         const String& referenceClassName,          const CIMName& referenceClassName,
         const String& classOrigin,          const CIMName& classOrigin,
         Boolean propagated);         Boolean propagated);
  
     ~CIMPropertyRep();      const CIMName& getName() const
   
     const String& getName() const  
     {     {
         return _name;         return _name;
     }     }
  
     void setName(const String& name);      Uint32 getNameTag() const
       {
           return _nameTag;
       }
   
       void increaseOwnerCount()
       {
           _ownerCount++;
           return;
       }
   
       void decreaseOwnerCount()
       {
           _ownerCount--;
           return;
       }
   
       void setName(const CIMName& name);
  
     const CIMValue& getValue() const     const CIMValue& getValue() const
     {     {
Line 77 
Line 98 
         return _arraySize;         return _arraySize;
     }     }
  
     const String& getReferenceClassName() const      const CIMName& getReferenceClassName() const
     {     {
         return _referenceClassName;         return _referenceClassName;
     }     }
  
     const String& getClassOrigin() const      const CIMName& getClassOrigin() const
     {     {
         return _classOrigin;         return _classOrigin;
     }     }
  
     void setClassOrigin(const String& classOrigin);      void setClassOrigin(const CIMName& classOrigin)
       {
           _classOrigin = classOrigin;
       }
  
     Boolean getPropagated() const     Boolean getPropagated() const
     {     {
Line 104 
Line 128 
         _qualifiers.add(qualifier);         _qualifiers.add(qualifier);
     }     }
  
     Uint32 findQualifier(const String& name) const      Uint32 findQualifier(const CIMName& name) const
     {     {
         return _qualifiers.find(name);         return _qualifiers.find(name);
     }     }
  
     Boolean existsQualifier(const String& name) const      CIMQualifier getQualifier(Uint32 index)
     {     {
         return (findQualifier(name) != PEG_NOT_FOUND) ? true : false;          return _qualifiers.getQualifier(index);
     }     }
  
     CIMQualifier getQualifier(Uint32 pos)      CIMConstQualifier getQualifier(Uint32 index) const
     {     {
         return _qualifiers.getQualifier(pos);          return _qualifiers.getQualifier(index);
     }     }
  
     CIMConstQualifier getQualifier(Uint32 pos) const      void removeQualifier(Uint32 index)
     {     {
         return _qualifiers.getQualifier(pos);          _qualifiers.removeQualifier(index);
     }  
   
     void removeQualifier(Uint32 pos)  
     {  
         _qualifiers.removeQualifier(pos);  
     }     }
  
     Uint32 getQualifierCount() const     Uint32 getQualifierCount() const
Line 136 
Line 155 
  
     void resolve(     void resolve(
         DeclContext* declContext,         DeclContext* declContext,
         const String& nameSpace,          const CIMNamespaceName& nameSpace,
         Boolean isInstancePart,         Boolean isInstancePart,
         const CIMConstProperty& property);          const CIMConstProperty& property,
           Boolean propagateQualifiers);
  
     void resolve(     void resolve(
         DeclContext* declContext,         DeclContext* declContext,
         const String& nameSpace,          const CIMNamespaceName& nameSpace,
         Boolean isInstancePart);          Boolean isInstancePart,
           Boolean propagateQualifiers);
     void toXml(Array<Sint8>& out) const;  
   
     void print(PEGASUS_STD(ostream) &o=PEGASUS_STD(cout)) const;  
  
     Boolean identical(const CIMPropertyRep* x) const;     Boolean identical(const CIMPropertyRep* x) const;
  
     Boolean isKey() const;  
   
     CIMPropertyRep* clone() const     CIMPropertyRep* clone() const
     {     {
         return new CIMPropertyRep(*this);          return new CIMPropertyRep(*this, true);
     }     }
  
 private:      void Inc()
       {
           _refCounter++;
       }
  
     CIMPropertyRep();      void Dec()
       {
           if (_refCounter.decAndTestIfZero())
               delete this;
       }
   
   private:
  
     // Cloning constructor:     // Cloning constructor:
  
     CIMPropertyRep(const CIMPropertyRep& x);      CIMPropertyRep(const CIMPropertyRep& x, Boolean propagateQualifiers);
  
     CIMPropertyRep& operator=(const CIMPropertyRep& x);      CIMPropertyRep();    // Unimplemented
       CIMPropertyRep(const CIMPropertyRep& x);    // Unimplemented
       CIMPropertyRep& operator=(const CIMPropertyRep& x);    // Unimplemented
  
     String _name;      CIMName _name;
     CIMValue _value;     CIMValue _value;
     Uint32 _arraySize;     Uint32 _arraySize;
     String _referenceClassName;      CIMName _referenceClassName;
     String _classOrigin;      CIMName _classOrigin;
     Boolean _propagated;     Boolean _propagated;
     CIMQualifierList _qualifiers;     CIMQualifierList _qualifiers;
       Uint32 _nameTag;
   
       // reference counter as member to avoid
       // virtual function resolution overhead
       AtomicInt _refCounter;
   
       // Number of containers in which this property is a member. Adding a
       // property to a container increments this count. Removing a property
       // from a container decrements this count. When this count is non-zero,
       // any attempt to change the _name member results in an exception (see
       // setName()).
       Uint32 _ownerCount;
  
     friend class CIMClassRep;     friend class CIMClassRep;
       friend class CIMObjectRep;
       friend class CIMProperty;
       friend class CIMPropertyInternal;
       friend class CIMBuffer;
       friend class SCMOClass;
 }; };
  
 PEGASUS_NAMESPACE_END PEGASUS_NAMESPACE_END


Legend:
Removed from v.1.10  
changed lines
  Added in v.1.44.4.1

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2