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

Diff for /pegasus/src/Pegasus/Common/CIMParameterRep.cpp between version 1.45 and 1.49

version 1.45, 2008/02/29 18:55:06 version 1.49, 2008/10/22 08:19:40
Line 37 
Line 37 
 #include "CIMParameterRep.h" #include "CIMParameterRep.h"
 #include "CIMName.h" #include "CIMName.h"
 #include "CIMScope.h" #include "CIMScope.h"
 #include "XmlWriter.h"  
 #include "StrLit.h" #include "StrLit.h"
  
 PEGASUS_NAMESPACE_BEGIN PEGASUS_NAMESPACE_BEGIN
  
 CIMParameterRep::CIMParameterRep(const CIMParameterRep& x) : CIMParameterRep::CIMParameterRep(const CIMParameterRep& x) :
     Sharable(),  
     _name(x._name),     _name(x._name),
     _type(x._type),     _type(x._type),
     _isArray(x._isArray),     _isArray(x._isArray),
     _arraySize(x._arraySize),     _arraySize(x._arraySize),
     _referenceClassName(x._referenceClassName),     _referenceClassName(x._referenceClassName),
       _refCounter(1),
     _ownerCount(0)     _ownerCount(0)
 { {
     x._qualifiers.cloneTo(_qualifiers);     x._qualifiers.cloneTo(_qualifiers);
Line 65 
Line 64 
     : _name(name), _type(type),     : _name(name), _type(type),
     _isArray(isArray), _arraySize(arraySize),     _isArray(isArray), _arraySize(arraySize),
     _referenceClassName(referenceClassName),     _referenceClassName(referenceClassName),
       _refCounter(1),
     _ownerCount(0)     _ownerCount(0)
 { {
     // ensure name is not null     // ensure name is not null
Line 96 
Line 96 
     }     }
 } }
  
 CIMParameterRep::~CIMParameterRep()  
 {  
 }  
   
 void CIMParameterRep::setName(const CIMName& name) void CIMParameterRep::setName(const CIMName& name)
 { {
     // ensure name is not null     // ensure name is not null
Line 120 
Line 116 
     _nameTag = generateCIMNameTag(_name);     _nameTag = generateCIMNameTag(_name);
 } }
  
 void CIMParameterRep::removeQualifier(Uint32 index)  
 {  
     if (index >= _qualifiers.getCount())  
         throw IndexOutOfBoundsException();  
   
     _qualifiers.removeQualifier (index);  
 }  
   
 void CIMParameterRep::resolve( void CIMParameterRep::resolve(
     DeclContext* declContext,     DeclContext* declContext,
     const CIMNamespaceName& nameSpace)     const CIMNamespaceName& nameSpace)
Line 147 
Line 135 
         true);         true);
 } }
  
 void CIMParameterRep::toXml(Buffer& out) const  
 {  
     if (_isArray)  
     {  
         if (_type == CIMTYPE_REFERENCE)  
         {  
             out << STRLIT("<PARAMETER.REFARRAY NAME=\"") << _name;  
             out.append('"');  
   
             if (!_referenceClassName.isNull())  
             {  
                 out << STRLIT(" REFERENCECLASS=\"");  
                 out << _referenceClassName.getString();  
                 out.append('"');  
             }  
   
             if (_arraySize)  
             {  
                 char buffer[32];  
                 int n = sprintf(buffer, "%d", _arraySize);  
                 out << STRLIT(" ARRAYSIZE=\"");  
                 out.append(buffer, n);  
                 out.append('"');  
             }  
   
             out << STRLIT(">\n");  
   
             _qualifiers.toXml(out);  
   
             out << STRLIT("</PARAMETER.REFARRAY>\n");  
         }  
         else  
         {  
             out << STRLIT("<PARAMETER.ARRAY");  
             out << STRLIT(" NAME=\"") << _name;  
             out << STRLIT("\" ");  
             out << STRLIT(" TYPE=\"") << cimTypeToString(_type);  
             out.append('"');  
   
             if (_arraySize)  
             {  
                 char buffer[32];  
                 sprintf(buffer, "%d", _arraySize);  
                 out << STRLIT(" ARRAYSIZE=\"") << buffer;  
                 out.append('"');  
             }  
   
             out << STRLIT(">\n");  
   
             _qualifiers.toXml(out);  
   
             out << STRLIT("</PARAMETER.ARRAY>\n");  
         }  
     }  
     else if (_type == CIMTYPE_REFERENCE)  
     {  
         out << STRLIT("<PARAMETER.REFERENCE");  
         out << STRLIT(" NAME=\"") << _name;  
         out.append('"');  
   
         if (!_referenceClassName.isNull())  
         {  
             out << STRLIT(" REFERENCECLASS=\"");  
             out << _referenceClassName.getString();  
             out.append('"');  
         }  
         out << STRLIT(">\n");  
   
         _qualifiers.toXml(out);  
   
         out << STRLIT("</PARAMETER.REFERENCE>\n");  
     }  
     else  
     {  
         out << STRLIT("<PARAMETER");  
         out << STRLIT(" NAME=\"") << _name;  
         out << STRLIT("\" ");  
         out << STRLIT(" TYPE=\"") << cimTypeToString(_type);  
         out << STRLIT("\">\n");  
   
         _qualifiers.toXml(out);  
   
         out << STRLIT("</PARAMETER>\n");  
     }  
 }  
   
 /** toMof - puts the Mof representation of teh Parameter object to  
     the output parameter array  
     The BNF for this conversion is:  
     parameterList    =  parameter *( "," parameter )  
   
         parameter    =  [ qualifierList ] (dataType|objectRef) parameterName  
                         [ array ]  
   
         parameterName=  IDENTIFIER  
   
         array        =  "[" [positiveDecimalValue] "]"  
   
     Format on a single line.  
 */  
 void CIMParameterRep::toMof(Buffer& out) const  
 {  
     // Output the qualifiers for the parameter  
     _qualifiers.toMof(out);  
   
     if (_qualifiers.getCount())  
         out.append(' ');  
   
     // Output the data type and name  
     out << cimTypeToString(_type);  
     out.append(' ');  
     out <<  _name;  
   
     if (_isArray)  
     {  
         //Output the array indicator "[ [arraysize] ]"  
         if (_arraySize)  
         {  
             char buffer[32];  
             int n = sprintf(buffer, "[%d]", _arraySize);  
             out.append(buffer, n);  
         }  
         else  
             out << STRLIT("[]");  
     }  
 }  
   
   
 Boolean CIMParameterRep::identical(const CIMParameterRep* x) const Boolean CIMParameterRep::identical(const CIMParameterRep* x) const
 { {
     // If the pointers are the same, the objects must be identical     // If the pointers are the same, the objects must be identical


Legend:
Removed from v.1.45  
changed lines
  Added in v.1.49

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2