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

   1 karl  1.5 //%2005////////////////////////////////////////////////////////////////////////
   2 a.arora 1.3 //
   3 karl    1.4 // 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 a.arora 1.3 // IBM Corp.; EMC Corporation, The Open Group.
   7 karl    1.4 // 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.5 // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
  10             // EMC Corporation; VERITAS Software Corporation; The Open Group.
  11 a.arora 1.3 //
  12             // Permission is hereby granted, free of charge, to any person obtaining a copy
  13             // of this software and associated documentation files (the "Software"), to
  14             // deal in the Software without restriction, including without limitation the
  15             // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
  16             // sell copies of the Software, and to permit persons to whom the Software is
  17             // furnished to do so, subject to the following conditions:
  18 david.dillard 1.6 //
  19 a.arora       1.3 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
  20                   // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
  21                   // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
  22                   // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
  23                   // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
  24                   // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
  25                   // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
  26                   // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  27                   //
  28                   //==============================================================================
  29                   //
  30                   // Author: Mike Brasher (mbrasher@bmc.com)
  31                   //         Marek Szermutzky (MSzermutzky@de.ibm.com) PEP#139 Stage2
  32                   //
  33                   // Modified By: Nitin Upasani, Hewlett-Packard Company (Nitin_Upasani@hp.com)
  34                   //              Yi Zhou, Hewlett-Packard Company (yi_zhou@hp.com)
  35                   //              Nag Boranna, Hewlett-Packard Company (nagaraja_boranna@hp.com)
  36                   //              Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com)
  37                   //              Carol Ann Krug Graves, Hewlett-Packard Company
  38                   //                  (carolann_graves@hp.com)
  39                   //              Jair Santos, Hewlett-Packard Company (jair.santos@hp.com)
  40 david.dillard 1.6 //              David Dillard, VERITAS Software Corp.
  41                   //                  (david.dillard@veritas.com)
  42                   //
  43 a.arora       1.3 //%/////////////////////////////////////////////////////////////////////////////
  44                   #ifndef Pegasus_CIMManagedClient_h
  45                   #define Pegasus_CIMManagedClient_h
  46                   
  47                   #include "CIMClientConnectionManager.h"
  48                   
  49                   // #define CDEBUG(X) PEGASUS_STD(cout) << "CIMManagedClient:" << X << PEGASUS_STD(endl)
  50                   #define CDEBUG(X);
  51                   
  52                   PEGASUS_NAMESPACE_BEGIN
  53                   
  54                   class PEGASUS_CLIENT_LINKAGE CIMManagedClient
  55                   {
  56                   
  57                   public:
  58                   
  59 david.dillard 1.7     // class constructor
  60                       CIMManagedClient();
  61 a.arora       1.3 
  62 david.dillard 1.7     CIMManagedClient(CIMClientConnectionManager* cccm);
  63 david.dillard 1.6 
  64 david.dillard 1.7     void setConnectionManager(CIMClientConnectionManager* cccm);
  65                       CIMClientConnectionManager* getConnectionManager(void);
  66 david.dillard 1.6 
  67 david.dillard 1.7     // virtual class destructor has to be implemented by specific implementation
  68                       ~CIMManagedClient();
  69 a.arora       1.3 
  70                   #ifdef PEGASUS_USE_EXPERIMENTAL_INTERFACES
  71                   // l10n start
  72                       /** Sets the accept languages that will be used on the next request.
  73                           Accept languages are the preferred languages that are to be
  74                           returned on the response to the next request.
  75 david.dillard 1.7         @param host - input parameter, string containing hostname of CIMOM
  76                           @param port - input parameter, string containing port of CIMOM
  77 a.arora       1.3         @param langs - REVIEWERS: Complete this
  78 david.dillard 1.6     */
  79 david.dillard 1.7     void setRequestAcceptLanguages(
  80                           const String& host,
  81                           const String& port,
  82 a.dunfey      1.7.10.1         const AcceptLanguageList& langs
  83 david.dillard 1.7          );
  84 a.arora       1.3      
  85                            /** Gets the accept languages that will be used on the next request.
  86                                Accept languages are the preferred languages that are to be
  87                                returned on the response to the next request.
  88 david.dillard 1.7              @param host - input parameter, string containing hostname of CIMOM
  89                                @param port - input parameter, string containing port of CIMOM
  90 a.arora       1.3          */
  91 a.dunfey      1.7.10.1     AcceptLanguageList getRequestAcceptLanguages(
  92 david.dillard 1.7              const String& host,
  93                                const String& port
  94                            ) const;
  95 david.dillard 1.6      
  96 a.arora       1.3          /** Sets the content languages that will be used on the next request.
  97                                These content languages are the languages of the CIM objects that will
  98                                sent on the next request.
  99 david.dillard 1.7              @param host - input parameter, string containing hostname of CIMOM
 100                                @param port - input parameter, string containing port of CIMOM
 101 a.arora       1.3              @param langs REVIEWERS: Complete this
 102 david.dillard 1.6          */
 103 david.dillard 1.7          void setRequestContentLanguages(
 104                                const String& host,
 105                                const String& port,
 106 a.dunfey      1.7.10.1         const ContentLanguageList& langs
 107 david.dillard 1.7          );
 108 a.arora       1.3      
 109                            /** Gets the content languages that will be used on the next request.
 110                              * These content languages are the languages of the CIM objects that will
 111                              * sent on the next request.
 112 david.dillard 1.7              @param host - input parameter, string containing hostname of CIMOM
 113                                @param port - input parameter, string containing port of CIMOM
 114 david.dillard 1.6          */
 115 a.dunfey      1.7.10.1     ContentLanguageList getRequestContentLanguages(
 116 david.dillard 1.7              const String& host,
 117                                const String& port
 118                            ) const;
 119 david.dillard 1.6      
 120 a.arora       1.3          /** Gets the content languages of the last response.
 121 david.dillard 1.6            * These content languages are the languages of the CIM objects, or
 122 a.arora       1.3            * CIM exceptions, that were returned on the last response..
 123 david.dillard 1.7              @param host - input parameter, string containing hostname of CIMOM
 124                                @param port - input parameter, string containing port of CIMOM
 125 david.dillard 1.6          */
 126 a.dunfey      1.7.10.1     ContentLanguageList getResponseContentLanguages(
 127 david.dillard 1.7              const String& host,
 128                                const String& port
 129                            ) const;
 130                        
 131                            /** REVIEWERS: Complete this
 132                             *
 133                                @param host - input parameter, string containing hostname of CIMOM
 134                                @param port - input parameter, string containing port of CIMOM
 135                            */
 136                            void setRequestDefaultLanguages(
 137                                const String& host,
 138                                const String& port
 139                            );
 140 a.arora       1.3      // l10n end
 141 david.dillard 1.6      #endif // PEGASUS_USE_EXPERIMENTAL_INTERFACES
 142 a.arora       1.3      
 143                        
 144                            /** The <TT>enumerateInstanceNames</TT> operation enumerates the
 145                            names (model paths) of the instances of a CIM Class in the target Namespace.
 146 david.dillard 1.6      
 147 david.dillard 1.7          @param host - input parameter, string containing hostname of CIMOM
 148                            @param port - input parameter, string containing port of CIMOM
 149 a.arora       1.3          @param nameSpace The nameSpace parameter is a string that defines the target
 150                            namespace. See defintion of
 151                            \URL[Namespace]{DefinitionofTerms.html#NAMESPACE}.
 152 david.dillard 1.7          @param className The <TT>className</TT> input parameter defines the Class
 153 a.arora       1.3          that is the basis for the enumeration.
 154                            @return If successful, the method returns zero or more names of Instances
 155                            (model paths) that meet the requested criteria.
 156                            If unsuccessful, one of the following status codes MUST be returned by this
 157                            method, where the first applicable error in the list (starting with the
 158                            first element of the list, and working down) is the error returned. Any
 159                            additional method-specific interpretation of the error in is given in
 160                            parentheses.
 161                        
 162                            <UL>
 163                              <LI>CIM_ERR_ACCESS_DENIED
 164                              <LI>CIM_ERR_NOT_SUPPORTED
 165                              <LI>CIM_ERR_INVALID_NAMESPACE
 166                              <LI>CIM_ERR_INVALID_PARAMETER (including missing,
 167                              duplicate, unrecognized or otherwise incorrect parameters)
 168                              <LI>CIM_ERR_INVALID_CLASS (the CIM Class that is the
 169                              basis for this enumeration does not exist)
 170                              <LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI>
 171                             </UL>
 172                            */
 173                            Array<CIMObjectPath> enumerateInstanceNames(
 174 david.dillard 1.7              const String& host,
 175                                const String& port,
 176                                const CIMNamespaceName& nameSpace,
 177                                const CIMName& className
 178 a.arora       1.3          );
 179                        
 180                            /** The <TT>enumerateInstances</TT> method enumerates instances of a CIM
 181                            Class in the target Namespace.
 182 david.dillard 1.6      
 183 david.dillard 1.7          @param host - input parameter, string containing hostname of CIMOM
 184 david.dillard 1.6      
 185 david.dillard 1.7          @param port - input parameter, string containing port of CIMOM
 186 a.arora       1.3      
 187                            @param nameSpace The nameSpace parameter is a string that defines the target
 188                            namespace. See defintion of
 189                            \URL[Namespace]{DefinitionofTerms.html#NAMESPACE}.
 190                        
 191                            @param className The <TT>className</TT> input parameter defines the
 192                            Class that is the basis for the enumeration.
 193                        
 194                            @param localOnly If the <TT>localOnly</TT> input parameter is
 195                            <TT>true</TT>, this specifies that, for each returned Instance,
 196                            only elements (properties and qualifiers) overriden within the
 197                            definition of that Instance are included.  If <TT>false</TT>,
 198                            all elements are returned.  This parameter therefore effects a CIM
 199                            Server-side mechanism to filter certain elements of the returned object
 200                            based on whether or not they have been propagated from the parent
 201                            Class (as defined by the <TT>PROPAGATED</TT> attribute).
 202                        
 203                            Only elements (properties, methods and qualifiers) defined or
 204                            overridden within the class are included in the response. Propagated
 205                            properties are not included because their values are based on another class’
 206                            information. If not specified, all elements of the class’ definition are
 207 a.arora       1.3          returned.  Note: When instances are returned, the InstanceName must include
 208                            all keys, including propagated keys. Therefore, these attributes are
 209                            included in the name part of the method response, but not in the value
 210                            information.
 211                        
 212                            @param deepInheritance If the <TT>deepInheritance</TT> input
 213                            parameter is <TT>true</TT>, this specifies that, for each
 214                            returned Instance of the Class, all properties of the Instance MUST
 215                            be present (subject to constraints imposed by the other
 216                            parameters), including any which were added by subclassing the specified
 217                            Class. If <TT>false</TT>, each returned Instance includes only
 218                            properties defined for the specified Class.
 219                        
 220                            The Enumerate Instances operation returns the same number of instances
 221                            regardless of whether or not the DeepInheritance flag is set.  The
 222                            DeepInheritance flag is only used to determine whether or not the subclass
 223                            property values should be returned.
 224                        
 225                            @param includeQualifiersIf the <TT>includeQualifiers</TT> input
 226                            parameter is <TT>true</TT>, this specifies that all Qualifiers
 227                            for each Instance (including Qualifiers on the Instance
 228 a.arora       1.3          and on any returned Properties) MUST be included as
 229                            <TT>&lt;QUALIFIER&gt;</TT> elements in the response.  If false no
 230                            <TT>&lt;QUALIFIER&gt;</TT> elements are present in each
 231                            returned Instance.
 232                        
 233                            @param includeClassOrigin If the <TT>includeClassOrigin</TT> input
 234                            parameter is <TT>true</TT>, this specifies that the
 235                            <TT>CLASSORIGIN</TT> attribute MUST be present on all appropriate
 236                            elements in each returned Instance. If false, no
 237                            <TT>CLASSORIGIN</TT> attributes are present in each returned
 238                            Instance.
 239                        
 240                            @param propertyList If the <TT>propertyList</TT> input parameter is not
 241                            <TT>NULL</TT>, the members of the array define one or more CIMProperty
 242                            names.  Each returned Instance MUST NOT include elements
 243                            for any Properties missing from this list.  Note that if
 244                            <TT>LocalOnly</TT> is specified as <TT>true</TT> (or
 245                            <TT>DeepInheritance</TT> is specified as <TT>false</TT>) this acts as an
 246                            additional filter on the set of Properties returned (for example,
 247                            if CIMProperty <TT>A</TT> is included in the
 248                            <TT>PropertyList</TT> but <TT>LocalOnly</TT> is set to true and
 249 a.arora       1.3          <TT>A</TT> is not local to a returned Instance, then it will not be
 250                            included in that Instance). If the <TT>PropertyList</TT> input parameter
 251                            is an empty array this signifies that no Properties are included in each
 252                            returned Instance. If the <TT>PropertyList</TT> input parameter is
 253                            NULL this specifies that all Properties (subject to the conditions
 254                            expressed by the other parameters) are included in each returned
 255                            Instance.
 256                        
 257                            If the <TT>propertyList</TT> contains duplicate elements,
 258                            the Server MUST ignore the duplicates but otherwise process the request
 259                            normally.  If the <TT>PropertyList</TT> contains elements which are
 260                            invalid CIMProperty names for any target Instance, the Server MUST
 261                            ignore such entries but otherwise process the request normally.
 262                        
 263                            @return If successful, the method returns zero or more named
 264                            Instances that meet the required criteria.
 265                        
 266                            If unsuccessful, one of the following status codes MUST be returned
 267                            by this method, where the first applicable error in the list (starting
 268                            with the first element of the list, and working down) is the error
 269                            returned. Any additional method-specific interpretation of the error in
 270 a.arora       1.3          is given in parentheses.
 271                        
 272 david.dillard 1.7          <UL>
 273                              <LI>CIM_ERR_ACCESS_DENIED
 274                              <LI>CIM_ERR_NOT_SUPPORTED
 275                              <LI>CIM_ERR_INVALID_NAMESPACE
 276                              <LI>CIM_ERR_INVALID_PARAMETER (including missing,
 277                                duplicate, unrecognized or otherwise incorrect parameters)
 278                              <LI>CIM_ERR_INVALID_CLASS (the CIM Class that is the
 279                                basis for this enumeration does not exist)
 280                              <LI>CIM_ERR_FAILED (some other unspecified erroroccurred)</LI>
 281                            </UL>
 282                            */
 283 a.arora       1.3          Array<CIMInstance> enumerateInstances(
 284 david.dillard 1.7              const String& host,
 285                                const String& port,
 286                                const CIMNamespaceName& nameSpace,
 287                                const CIMName& className,
 288                                Boolean deepInheritance = true,
 289                                Boolean localOnly = true,
 290                                Boolean includeQualifiers = false,
 291                                Boolean includeClassOrigin = false,
 292                                const CIMPropertyList& propertyList = CIMPropertyList()
 293 a.arora       1.3          );
 294                        
 295                            /** The <TT>enumerateClasses</TT> method is used to enumerate subclasses of
 296                            a CIM Class in the target Namespace.
 297 david.dillard 1.6      
 298 david.dillard 1.7          @param host - input parameter, string containing hostname of CIMOM
 299                            @param port - input parameter, string containing port of CIMOM
 300 a.arora       1.3          @param nameSpace The nameSpace parameter is a string that defines the target
 301                            namespace. See defintion of
 302                            \URL[Namespace]{DefinitionofTerms.html#NAMESPACE}.
 303                            @param className The <TT>className</TT> input parameter defines the Class
 304                            that is the basis for the enumeration.
 305                            @param deepInheritance If the <TT>deepInheritance</TT> input
 306                            parameter is <TT>true</TT>, this specifies that all subclasses of
 307                            the specified Class should be returned (if the <TT>ClassName</TT> input
 308                            parameter is absent, this implies that all Classes in the target Namespace
 309                            should be returned).  If <TT>false</TT>, only immediate child
 310                            subclasses are returned (if the <TT>ClassName</TT> input parameter is
 311                            NULL, this implies that all base Classes in the target Namespace should be
 312                            returned).
 313                        
 314                            @param localOnly If the <TT>localOnly</TT> input parameter is
 315                            <TT>true</TT>, it specifies that, for each returned Class, only elements
 316                            (properties, methods and qualifiers) overriden within the definition of
 317                            that Class are included.  If <TT>false</TT>, all elements are
 318                            returned.  This parameter therefore effects a CIM Server-side mechanism
 319                            to filter certain elements of the returned object based on whether or not
 320                            they have been propagated from the parent Class (as defined by the
 321 a.arora       1.3          <TT>PROPAGATED</TT> attribute).
 322                        
 323                            @param includeQualifiers If the <TT>includeQualifiers</TT> input parameter
 324                            is <TT>true</TT>, this specifies that all Qualifiers for each Class
 325                            (including Qualifiers on the Class and on any returned Properties, Methods
 326                            or CIMMethod Parameters) MUST be included as <TT>&lt;QUALIFIER&gt;</TT>
 327                            elements in the response.  If false no <TT>&lt;QUALIFIER&gt;</TT> elements
 328                            are present in each returned Class.
 329                        
 330                            @param includeClassOrigin If the <TT>IncludeClassOrigin</TT> input
 331                            parameter is <TT>true</TT>, this specifies that the <TT>CLASSORIGIN</TT>
 332                            attribute MUST be present on all appropriate elements in each returned
 333                            Class. If false, no <TT>CLASSORIGIN</TT> attributes are present in each
 334                            returned Class.
 335                        
 336                            @return If successful, the method returns zero or more Classes that meet the
 337                            required criteria.
 338                        
 339                            If unsuccessful, one of the following status codes MUST be returned by
 340                            this method, where the first applicable error in the list (starting with the
 341                            first element of the list, and working down) is the error returned. Any
 342 a.arora       1.3          additional method-specific interpretation of the error in is given in
 343                            parentheses.
 344                        
 345                            <UL>
 346                              <LI>CIM_ERR_ACCESS_DENIED
 347                              <LI>CIM_ERR_NOT_SUPPORTED
 348                              <LI>CIM_ERR_INVALID_NAMESPACE
 349                              <LI>CIM_ERR_INVALID_PARAMETER (including missing,
 350                                duplicate, unrecognized or otherwise incorrect parameters)
 351                              <LI>CIM_ERR_INVALID_CLASS (the CIM Class that is the
 352                                basis for this enumeration does not exist)
 353                              <LI>CIM_ERR_FAILED (some other unspecified error occurred)
 354                              </LI>
 355                            </UL>
 356                            */
 357                            Array<CIMClass> enumerateClasses(
 358 david.dillard 1.7              const String& host,
 359                                const String& port,
 360                                const CIMNamespaceName& nameSpace,
 361                                const CIMName& className = CIMName(),
 362                                Boolean deepInheritance = false,
 363                                Boolean localOnly = true,
 364                                Boolean includeQualifiers = true,
 365                                Boolean includeClassOrigin = false
 366 a.arora       1.3          );
 367 david.dillard 1.7      
 368 a.arora       1.3          /** The <TT>enumerateClassNames</TT> operation is used to enumerate the
 369                            names of subclasses of a CIM Class in the target Namespace.
 370 david.dillard 1.6      
 371 david.dillard 1.7          @param host - input parameter, string containing hostname of CIMOM
 372                            @param port - input parameter, string containing port of CIMOM
 373 a.arora       1.3          @param nameSpace The nameSpace parameter is a string that defines the target
 374                            namespace. See defintion of
 375                            \URL[Namespace]{DefinitionofTerms.html#NAMESPACE}.
 376                            @param className The <TT>className</TT> input parameter defines the Class
 377                            that is the basis for the enumeration.
 378                            @param deepInheritance If the <TT>deepInheritance</TT> input parameter is
 379                            true, this specifies that the names of all subclasses of the specified Class
 380                            should be returned (if the ClassName input parameter is absent, this implies
 381                            that the names of all Classes in the target Namespace should be returned).
 382                            If false, only the names of immediate child subclasses are returned (if the
 383                            className input parameter is NULL, this implies that the names of all base
 384                            Classes in the target Namespace should be returned).  @return If successful,
 385                            the method returns zero or more names of Classes that meet the requested
 386                            criteria.  If unsuccessful, one of the following status codes MUST be
 387                            returned by this method, where the first applicable error in the list
 388                            (starting with the first element of the list, and working down) is the error
 389                            returned.  Any additional method-specific interpretation of the error in is
 390                            given in parentheses.
 391                        
 392                            <UL>
 393                              <LI>CIM_ERR_ACCESS_DENIED
 394 a.arora       1.3            <LI>CIM_ERR_NOT_SUPPORTED
 395                              <LI>CIM_ERR_INVALID_NAMESPACE
 396                              <LI>CIM_ERR_INVALID_PARAMETER (including missing,
 397                                duplicate, unrecognized or otherwise incorrect parameters)
 398                              <LI>CIM_ERR_INVALID_CLASS (the CIM Class that is the
 399                                basis for this enumeration does not exist)
 400                              <LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI>
 401                            </UL>
 402                            */
 403                            Array<CIMName> enumerateClassNames(
 404 david.dillard 1.7              const String& host,
 405                                const String& port,
 406                                const CIMNamespaceName& nameSpace,
 407                                const CIMName& className = CIMName(),
 408                                Boolean deepInheritance = false
 409 a.arora       1.3          );
 410                        
 411                            /** The <TT>getClass</TT> method executes a CIM operation that returns
 412 david.dillard 1.6              a single CIM Class from the target Namespace where the ClassName input
 413                                parameter defines the name of the class to be retrieved.
 414                        
 415 david.dillard 1.7              @param host - input parameter, string containing hostname of CIMOM
 416                                @param port - input parameter, string containing port of CIMOM
 417 david.dillard 1.6              @param nameSpace (Required) The <TT>nameSpace</TT> parameter is a CIMName
 418                                object that defines the target Namespace.  See definition of
 419                                \URL[Namespace]{DefinitionofTerms.html#NAMESPACE}.
 420                                @param className (Required)The <TT>className</TT> input parameter is a CIMName
 421                                object that defines the name of the Class to be retrieved.
 422 david.dillard 1.7              @param localOnly (Boolean, Optional, default = true, Input)  If the
 423                                <TT>localOnly</TT> input
 424 david.dillard 1.6              parameter is true, this specifies that only CIM Elements (properties,
 425                                methods and qualifiers) overridden within the definition of the Class are
 426                                returned.  If false, all elements are returned.  This parameter therefore
 427                                effects a CIM Server-side mechanism to filter certain elements of the
 428                                returned object based on whether or not they have been propagated from the
 429                                parent Class (as defined by the PROPAGATED attribute).
 430                        
 431                                @param includeQualifiers (Boolean, Optional, default = true, Input) If the
 432                                <TT>includeQualifiers</TT> input parameter is true, this specifies that
 433                                all Qualifiers for that Class (including Qualifiers on the Class and on
 434                                any returned Properties, Methods or CIMMethod Parameters) MUST be included
 435                                as elements in the response.  If false no QUALIFIER elements are present
 436                                in the returned Class object.
 437                        
 438                                @param includeClassOrigin (Boolean,Optional, default = false, Input) If
 439                                the <TT>includeClassOrigin</TT> input parameter is true, this specifies
 440                                that the CLASSORIGIN attribute MUST be present on all appropriate elements
 441                                in the returned Class.  If false, no CLASSORIGIN attributes are present in
 442                                the returned Class.
 443                        
 444                                @param propertyList (optional, Input) If the <TT>propertyList</TT>
 445 david.dillard 1.6              CIMPropertyList input parameter is not NULL, the members of the array
 446                                define one or more CIMProperty names.  The returned Class WILL NOT include
 447                                elements for any Properties missing from this list.  Note that if
 448                                LocalOnly is specified as true this acts as an additional filter on the
 449                                set of Properties returned (for example, if CIMProperty A is included in
 450                                the PropertyList but LocalOnly is set to true and A is not local to the
 451                                requested Class, then it will not be included in the response).  If the
 452                                PropertyList input parameter is an empty array this signifies that no
 453                                Properties are included in the response.  If the PropertyList input
 454                                parameter is NULL this specifies that all Properties (subject to the
 455                                conditions expressed by the other parameters) are included in the
 456                                response.
 457 a.arora       1.3              @see CIMPropertyList
 458 david.dillard 1.6      
 459 david.dillard 1.7              If the <TT>propertyList</TT> contains duplicate elements, the Server
 460                                MUST ignore the duplicates but otherwise process the request normally.
 461                                If the PropertyList contains elements which are invalid CIMProperty
 462                                names for the target Class, the Server MUST ignore such entries but
 463                                otherwise process the request normally.
 464 david.dillard 1.6      
 465 david.dillard 1.7              @return If successful, the return value is a single CIMClass objcet.
 466 david.dillard 1.6      
 467 david.dillard 1.7              If unsuccessful, an exception is executed. If the error is local, this may
 468 a.arora       1.3              be any local exception.
 469                                If the error is in the host normally a CIMException is returned with one of the
 470 david.dillard 1.7              following CIMException codes, where the first applicable error in the
 471                                list (starting with the first element of the list, and working down) is the error
 472                                returned.  Any additional method-specific interpretation of the error is given
 473                                in parentheses.
 474                                <UL>
 475                                    <LI>CIM_ERR_ACCESS_DENIED
 476                                    <LI>CIM_ERR_INVALID_NAMESPACE
 477                                    <LI>CIM_ERR_INVALID_PARAMETER (including missing,
 478                                    duplicate,unrecognized or otherwise incorrect parameters)
 479                                    <LI>CIM_ERR_NOT_FOUND (the request CIM Class does not exist in
 480                                    the specified namespace)
 481                                    <LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI>
 482 a.arora       1.3              @exceptions REVIEWERS: Need to complete this definition
 483 david.dillard 1.7              </UL>
 484 a.arora       1.3              <pre>
 485                                    ... Connect sequence.
 486                                    CIMNamespace("root/cimv2);
 487                                    Boolean localOnly = true;
 488                                    Boolean includQualifiers = true;
 489                                    Boolean includeClassOrigin = false;
 490                                    CIMPropertyList propertyList;      // empty property list
 491                                    try
 492                                    CIMException checkClassException;
 493 david.dillard 1.6                  {
 494 a.arora       1.3                  CIMClass cimClass = client.getClass(nameSpace,
 495                                                                className,
 496                                                                localOnly,
 497                                                                includeQualifiers,
 498                                                                includeClassOrigin,
 499                                                                propertyList);
 500                                    }
 501                                    catch(CIMException& e)
 502                                    {
 503                                        if (checkClassException.getCode() = CIM_ERR_NOT_FOUND)
 504                                            cout << "Class " << className << " not found." << endl;
 505                                        ...
 506                                    }
 507                                    catch(Exception& e)
 508                                    {
 509                                    }
 510                                    ...
 511 david.dillard 1.6      
 512 a.arora       1.3                  // An alternate call with the default parameters would be:
 513                                    // This uses the defaults localOnly = includeQualifiers = true
 514                                    // includeClassOrigin = false. propertyList = Null;
 515 david.dillard 1.6      
 516 a.arora       1.3                  CIMClass cimClass = client.getClass(nameSpace, className);
 517                                </pre>
 518                                @exception REVIEWERS: Complete this
 519                                @see CIMExcetpion
 520                            */
 521                            CIMClass getClass(
 522 david.dillard 1.7              const String& host,
 523                                const String& port,
 524                                const CIMNamespaceName& nameSpace,
 525                                const CIMName& className,
 526                                Boolean localOnly = true,
 527                                Boolean includeQualifiers = true,
 528                                Boolean includeClassOrigin = false,
 529                                const CIMPropertyList& propertyList = CIMPropertyList()
 530 a.arora       1.3          );
 531                        
 532                            /** The <TT>createClass</TT> method creates a single CIM Class in
 533                            the target Namespace. The Class MUST NOT already exist. The NewClass input
 534                            parameter defines the new Class.  The proposed definition MUST be a correct
 535                            Class definition according to the CIM specification.
 536                        
 537                            In processing the creation of the new Class, the following rules MUST be
 538                            conformed to by the CIM Server:
 539                        
 540                            Any CLASSORIGIN and PROPAGATED attributes in the NewClass MUST be ignored by
 541                            the Server. If the new Class has no Superclass, the NewClass parameter
 542                            defines a new base Class. The Server MUST ensure that all Properties and
 543                            Methods of the new Class have a CLASSORIGIN attribute whose value is the
 544                            name of the new Class. If the new Class has a Superclass, the NewClass
 545                            parameter defines a new Subclass of that Superclass. The Superclass MUST
 546                            exist. The Server MUST ensure that:
 547                        
 548                            <UL>
 549                                <LI>Any Properties, Methods or Qualifiers in the Subclass not defined in
 550                                the Superclass are created as new elements of the Subclass. In
 551 a.arora       1.3              particular the Server MUST set the CLASSORIGIN attribute on the new
 552                                Properties and Methods to the name of the Subclass, and ensure that all
 553                                other Properties and Methods preserve their CLASSORIGIN attribute value
 554                                from that defined in the Superclass
 555                        
 556                                If a CIMProperty is defined in the Superclass and in the Subclass, the
 557                                value assigned to that property in the Subclass (including NULL) becomes
 558                                the default value of the property for the Subclass. If a CIMProperty or
 559                                CIMMethod of the Superclass is not specified in the Subclass, then that
 560                                CIMProperty or CIMMethod is inherited without modification by the
 561                                Subclass
 562                        
 563                                <LI>Any Qualifiers defined in the Superclass with a TOSUBCLASS attribute
 564                                value of true MUST appear in the resulting Subclass. Qualifiers in the
 565                                Superclass with a TOSUBCLASS attribute value of false MUST NOT be
 566                                propagated to the Subclass . Any CIMQualifier propagated from the
 567                                Superclass cannot be modified in the Subclass if the OVERRIDABLE
 568                                attribute of that CIMQualifier was set to false in the Superclass. It is
 569                                a
 570                                Client error to specify such a CIMQualifier in the NewClass with a
 571                                different definition to that in the Superclass (where definition
 572 a.arora       1.3              encompasses the name, type and flavor attribute settings of the
 573                                <QUALIFIER> element, and the value of the CIMQualifier).
 574 david.dillard 1.7          </LI>
 575 a.arora       1.3          </UL>
 576 david.dillard 1.6      
 577 david.dillard 1.7          @param host - input parameter, string containing hostname of CIMOM
 578 david.dillard 1.6      
 579 david.dillard 1.7          @param port - input parameter, string containing port of CIMOM
 580 a.arora       1.3      
 581                            @param nameSpace The nameSpace parameter is a string that defines the target
 582                            namespace. See defintion of
 583                            \URL[Namespace]{DefinitionofTerms.html#NAMESPACE}.
 584                        
 585                            @param newClass The <TT>newClass<?TT> input parameter defines the new Class.
 586                        
 587                            @return If successful, the specified Class MUST have been created by the CIM
 588                            Server.
 589                        
 590                            If unsuccessful, one of the following status codes MUST be returned by this
 591                            method, where the first applicable error in the list (starting with the
 592                            first element of the list, and working down) is the error returned. Any
 593                            additional method-specific interpretation of the error in is given in
 594                            parentheses.
 595                            <UL>
 596                                 <LI>CIM_ERR_ACCESS_DENIED
 597                                 <LI>CIM_ERR_NOT_SUPPORTED
 598                                 <LI>CIM_ERR_INVALID_NAMESPACE
 599                                 <LI>CIM_ERR_INVALID_PARAMETER (including missing, duplicate,
 600                                 unrecognized or otherwise incorrect parameters)
 601 a.arora       1.3               <LI>CIM_ERR_ALREADY_EXISTS (the CIM Class already exists)
 602                                 <LI>CIM_ERR_INVALID_SUPERCLASS (the putative CIM Class declares a
 603                                 non-existent superclass)
 604                                 <LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI>
 605                            </UL>
 606                            */
 607                            void createClass(
 608 david.dillard 1.7              const String& host,
 609                                const String& port,
 610                                const CIMNamespaceName& nameSpace,
 611                                const CIMClass& newClass
 612 a.arora       1.3          );
 613                        
 614                            /** The <TT>DeleteClass</TT> method deletes a single CIM Class from the
 615 david.dillard 1.7          target Namespace.
 616                        
 617                            @param host - input parameter, string containing hostname of CIMOM
 618                        
 619                            @param port - input parameter, string containing port of CIMOM
 620                        
 621                            @param nameSpace The nameSpace parameter is a CIMName that defines
 622                            the target namespace. 	See defintion of
 623                            \URL[Namespace]{DefinitionofTerms.html#NAMESPACE}.
 624 david.dillard 1.6      
 625 david.dillard 1.7          @param className The <TT>className</TT> input parameter defines the name
 626                            of the Class to be deleted.
 627 david.dillard 1.6      
 628 david.dillard 1.7          @return If successful, the specified Class (including any subclasses
 629                            and any instances) MUST have been removed by the CIM Server.  The
 630                            operation MUST fail if any one of these objects cannot be deleted.
 631 a.arora       1.3      
 632 david.dillard 1.7          If unsuccessful, one of the following status codes MUST be returned by
 633                            this method, where the first applicable error in the list (starting
 634                            with the first element of the list, and working down) is the error
 635                            returned. Any additional method-specific interpretation of the error
 636                            in is given in parentheses.
 637                        
 638                            <UL>
 639                                <LI>CIM_ERR_ACCESS_DENIED
 640                                <LI>CIM_ERR_NOT_SUPPORTED
 641                                <LI>CIM_ERR_INVALID_NAMESPACE
 642                                <LI>CIM_ERR_INVALID_PARAMETER (including missing, duplicate,
 643                                unrecognized or otherwise incorrect parameters)
 644                                <LI>CIM_ERR_NOT_FOUND (the CIM Class to be deleted does not exist)
 645                                <LI>CIM_ERR_CLASS_HAS_CHILDREN (the CIM Class has one or more
 646                                subclasses which cannot be deleted)
 647                                <LI>CIM_ERR_CLASS_HAS_INSTANCES (the CIM Class has one or more
 648                                instances which cannot be deleted)
 649                                <LI>CIM_ERR_FAILED (some other unspecified error occurred)
 650                            </UL>
 651 a.arora       1.3          */
 652                            void deleteClass(
 653 david.dillard 1.7              const String& host,
 654                                const String& port,
 655                                const CIMNamespaceName& nameSpace,
 656                                const CIMName& className
 657 a.arora       1.3          );
 658 david.dillard 1.7      
 659 a.arora       1.3          /** The <TT>deleteQualifier</TT> operation deletes a single CIMQualifier
 660                            declaration from the target Namespace.
 661 david.dillard 1.6      
 662 david.dillard 1.7          @param host - input parameter, string containing hostname of CIMOM
 663 david.dillard 1.6      
 664 david.dillard 1.7          @param port - input parameter, string containing port of CIMOM
 665 a.arora       1.3      
 666                            @param nameSpace The nameSpace parameter is a CIMName that defines the target
 667                            namespace. See defintion of
 668                            \URL[Namespace]{DefinitionofTerms.html#NAMESPACE}.
 669                        
 670                            @param qualifierName CIMName <TT>qualifierName</TT> input parameter identifies
 671 david.dillard 1.6          the CIMQualifier whose declaration to be deleted.
 672                        
 673 a.arora       1.3          @return If successful, the specified CIMQualifier declaration MUST have been deleted
 674                            from the Namespace with a normal return from the call.
 675                        
 676 david.dillard 1.6          If there is any error one of the CIMException errors is returned.  The
 677                            errors are based on the CIM error codes defined below:
 678 david.dillard 1.7          <UL>
 679 a.arora       1.3            <LI>CIM_ERR_ACCESS_DENIED
 680                              <LI>CIM_ERR_NOT_SUPPORTED
 681                              <LI>CIM_ERR_INVALID_NAMESPACE
 682 david.dillard 1.6            <LI>CIM_ERR_INVALID_PARAMETER (including missing, duplicate, unrecognized or
 683 a.arora       1.3                 otherwise incorrect parameters)
 684                              <LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI>
 685                              </UL>
 686                            @exception CIMexception - May return any of the CIMException codes defined above.
 687                            @exception Exception
 688                            <pre>
 689                            // simple function to delete qualifier named "Expensive".  Exceptions ignored.
 690                                CIMClient client;
 691                                client.connect("localhost", 5988, String::EMPTY, String::EMPTY);
 692                                CIMName qualifierName("Expensive");
 693                                client.deleteQualifier(CIMName("root/cimv2",qualifierName);
 694                            </pre>
 695                            */
 696                            void deleteQualifier(
 697 david.dillard 1.7              const String& host,
 698                                const String& port,
 699                                const CIMNamespaceName& nameSpace,
 700                                const CIMName& qualifierName
 701 a.arora       1.3          );
 702                        
 703                            /** The <TT>getQualifier</TT> operation retrieves a single CIMQualifier
 704                            declaration from the target Namespace.
 705 david.dillard 1.6      
 706 david.dillard 1.7          @param host - input parameter, string containing hostname of CIMOM
 707 david.dillard 1.6      
 708 david.dillard 1.7          @param port - input parameter, string containing port of CIMOM
 709 a.arora       1.3      
 710 david.dillard 1.6          @param nameSpace The nameSpace parameter is a CIMNameSpace object that defines
 711 a.arora       1.3          the target namespace. See defintion of
 712                            \URL[Namespace]{DefinitionofTerms.html#NAMESPACE}.
 713                        
 714 david.dillard 1.6          @param qualifierName The <TT>qualifierName</TT> input parameter  is a CIMName object
 715 a.arora       1.3          that identifies the CIMQualifier whose declaration to be retrieved.
 716                        
 717                            @return If successful, the method returns the CIMQualifier declaration for
 718                            the named CIMQualifier.
 719                        
 720                            If unsuccessful, one of the following status codes MUST be returned by this
 721                            method, where the first applicable error in the list (starting with the
 722                            first element of the list, and working down) is the error returned. Any
 723                            additional method-specific interpretation of the error in is given in
 724                            parentheses.
 725                        
 726                            <UL>
 727                              <LI>CIM_ERR_ACCESS_DENIED
 728                              <LI>CIM_ERR_NOT_SUPPORTED
 729                              <LI>CIM_ERR_INVALID_NAMESPACE
 730                              <LI>CIM_ERR_INVALID_PARAMETER (including missing,
 731 david.dillard 1.7              duplicate, unrecognized or otherwise incorrect parameters)
 732 a.arora       1.3            <LI>CIM_ERR_INVALID_CLASS (the CIM Class does not exist in the specified
 733 david.dillard 1.7              namespace)
 734 a.arora       1.3            <LI>CIM_ERR_NOT_FOUND (the CIM Class does exist, but the requested
 735 david.dillard 1.7              CIM Instance does not exist in the specified namespace)
 736 a.arora       1.3            <LI>CIM_ERR_NO_SUCH_PROPERTY (the CIM Instance does exist, but the
 737 david.dillard 1.7              requested CIMProperty does not)
 738 a.arora       1.3            <LI>CIM_ERR_TYPE_MISMATCH (the supplied value is incompatible with the
 739 david.dillard 1.7              type of the CIMProperty)
 740 a.arora       1.3            <LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI>
 741                            </UL>
 742                            */
 743                            CIMQualifierDecl getQualifier(
 744 david.dillard 1.7              const String& host,
 745                                const String& port,
 746                                const CIMNamespaceName& nameSpace,
 747                                const CIMName& qualifierName
 748 a.arora       1.3          );
 749                        
 750                            /** The <TT>modifyClass</TT> method modifies an existing CIM Class in the
 751                            target Namespace.
 752                        
 753                            The Class MUST already exist. The <TT>ModifiedClass</TT>
 754                            input parameter defines the set of changes (which MUST be  correct
 755                            amendments to the CIM Class as defined by the CIM Specification) to be made
 756                            to the current class definition.
 757                        
 758                            In processing the  modifcation of the Class, the following rules MUST be
 759                            conformed to by the CIM Server.
 760                        
 761                            <UL>
 762                              <LI>Any <TT>CLASSORIGIN</TT> and <TT>PROPAGATED</TT> attributes in the
 763                              <TT>ModifiedClass</TT> MUST be ignored by the Server.
 764                              <LI>If the  modified Class has no Superclass,
 765                              the<TT>ModifiedClass</TT> parameter defines modifications to a base Class.
 766                              The Server MUST ensure that:
 767                              <UL>
 768                                <LI>All Properties and Methods of the modified Class have a
 769 a.arora       1.3              <TT>CLASSORIGIN</TT> attribute whose value is the name of this Class.
 770                                <LI>Any Properties, Methods or Qualifiers in the existing Class
 771                                definition which do not appear in the   <FONT face="Courier
 772                                New">ModifiedClass</TT> parameter are removed from the resulting
 773                                modified Class.</LI>
 774                              </UL>
 775                              <LI>If the  modified Class has a Superclass,the <TT>ModifiedClass</TT>
 776                              parameter defines modifications to a Subclass of that Superclass. The
 777                              Superclass MUST exist, and the Client MUST NOT change the name of the
 778                              Superclass in the modified Subclass. The Server MUST ensure that:
 779                              <UL>
 780                                <LI>Any Properties, Methods or Qualifiers in the Subclass not
 781                                defined in the Superclass are created as elements of the Subclass. In
 782                                particular the Server MUST set the <TT>CLASSORIGIN</TT> attribute on the
 783                                new Properties and Methods to the name of the Subclass, and MUST ensure
 784                                that all other Properties and Methods preserve their
 785                                <TT>CLASSORIGIN</TT> attribute value from that defined in the
 786                                Superclass.
 787                                <LI>Any CIMProperty, CIMMethod or CIMQualifier previously defined in the
 788                                Subclass
 789                                but not defined in the Superclass, and which is not present in the
 790 a.arora       1.3              <TT>ModifiedClass</TT> parameter, is removed from the Subclass.
 791                                <LI>If a CIMProperty is specified in the <TT>ModifiedClass</TT>
 792                                parameter, the value assigned to that property therein (including
 793                                NULL) becomes the default value of the property for the Subclass.
 794                                <LI>If a CIMProperty or CIMMethod of the Superclass is not specified in
 795                                the
 796                                Subclass, then that CIMProperty or CIMMethod is inherited
 797                                without modification by the Subclass (so that any previous changes to
 798                                such an Element in the Subclass are lost).
 799                                <LI>If a CIMQualifier in the Superclass is not specified in the
 800                                Subclass, and the CIMQualifier is defined in the Superclass with a
 801                                <TT>TOSUBCLASS</TT> attribute value of <TT>true</TT>, then the
 802                                CIMQualifier
 803                                MUST still be present in the resulting modified Subclass (it is not
 804                                possible to remove a propagated CIMQualifier from a Subclass).
 805                                <LI>Any CIMQualifier propagated from the Superclass cannot be
 806                                modified in the Subclass if the <TT>OVERRIDABLE</TT> attribute of
 807                                that CIMQualifier was set to <TT>false</TT> in the Superclass. It is a
 808                                Client error to specify such a CIMQualifier in the
 809                                <TT>ModifiedClass</TT>
 810                                with a different definition to that in the Superclass (where definition
 811 a.arora       1.3              encompasses the name, type and flavor attribute settings of the
 812                                <TT>&lt;QUALIFIER&gt;</TT> element, and the value of the CIMQualifier).
 813                                <LI>Any Qualifiers defined in the Superclass with a <TT>TOSUBCLASS</TT>
 814                                attribute value of  <TT>false</TT> MUST NOT be propagated to the
 815                                Subclass.</LI> </UL>
 816                               </LI></UL>
 817 david.dillard 1.6      
 818 david.dillard 1.7          @param host - input parameter, string containing hostname of CIMOM
 819 david.dillard 1.6      
 820 david.dillard 1.7          @param port - input parameter, string containing port of CIMOM
 821 a.arora       1.3      
 822                            @param nameSpace The nameSpace parameter is a string that defines the target
 823                            namespace. See defintion of
 824                            \URL[Namespace]{DefinitionofTerms.html#NAMESPACE}.
 825                        
 826                            @param modifiedClass The <TT>modifiedClass</TT>
 827                            input parameter defines the set of changes (which MUST be correct
 828                            amendments to the CIM Class as defined by the CIM Specification) to be made
 829                            to the current class definition.
 830                        
 831                            @return If successful, the specified Class MUST have been updated by
 832                            the CIM Server.
 833                        
 834                            The request to modify the Class MUST fail if the Server cannot update any
 835                            existing Subclasses or Instances of that Class in a consistent manner.
 836                        
 837                            @return If unsuccessful, one of the following status codes MUST be
 838                            returned by this method, where the first applicable error in the list
 839                            (starting with the first element of the list, and working down) is the
 840                            error returned. Any additional method-specific interpretation of the error
 841                            in is given in parentheses.
 842 a.arora       1.3      
 843                            <UL>
 844                              <LI>CIM_ERR_ACCESS_DENIED
 845                              <LI>CIM_ERR_NOT_SUPPORTED
 846                              <LI>CIM_ERR_INVALID_NAMESPACE
 847                              <LI>CIM_ERR_INVALID_PARAMETER (including missing,
 848                                duplicate, unrecognized or otherwise incorrect parameters)
 849                              <LI>CIM_ERR_NOT_FOUND (the CIM Class does not
 850                                exist)
 851                              <LI>CIM_ERR_INVALID_SUPERCLASS (the putative CIM Class
 852                                declares a non-existent or incorrect superclass)
 853                              <LI>CIM_ERR_CLASS_HAS_CHILDREN (the modification could
 854                                not be performed because it was not possible to update the subclasses of
 855                                the Class in a consistent fashion)
 856                              <LI>CIM_ERR_CLASS_HAS_INSTANCES (the modification could
 857                                not be performed because it was not possible to update
 858                                the instances of the Class in a consistent fashion)
 859                              <LI>CIM_ERR_FAILED (some other unspecified error occurred)
 860                             </LI></UL>
 861                            */
 862                            void modifyClass(
 863 david.dillard 1.7              const String& host,
 864                                const String& port,
 865                                const CIMNamespaceName& nameSpace,
 866                                const CIMClass& modifiedClass
 867 a.arora       1.3          );
 868                        
 869                            /** The <TT>setQualifier</TT> creates or update a single CIMQualifier
 870                            declaration in the target Namespace.  If the CIMQualifier declaration
 871                            already exists it is overwritten.
 872 david.dillard 1.6      
 873 david.dillard 1.7          @param host - input parameter, string containing hostname of CIMOM
 874 david.dillard 1.6      
 875 david.dillard 1.7          @param port - input parameter, string containing port of CIMOM
 876 a.arora       1.3      
 877                            @param nameSpace The nameSpace parameter is a CIMName that defines the target
 878                            namespace. See defintion of
 879                            \URL[Namespace]{DefinitionofTerms.html#NAMESPACE}.
 880                        
 881                            @param CIMQualifierDecl The <TT>CIMQualifierDecl</TT> input parameter is a
 882                            CIMQualifier object that defines the CIMQualifier Declaration to be added to
 883                            the Namespace.
 884                        
 885                            @return If successful, the CIMQualifier declaration MUST have been added to
 886                            the target Namespace. If a CIMQualifier declaration with the same
 887                            CIMQualifier name already existed, then it MUST have been replaced by the
 888                            new declaration.
 889                        
 890                            If unsuccessful, a CIMException with one of the following status codes MUST be returned
 891                            by this method, where the first applicable error in the list (starting with
 892                            the first element of the list, and working down) is the error returned. Any
 893                            additional method-specific interpretation of the error in is given in
 894                            parentheses.
 895                        
 896                            <UL>
 897 a.arora       1.3            <LI>CIM_ERR_ACCESS_DENIED
 898                              <LI>CIM_ERR_NOT_SUPPORTED
 899                              <LI>CIM_ERR_INVALID_NAMESPACE
 900                              <LI>CIM_ERR_INVALID_PARAMETER (including missing,
 901 david.dillard 1.7              duplicate, unrecognized or otherwise incorrect parameters)
 902 a.arora       1.3            <LI>CIM_ERR_NOT_FOUND (the requested CIMQualifier declaration did not
 903                              exist)
 904                              <LI>CIM_ERR_FAILED (some other unspecified error occurred)
 905                              </LI>
 906                            </UL>
 907                            @exception CIMException - Any of the CIMException codes defined above may
 908                            be returned.
 909                            @Exception Exception - TBD
 910                            <pre>
 911                                ... Connect with CIMClient object client;
 912                                CIMNamespaceName nameSpace("root/cimv2");
 913                                CIMQualifierDecl qual1(
 914 david.dillard 1.6                  CIMName ("CIMTYPE"),
 915 a.arora       1.3                  String(),
 916                                    CIMScope::PROPERTY,
 917                                    CIMFlavor::TOINSTANCE);
 918                                try
 919                                {
 920                                    client.setQualifier(nameSpace, qual1);
 921                                }
 922                                catch(CIMException e)
 923                                {
 924                                    ...
 925                                }
 926                            </pre>
 927                            */
 928                            void setQualifier(
 929 david.dillard 1.7              const String& host,
 930                                const String& port,
 931                                const CIMNamespaceName& nameSpace,
 932                                const CIMQualifierDecl& qualifierDeclaration
 933 a.arora       1.3          );
 934 david.dillard 1.7      
 935 a.arora       1.3          /** The <TT>enumerateQualifiers</TT> operation is used to enumerate
 936                            CIMQualifier declarations from the target Namespace.
 937 david.dillard 1.6      
 938 david.dillard 1.7          @param host - input parameter, string containing hostname of CIMOM
 939 david.dillard 1.6      
 940 david.dillard 1.7          @param port - input parameter, string containing port of CIMOM
 941 a.arora       1.3      
 942                            @param nameSpace The nameSpace parameter is a string that defines the target
 943                            namespace. See defintion of
 944                            \URL[Namespace]{DefinitionofTerms.html#NAMESPACE}.
 945                        
 946                            @return If successful, the method returns zero or more CIMQualifier
 947                            declarations.
 948                        
 949                            If unsuccessful, one of the following status codes MUST be returned by this
 950                            method, where the first applicable error in the list (starting with the
 951                            first element of the list, and working down) is the error returned. Any
 952                            additional method-specific interpretation of the error in is given in
 953                            parentheses.
 954                        
 955                            <UL>
 956                              <LI>CIM_ERR_ACCESS_DENIED
 957                              <LI>CIM_ERR_NOT_SUPPORTED
 958                              <LI>CIM_ERR_INVALID_NAMESPACE
 959                              <LI>CIM_ERR_INVALID_PARAMETER (including missing,
 960 david.dillard 1.7              duplicate, unrecognized or otherwise incorrect parameters)
 961 a.arora       1.3            <LI>CIM_ERR_NOT_FOUND (the requested CIMQualifier declaration did not
 962                              exist)
 963                              <LI>CIM_ERR_FAILED (some other unspecified error occurred)
 964                              </LI>
 965                             </UL>
 966                            <pre>
 967                                // function to get all qualifer declarations and print xml form.
 968                                try
 969                                {
 970 david.dillard 1.7                  CIMClient client;
 971                                    client.connect("localhost", 5988, String::EMPTY, String::EMPTY);
 972 a.arora       1.3                  Array<CIMQualifierDecl> qualifierDecls;
 973                                    CIMNamespaceName nameSpace("root/cimv2");
 974                                    qualifierDecls = client.enumerateQualifiers(nameSpace);
 975                                }
 976                                catch(Exception& e)
 977                                {
 978 david.dillard 1.7                  PEGASUS_STD(cerr) << "Error: " << e.getMessage() << PEGASUS_STD(endl);
 979                                    exit(1);
 980 a.arora       1.3              }
 981                                for (Uint32 i = 0; i < qualifierDecls.size(); i++)
 982                                {
 983                                    XmlWriter::printQualifierDeclElement(qualifierDecls[i], cout);
 984                                }
 985                            </pre>
 986                            */
 987                            Array<CIMQualifierDecl> enumerateQualifiers(
 988 david.dillard 1.7              const String& host,
 989                                const String& port,
 990                                const CIMNamespaceName& nameSpace
 991 a.arora       1.3          );
 992                        
 993                            /**
 994                            The <TT>getProperty</TT>operation is used to retrieve a single property
 995                            value from a CIM Instance in the target Namespace.
 996 david.dillard 1.6      
 997 a.arora       1.3          @param instanceName The <TT>instanceName</TT> input parameter specifies the
 998                            name of the Instance (model path) from which the CIMProperty value is
 999                            requested. \\Ref{INSTANCENAME}
1000 david.dillard 1.7          It is a full specified object path, thus it consists also of target namespace,
1001                            hostname and port
1002 a.arora       1.3      
1003                            @param propertyName The <TT>propertyName</TT> input parameter specifies the
1004                            name of the CIMProperty whose value is to be returned.
1005                        
1006                            @return If successful, the return value specifies the value of the requested
1007                            CIMProperty. If the value is NULL then no element is returned.
1008                        
1009                            If unsuccessful, one of the following status codes MUST be returned by this
1010                            method, where the first applicable error in the list (starting with the
1011                            first element of the list, and working down) is the error returned. Any
1012                            additional method-specific interpretation of the error in is given in
1013                            parentheses.
1014                            <UL>
1015 david.dillard 1.7          <LI>CIM_ERR_ACCESS_DENIED
1016                            <LI>CIM_ERR_INVALID_NAMESPACE
1017                            <LI>CIM_ERR_INVALID_PARAMETER (including missing, duplicate,
1018                            unrecognized or otherwise incorrect parameters)
1019                            <LI>CIM_ERR_INVALID_CLASS (the CIM Class does not exist in the specified
1020                            namespace)
1021                            <LI>CIM_ERR_NOT_FOUND (the CIM Class does exist, but the requested CIM
1022                            Instance does not exist in the specified namespace)
1023                            <LI><LI>CIM_ERR_NO_SUCH_PROPERTY (the CIM Instance does exist, but the
1024                            requested CIMProperty does not)
1025                            <LI>CIM_ERR_FAILED (some other unspecified error occurred)
1026 a.arora       1.3          </UL>
1027                            */
1028                            CIMValue getProperty(
1029 david.dillard 1.7              const CIMObjectPath& instanceName,
1030                                const CIMName& propertyName
1031 a.arora       1.3          );
1032                        
1033                            /** The <TT>setProperty</TT> operation sets a single property value in a CIM
1034                            Instance in the target Namespace.
1035                        
1036                            @param instanceName The <TT>instanceName</TT> input parameter specifies the
1037                            name of the Instance (model path) for which the CIMProperty value is to be
1038                            updated.
1039 david.dillard 1.7          It consists of a full specified object path, thus it consists also of target namespace,
1040                            hostname and port
1041 a.arora       1.3      
1042                            @param propertyName The <TT>propertyName</TT> input parameter specifies the
1043                            name of the CIMProperty whose value is to be updated.
1044                        
1045                            @param newValue The NewValue input parameter specifies the new value for the
1046                            CIMProperty (which may be NULL).
1047                        
1048                            @return If unsuccessful, one of the following status codes MUST be returned
1049                            by this method, where the first applicable error in the list (starting with
1050                            the first element of the list, and working down) is the error returned. Any
1051                            additional method-specific interpretation of the error in is given in
1052                            parentheses.
1053                            <UL>
1054                              <LI>CIM_ERR_ACCESS_DENIED
1055                              <LI>CIM_ERR_INVALID_NAMESPACE
1056                        
1057                              <LI>CIM_ERR_INVALID_PARAMETER (including
1058                              missing,duplicate, unrecognized or otherwise incorrect parameters)
1059                        
1060                              <LI>CIM_ERR_INVALID_CLASS (the CIM Class does not exist in the specified
1061                              namespace)
1062 a.arora       1.3            <LI>CIM_ERR_NOT_FOUND (the CIM Class does exist, but the requested
1063                              CIM Instance does not exist in the specified namespace)
1064                              <LI>CIM_ERR_NO_SUCH_PROPERTY (the CIM Instance does exist, but the
1065                              requested CIMProperty does not)
1066                              <LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI>
1067                            </UL>
1068                            */
1069                            void setProperty(
1070 david.dillard 1.7              const CIMObjectPath& instanceName,
1071                                const CIMName& propertyName,
1072                                const CIMValue& newValue = CIMValue()
1073 a.arora       1.3          );
1074                        
1075                            /** The <TT>DeleteInstance</TT> operation deletes a single CIM Instance
1076 david.dillard 1.7          from the target Namespace.
1077                        
1078                            @param instanceName The <TT>instanceName</TT> input parameter defines
1079                            the name (model path) of the Instance to be deleted.
1080                            It is a full specified object path, thus it consists also of target namespace,
1081                            hostname and port
1082 a.arora       1.3      
1083 david.dillard 1.7          @return If successful, the specified Instance MUST have been removed
1084                            by the CIM Server.
1085                        
1086                            If unsuccessful, one of the following status codes MUST be returned by
1087                            this method, where the first applicable error in the list (starting
1088                            with the first element of the list, and working down) is the error
1089                            returned. Any additional method-specific interpretation of the error in
1090                            is given in parentheses.
1091                        
1092                            <UL>
1093                                <LI>CIM_ERR_ACCESS_DENIED
1094                                <LI>CIM_ERR_NOT_SUPPORTED
1095                                <LI>CIM_ERR_INVALID_NAMESPACE
1096                                <LI>CIM_ERR_INVALID_PARAMETER (including missing, duplicate,
1097                                unrecognized or otherwise incorrect parameters)
1098                                <LI>CIM_ERR_INVALID_CLASS (the CIM Class does not exist in the
1099                                specified namespace)
1100                                <LI>CIM_ERR_NOT_FOUND (the CIM Class does exist, but the requested
1101                                CIM Instance does not exist in the specified namespace)
1102                                <LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI>
1103                            </UL>
1104 a.arora       1.3          */
1105                            void deleteInstance(
1106 david.dillard 1.7              const CIMObjectPath& instanceName
1107 a.arora       1.3          );
1108 david.dillard 1.7      
1109 a.arora       1.3          /** The <TT>createInstance</TT> method creates a single CIM
1110                            Instance in the target Namespace. The Instance MUST NOT already exist.
1111                        
1112                            In processing the creation of the new Instance, the following rules MUST be
1113                            conformed to by the CIM Server:
1114                        
1115                            Any CLASSORIGIN and PROPAGATED attributes in the NewInstance MUST be ignored
1116                            by the Server.
1117                        
1118                            The Server MUST ensure that:
1119                        
1120                            <UL>
1121                                <LI>Any Qualifiers in the Instance not defined in the Class are created
1122                                as new elements of the Instance.
1123                                <LI>All Properties of the Instance preserve their CLASSORIGIN attribute
1124                                value from that defined in the Class.
1125                                <LI>If a CIMProperty is specified in the ModifiedInstance parameter, the
1126                                value assigned to that property in the Instance (including NULL) becomes
1127                                the value of the property for the Instance. Note that it is a Client
1128                                error to specify a CIMProperty that does not belong to the Class.
1129                                <LI>If a CIMProperty of the Class is not specified in the Instance, then
1130 a.arora       1.3              that CIMProperty is inherited without modification by the Instance.
1131                                <LI>Any Qualifiers defined in the Class with a TOINSTANCE attribute
1132                                value of true appear in the Instance. Qualifiers in the
1133                                Class with a TOINSTANCE attribute value of false MUST NOT be propagated
1134                                to the Instance.
1135                                <LI>Any CIMQualifier propagated from the Class cannot be modified in the
1136                                Instance if the OVERRIDABLE attribute of that CIMQualifier was set to
1137                                false
1138                                in the Class. It is a Client error to specify such a CIMQualifier in the
1139                                NewInstance with a different definition to that in the Class (where
1140                                definition encompasses the name, type and flavor attribute settings of
1141                                the <QUALIFIER> element, and the value of the CIMQualifier).
1142                            </UL>
1143                        
1144                            @param newInstance The <TT>newInstance</TT> input parameter defines the new
1145                            Instance. The proposed definition MUST be a correct Instance definition for
1146                            the underlying CIM Class according to the CIM specification.
1147 david.dillard 1.7          It consists of a full specified object path, thus it consists also of target namespace,
1148                            hostname and port
1149 a.arora       1.3      
1150                            @return If successful, the return value defines the object path of the new
1151                            CIM Instance relative to the target Namespace (i.e. the Model Path as
1152                            defined by the CIM specification), created by the CIM Server.  It is
1153                            returned in case one or more of the new keys of the Instance are allocated
1154                            dynamically during the creation process rather than specified in the
1155                            request.
1156                        
1157                            If unsuccessful, one of the following status codes MUST be returned by this
1158                            method, where the first applicable error in the list (starting with the
1159                            first element of the list, and working down) is the error returned. Any
1160                            additional method-specific interpretation of the error in is given in
1161                            parentheses.
1162                        
1163                            <UL>
1164                                <LI>CIM_ERR_ACCESS_DENIED
1165                                <LI>CIM_ERR_NOT_SUPPORTED
1166                                <LI>CIM_ERR_INVALID_NAMESPACE
1167                                <LI>CIM_ERR_INVALID_PARAMETER (including missing, duplicate,
1168 david.dillard 1.7                  unrecognized or otherwise incorrect parameters)
1169 a.arora       1.3              <LI>CIM_ERR_INVALID_CLASS (the CIM Class of which this is to be a new
1170 david.dillard 1.7                  Instance does not exist)
1171 a.arora       1.3              <LI>CIM_ERR_ALREADY_EXISTS (the CIM Instance already exists)
1172                                <LI>CIM_ERR_FAILED (some other unspecified error occurred)
1173                            </UL>
1174                            */
1175                            CIMObjectPath createInstance(
1176 david.dillard 1.7              const CIMInstance& newInstance
1177 a.arora       1.3          );
1178                        
1179 david.dillard 1.7          /** Gets the CIM instance for the specified CIM object path.
1180 david.dillard 1.6      
1181 david.dillard 1.7          @param instanceName CIMobjectpath that identifies this CIM instance.
1182                            This must include all of the keys.
1183                            It is a full specified object path, thus it consists also of target namespace,
1184                            hostname and port
1185                        
1186                            @param localOnly If true, only properties and qualifiers overridden
1187                            or defined in the returned Instance are included in the response.
1188                            If false, all elements of the returned Instance are returned.
1189                        
1190                            @param includeQualifiers If true, all Qualifiers for each Object
1191                            (including Qualifiers on the Object and on any returned Properties)
1192                            MUST be included. If false no Qualifiers are present in the returned Object.
1193                        
1194                            @param includeClassOrigin If true, CLASSORIGIN attribute MUST be
1195                            present on all appropriate elements in each returned Object. If false,
1196                            no CLASSORIGIN attributes are present in each returned Object. The CLASSORIGIN
1197                            attribute is defined in the DMTF's Specification for the Representation of CIM
1198                            in XML. CLASSORIGIN is an XML tag identifying the following text as a class name.
1199                            It is attached to a property or method (when specified in XML), to indicate the
1200                            class where that property or method is first defined. Where the same property
1201                            name is locally defined in another superclass or subclass, the Server will
1202 david.dillard 1.7          return the value for the property in the lowest subclass.
1203                        
1204                            @param propertyList If the PropertyList input parameter is not NULL, the
1205                            members of the array define one or more Property names. Each returned Object
1206                            MUST NOT include elements for any Properties missing from this list.
1207                            Note that if LocalOnly is specified as true this acts as an additional
1208                            filter on the set of Properties returned (for example, if Property A is
1209                            included in the PropertyList but LocalOnly is set to true and A is not local
1210                            to a returned Instance, then it will not be included in that Instance).
1211                            If the PropertyList input parameter is an empty array this signifies that
1212                            no Properties are included in each returned Object. If the PropertyList
1213                            input parameter is NULL this specifies that all Properties (subject to
1214                            the conditions expressed by the other parameters) are included in each
1215                            returned Object. If the PropertyList contains duplicate elements, the
1216                            Server ignores the duplicates but otherwise process the request normally.
1217                            If the PropertyList contains elements which are invalid Property names for
1218                            any target Object, the Server ignores such entries but otherwise process
1219                            the request normally.
1220                        
1221                            @return If successful, the CIM instance identified by the CIMObjectPath. If
1222                            unsuccessful, an exception is executed.
1223 david.dillard 1.7          REVIEWERS: COmplete this.
1224                            */
1225 david.dillard 1.6      
1226 a.arora       1.3          CIMInstance getInstance(
1227 david.dillard 1.7              const CIMObjectPath& instanceName,
1228                                Boolean localOnly = true,
1229                                Boolean includeQualifiers = false,
1230                                Boolean includeClassOrigin = false,
1231                                const CIMPropertyList& propertyList = CIMPropertyList()
1232 a.arora       1.3          );
1233                        
1234 david.dillard 1.7              /** The <TT>modifyInstance</TT> method modifies an existing CIM
1235 a.arora       1.3          Instance in the target Namespace.
1236                        
1237                            @param modifiedInstance The <TT>modifiedInstance</TT> input parameter
1238                            identifies the name of the Instance to be modified, and defines the set of
1239                            changes (which MUST be correct amendments to the Instance as
1240                            defined by the CIM Specification) to be made to the current Instance
1241                            definition.
1242 david.dillard 1.7          It consists of a full specified object path, thus it consists also of target namespace,
1243                            hostname and port
1244 a.arora       1.3      
1245                            In processing the modifcation of the Instance, the following rules MUST
1246                            be conformed to by the CIM Server:
1247                        
1248                            <UL>
1249                              <LI>Any <TT>CLASSORIGIN</TT> and <TT>PROPAGATED</TT> attributes in the
1250                              <TT>ModifiedInstance</TT> MUST be ignored by the Server.
1251                              <LI>The Class MUST exist, and the Client MUST NOT change
1252                              the name of the Class in the modified Instance. The Server MUST ensure
1253                              that:
1254                              <UL>
1255                                <LI>Any Qualifiers in the Instance not defined in
1256                                the Class are created as new elements of the Instance.
1257                                <LI>All Properties of the Instance preserve their
1258                                <TT>CLASSORIGIN</TT> attribute value from that defined in the Class.
1259                                <LI>Any CIMQualifier previously defined in the Instance but not
1260                                defined in the Class, and which is not present in the
1261                                <TT>ModifiedInstance</TT> parameter, is removed from the Instance.
1262                        
1263                                <LI>If a CIMProperty is specified in the <TT>ModifiedInstance</TT>
1264                                parameter, the value assigned to that property therein
1265 a.arora       1.3              (including NULL) becomes the value of the property for the Instance.
1266                                Note that it is a Client error to specify a CIMProperty that does not
1267                                belong to the Class.
1268                        
1269                                <LI>If a CIMProperty of the Class is not specified in the Instance,
1270                                then that CIMProperty is inherited without modification by the Instance
1271                                (so that any previous changes to that CIMProperty in the Instance are
1272                                lost).
1273                                <LI>Any Qualifiers defined in the Class with a <TT>TOINSTANCE</TT>
1274                                attribute value of <TT>true</TT> appear in the Instance (it is not
1275                                possible remove a propagated CIMQualifier from an Instance. Qualifiers
1276                                in the Class with a <TT>TOINSTANCE</TT> attribute value of <TT>false</TT>
1277                                MUST NOT be propagated to the Instance.
1278                                <LI>Any CIMQualifier propagated from the Class cannot be modified by the
1279                                Server if the <TT>OVERRIDABLE</TT> attribute of that CIMQualifier was
1280                                set to <TT>false</TT> in the Class. It is a Client error to specify such
1281 david.dillard 1.7              a CIMQualifier in the <TT>ModifiedInstance</TT> with a different
1282 a.arora       1.3              definition to that in the Class (where definition encompasses the name,
1283                                type and flavor attribute settings of the
1284                                <TT>&lt;QUALIFIER&gt;</TT> element, and the value of the CIMQualifier).
1285                                <LI>Any CIMQualifier propagated from the Class cannot be modified in
1286                                the Instance if the <TT>OVERRIDABLE</TT> attribute of that CIMQualifier
1287                                was
1288                                set to <TT>false</TT> in the Class. It is a Client error to specify such
1289                                a CIMQualifier in the <TT>ModifiedInstance</TT> with a different
1290                                definition
1291                                to that in the Class (where definition encompasses the name, type and
1292                                flavor attribute settings of the <TT>&lt;QUALIFIER&gt;</TT>
1293                                element, and the value of the CIMQualifier).</LI>
1294                                </UL>
1295                              </LI></UL>
1296                        
1297                            @return If successful, the specified Instance MUST have been updated by the
1298                            CIM Server.
1299                        
1300                            If unsuccessful, one of the following status codes MUST be returned by
1301                            this method, where the first applicable error in the list (starting with the
1302                            first element of the list, and working down) is the error returned. Any
1303 a.arora       1.3          additional method-specific interpretation of the error in is given in
1304                            parentheses
1305                        
1306                            <UL>
1307                              <LI>CIM_ERR_ACCESS_DENIED
1308                              <LI>CIM_ERR_NOT_SUPPORTED
1309                              <LI>CIM_ERR_INVALID_NAMESPACE
1310                              <LI>CIM_ERR_INVALID_PARAMETER (including missing,
1311                                duplicate, unrecognized or otherwise incorrect parameters)
1312                              <LI>CIM_ERR_INVALID_CLASS (the CIM Class of which this is
1313                                to be a new Instance does not exist)
1314                              <LI>CIM_ERR_NOT_FOUND (the CIM Instance does not exist)
1315                              <LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI></UL>
1316                            */
1317                            void modifyInstance(
1318 david.dillard 1.7              const CIMInstance& modifiedInstance,
1319                                Boolean includeQualifiers = true,
1320                                const CIMPropertyList& propertyList = CIMPropertyList()
1321 a.arora       1.3          );
1322                        
1323                        
1324                            /** Execute an extrinsic CIM method.
1325                            Any CIM Server is assumed to support extrinsic methods. Extrinsic methods
1326                            are defined by the Schema supported by the Cim Server. If a CIM Server does
1327                            not support extrinsic method invocations, it MUST (subject to the
1328                            considerations described in the rest of this section) return the error code
1329                            CIM_ERR_NOT_SUPPORTED to any request to execute an extrinsic method. This
1330                            allows a CIM client to determine that all attempts to execute extrinsic
1331                            methods will fail.
1332                        
1333                            @param instanceName The <TT>instanceName</TT> parameter is a CIMReference
1334                            that defines the CIM instance for which the method is defined
1335 david.dillard 1.7          It consists of a full specified object path, thus it consists also of target namespace,
1336                            hostname and port
1337 a.arora       1.3      
1338                            @param methodName The <TT>methodName</TT> parameter is a String with the
1339                            name of the method to be executed.
1340                        
1341                            @param inParameters This parameter defines an array of input parameters for
1342                            the method execution
1343                        
1344                            @param outParameters This parameter defines an array of parameters returned
1345                            by the executed method
1346                        
1347                            @return If the Cim Server is unable to perform the extrinsic method
1348                            invocation, one of the following status codes MUST be returned by the
1349                            CimServer, where the first applicable error in the list (starting with the
1350                            first element of the list, and working down) is the error returned. Any
1351                            additional specific interpretation of the error is given in parentheses.
1352                        
1353                            ATTN: We have not defined the CIMValue returned
1354                            <UL>
1355                        
1356                                 <LI>CIM_ERR_ACCESS_DENIED
1357                                 <LI>CIM_ERR_NOT_SUPPORTED (the CimServer does not support extrinsic
1358 a.arora       1.3               method invocations)
1359                                 <LI>CIM_ERR_INVALID_NAMESPACE
1360                                 <LI>CIM_ERR_INVALID_PARAMETER (including missing, duplicate,
1361                                 unrecognized or otherwise incorrect parameters)
1362                                 <LI>CIM_ERR_NOT_FOUND (the target CIM Class or instance does not exist
1363                                 in the specified namespace)
1364                                 <LI>CIM_ERR_METHOD_NOT_FOUND
1365                                 <LI>CIM_ERR_METHOD_NOT_AVAILABLE (the CimServer is unable to honor the
1366                                 invocation request)
1367                                 <LI>CIM_ERR_FAILED (some other unspecified error occurred)
1368                            </UL>
1369                        
1370                            */
1371                            CIMValue invokeMethod(
1372 david.dillard 1.7              const CIMObjectPath& instanceName,
1373                                const CIMName& methodName,
1374                                const Array<CIMParamValue>& inParameters,
1375                                Array<CIMParamValue>& outParameters
1376 a.arora       1.3          );
1377                        
1378                            /** The <TT>associatorNames</TT> operation enumerates the names of
1379                            CIM Objects (Classes or Instances) that are associated to a particular
1380                            source CIM Object.
1381                        
1382                            @param objectName The <TT>objectName</TT> input parameter defines the source
1383                            CIM Object whose associated names are to be returned. This is either a Class
1384                            name or Instance name (model path).
1385 david.dillard 1.7          It is a full specified object path, thus it consists also of target namespace,
1386                            hostname and port
1387 a.arora       1.3      
1388                            @param assocClass The <TT>assocClass</TT> input parameter, if not NULL,
1389                            MUST be a valid CIM Association Class name. It acts as a filter on the
1390                            returned set of names by mandating that each returned name identifies an
1391                            Object that MUST be associated to the source Object via an Instance of this
1392                            Class or one of its subclasses.
1393                        
1394                            @param resultClass The <TT>resultClass</TT> input parameter, if not NULL,
1395                            MUST be a valid CIM Class name. It acts as a filter on the returned set of
1396                            names by mandating that each returned name identifies an Object that MUST be
1397                            either an Instance of this Class (or one of its subclasses) or be this Class
1398                            (or one of its subclasses).
1399                        
1400                            @param role The <TT>role</TT> input parameter, if not NULL, MUST be a valid
1401                            CIMProperty name. It acts as a filter on the returned set of names by
1402                            mandating that each returned name identifies an Object that MUST be
1403                            associated to the source Object via an Association in which the source
1404                            Object plays the specified role (i.e. the name of the CIMProperty in the
1405                            Association Class that refers to the source Object MUST match the value of
1406                            this parameter).
1407                        
1408 a.arora       1.3          @param resultRole The <TT>resultRole</TT> input parameter, if not
1409                            <TT>NULL</TT>, MUST be a valid CIMProperty name. It acts as a filter on the
1410                            returned set of names by mandating that each returned name identifies an
1411                            Object that MUST be associated to the source Object via an Association in
1412                            which the named returned Object plays the specified role (i.e. the name of
1413                            the CIMProperty in the Association Class that refers to the returned Object
1414                            MUST match the value of this parameter).
1415                        
1416                            @return If successful, the method returns zero or more full CIM Class paths
1417                            or Instance paths of Objects meeting the requested criteria. Since it is
1418                            possible for CIM Objects from different hosts or namespaces to be
1419                            associated, each returned path is an absolute path that includes host and
1420                            namespace information.
1421                        
1422                            If unsuccessful, one of the following status codes MUST be returned by this
1423                            method, where the first applicable error in the list (starting with the
1424                            first element of the list, and working down) is the error returned. Any
1425                            additional method-specific interpretation of the error in is given in
1426                            parentheses.
1427                        
1428                            <UL>
1429 a.arora       1.3            <LI>CIM_ERR_ACCESS_DENIED
1430                              <LI>CIM_ERR_NOT_SUPPORTED
1431                              <LI>CIM_ERR_INVALID_NAMESPACE;
1432                              <LI>CIM_ERR_INVALID_PARAMETER (including missing,
1433                              duplicate, unrecognized or otherwise incorrect parameters)
1434                              <LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI>
1435                            </UL>
1436                            */
1437                            Array<CIMObjectPath> associatorNames(
1438 david.dillard 1.7              const CIMObjectPath& objectName,
1439                                const CIMName& assocClass = CIMName(),
1440                                const CIMName& resultClass = CIMName(),
1441                                const String& role = String::EMPTY,
1442                                const String& resultRole = String::EMPTY
1443 a.arora       1.3          );
1444                        
1445                            /** The <TT>Associators</TT> method enumerates CIM Objects
1446                            (Classes or Instances) that are associated to a particular source CIM
1447                            Object.
1448                        
1449                            @param objectName The <TT>objectName</TT> input parameter defines the source
1450                            CIM Object whose associated Objects are to be returned.  This may be either
1451                            a Class name or Instance name (model path).
1452 david.dillard 1.7          It is a full specified object path, thus it consists also of target namespace,
1453                            hostname and port
1454 a.arora       1.3      
1455                            @param assocClass The <TT>assocClass</TT> input parameter, if not NULL, MUST
1456                            be a valid CIM Association Class name. It acts as a filter on the returned
1457                            set of Objects by mandating that each returned Object MUST be associated to
1458                            the source Object via an Instance of this Class or one of its subclasses.
1459                        
1460                            @param resultClass The <TT>resultClass</TT> input parameter, if not NULL,
1461                            MUST be a valid CIM Class name. It acts as a filter on the returned set of
1462                            Objects by mandating that each returned Object MUST be either an Instance of
1463                            this Class (or one of its subclasses) or be this Class (or one of its
1464                            subclasses).
1465                        
1466                            @param role The <TT>role</TT> input parameter, if not NULL, MUST be a valid
1467                            CIMProperty name. It acts as a filter on the returned set of Objects by
1468                            mandating that each returned Object MUST be associated to the source Object
1469                            via an Association in which the source Object plays the specified role (i.e.
1470                            the name of the CIMProperty in the Association Class that refers to the
1471                            source object MUST match the value of this parameter).
1472                        
1473                            @param resultRole The <TT>resultRole</TT> input parameter, if not NULL, MUST
1474                            be a valid CIMProperty name. It acts as a filter on the returned set of
1475 a.arora       1.3          Objects by mandating that each returned Object MUST be associated to the
1476                            source Object via an Association in which the returned Object plays the
1477                            specified role (i.e. the name of the CIMProperty in the Association Class
1478                            that refers to the returned Object MUST match the value of this parameter).
1479                        
1480                            @param includeQualifiers If the <TT>includeQualifiers</TT> input parameter
1481                            is true, this specifies that all Qualifiers for each Object (including
1482                            Qualifiers on the Object and on any returned Properties) MUST be included as
1483                            <QUALIFIER> elements in the response.  If false no <QUALIFIER> elements are
1484                            present in each returned Object.
1485                        
1486                            @param includeClassOrigin If the <TT>includeClassOrigin</TT> input parameter
1487                            is true, this specifies that the CLASSORIGIN attribute MUST be present on
1488                            all appropriate elements in each returned Object. If false, no CLASSORIGIN
1489                            attributes are present in each returned Object.
1490                        
1491                            @param propertyList If the <TT>propertyList</TT> input parameter is not
1492                            NULL, the members of the array define one or more CIMProperty names.  Each
1493                            returned Object MUST NOT include elements for any Properties missing from
1494                            this list. Note that if LocalOnly is specified as true (or DeepInheritance
1495                            is specified as false) this acts as an additional filter on the set of
1496 a.arora       1.3          Properties returned (for example, if CIMProperty A is included in the
1497                            PropertyList but LocalOnly is set to true and A is not local to a returned
1498                            Instance, then it will not be included in that Instance). If the
1499                            PropertyList input parameter is an empty array this signifies that no
1500                            Properties are included in each returned Object. If the PropertyList input
1501                            parameter is NULL this specifies that all Properties (subject to the
1502                            conditions expressed by the other parameters) are included in each returned
1503                            Object.
1504                        
1505                            If the propertyList contains duplicate elements, the Server MUST ignore the
1506                            duplicates but otherwise process the request normally.  If the PropertyList
1507                            contains elements which are invalid CIMProperty names for any target Object,
1508                            the Server MUST ignore such entries but otherwise process the request
1509                            normally.
1510                        
1511                            Clients SHOULD NOT explicitly specify properties in the PropertyList
1512                            parameter unless they have specified a non-NULL value for the ResultClass
1513                            parameter.
1514                        
1515                            @return If successful, the method returns zero or more CIM Classes or
1516                            Instances meeting the requested criteria.  Since it is possible for CIM
1517 a.arora       1.3          Objects from different hosts or namespaces to be associated, each returned
1518                            Object includes location information.
1519                        
1520                            If unsuccessful, one of the following status codes MUST be returned by this
1521                            method, where the first applicable error in the list (starting with the
1522                            first element of the list, and working down) is the error returned. Any
1523                            additional method-specific interpretation of the error in is given in
1524                            parentheses.
1525                        
1526                            <UL>
1527                              <LI>CIM_ERR_ACCESS_DENIED
1528                              <LI>CIM_ERR_NOT_SUPPORTED
1529                              <LI>CIM_ERR_INVALID_NAMESPACE
1530                              <LI>CIM_ERR_INVALID_PARAMETER (including
1531                              missing,duplicate, unrecognized or
1532                                otherwise incorrect parameters)
1533                              <LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI>
1534                            </UL>
1535                            */
1536                            Array<CIMObject> associators(
1537 david.dillard 1.7              const CIMObjectPath& objectName,
1538                                const CIMName& assocClass = CIMName(),
1539                                const CIMName& resultClass = CIMName(),
1540                                const String& role = String::EMPTY,
1541                                const String& resultRole = String::EMPTY,
1542                                Boolean includeQualifiers = false,
1543                                Boolean includeClassOrigin = false,
1544                                const CIMPropertyList& propertyList = CIMPropertyList()
1545 a.arora       1.3          );
1546                            /** The <TT>references</TT> operation enumerates the association
1547                            objects that refer to a particular target CIM Object (Class or Instance).
1548                        
1549                            @param The NameSpace parameter is a string that defines the target
1550                            namespace \Ref{NAMESPACE}
1551                        
1552                            @param objectName The <TT>objectName</TT> input parameter defines the target
1553                            CIM Object whose referring Objects are to be returned. This is either a
1554                            Class name or Instance name (model path).
1555 david.dillard 1.7          It is a full specified object path, thus it consists also of target namespace,
1556                            hostname and port
1557 a.arora       1.3      
1558                            @param resultClass The <TT>resultClass</TT> input parameter, if not NULL,
1559                            MUST be a valid CIM Class name. It acts as a filter on the returned set of
1560                            Objects by mandating that each returned Object MUST be an Instance of this
1561                            Class (or one of its subclasses), or this Class (or one of its subclasses).
1562                        
1563                            @param role The <TT>role</TT> input parameter, if not NULL, MUST be a valid
1564                            CIMProperty name. It acts as a filter on the returned set of Objects by
1565                            mandating that each returned Objects MUST refer to the target Object via a
1566                            CIMProperty whose name matches the value of this parameter.
1567                        
1568                            @param includeQualifiers.  If the <TT>includeQualifiers</TT> input parameter
1569                            is true, this specifies that all Qualifiers for each Object (including
1570                            Qualifiers on the Object and on any returned Properties) MUST be included as
1571                            <QUALIFIER> elements in the response.  If false no <QUALIFIER> elements are
1572                            present in each returned Object.
1573                        
1574                            @param includeClassOrigin If the <TT>includeClassOrigin</TT> input parameter
1575                            is true, this specifies that the CLASSORIGIN attribute MUST be present on
1576                            all appropriate elements in each returned Object. If false, no CLASSORIGIN
1577                            attributes are present in each returned Object.
1578 a.arora       1.3      
1579                            @param propertyList If the <TT>propertyList</TT> input parameter is not
1580                            NULL, the members of the array define one or more CIMProperty names.  Each
1581                            returned Object MUST NOT include elements for any Properties missing from
1582                            this list. Note that if LocalOnly is specified as true (or DeepInheritance
1583                            is specified as false) this acts as an additional filter on the set of
1584                            Properties returned (for example, if CIMProperty A is included in the
1585                            PropertyList but LocalOnly is set to true and A is not local to a returned
1586                            Instance, then it will not be included in that Instance). If the
1587                            PropertyList input parameter is an empty array this signifies that no
1588                            Properties are included in each returned Object. If the PropertyList input
1589                            parameter is NULL this specifies that all Properties (subject to the
1590                            conditions expressed by the other parameters) are included in each returned
1591                            Object.
1592                        
1593                            If the PropertyList contains duplicate elements, the Server MUST ignore the
1594                            duplicates but otherwise process the request normally.  If the PropertyList
1595                            contains elements which are invalid CIMProperty names for any target Object,
1596                            the Server MUST ignore such entries but otherwise process the request
1597                            normally.
1598                        
1599 a.arora       1.3          Clients SHOULD NOT explicitly specify properties in the PropertyList
1600                            parameter unless they have specified a non-NULL value for the ResultClass
1601                            parameter.
1602                        
1603                            @return If successful, the method returns zero or more CIM Classes or
1604                            Instances meeting the requested criteria.  Since it is possible for CIM
1605                            Objects from different hosts or namespaces to be associated, each returned
1606                            Object includes location information.
1607                        
1608                            If unsuccessful, one of the following status codes MUST be returned by this
1609                            method, where the first applicable error in the list (starting with the
1610                            first element of the list, and working down) is the error returned. Any
1611                            additional method-specific interpretation of the error in is given in
1612                            parentheses.
1613                        
1614                            <UL>
1615                              <LI>CIM_ERR_ACCESS_DENIED
1616                              <LI>CIM_ERR_NOT_SUPPORTED
1617                              <LI>CIM_ERR_INVALID_NAMESPACE
1618                              <LI>CIM_ERR_INVALID_PARAMETER (including missing,
1619 david.dillard 1.7              duplicate, unrecognized or otherwise incorrect parameters)
1620 a.arora       1.3            <LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI>
1621                             </UL>
1622                            */
1623                            Array<CIMObject> references(
1624 david.dillard 1.7              const CIMObjectPath& objectName,
1625                                const CIMName& resultClass = CIMName(),
1626                                const String& role = String::EMPTY,
1627                                Boolean includeQualifiers = false,
1628                                Boolean includeClassOrigin = false,
1629                                const CIMPropertyList& propertyList = CIMPropertyList()
1630 a.arora       1.3          );
1631                        
1632                            /** The <TT>referenceNames</TT> operation enumerates the association
1633                            objects that refer to a particular target CIM Object (Class or Instance).
1634                        
1635                            @param objectName The <TT>objectName</TT> input parameter defines the target
1636                            CIM Object whose referring object names are to be returned. It may be either
1637                            a Class name or an Instance name (model path).
1638 david.dillard 1.7          It consists of a full specified object path, thus it consists also of target namespace,
1639                            hostname and port
1640 a.arora       1.3      
1641                            @param resultClass The <TT>resultClass</TT> input parameter, if not NULL,
1642                            MUST be a valid CIM Class name. It acts as a filter on the returned set of
1643                            Object Names by mandating that each returned Object CIMName MUST identify an
1644                            Instance of this Class (or one of its subclasses), or this Class (or one of
1645                            its subclasses).
1646                        
1647                            @param role The <TT>role</TT> input parameter, if not NULL, MUST be a valid
1648                            CIMProperty name. It acts as a filter on the returned set of Object Names by
1649                            mandating that each returned Object CIMName MUST identify an Object that
1650                            refers to the target Instance via a CIMProperty whose name matches the value
1651                            of this parameter.
1652                        
1653                            @return If successful,the method returns the names of zero or more full CIM
1654                            Class paths or Instance paths of Objects meeting the requested criteria.
1655                            Since it is possible for CIM Objects from different hosts or namespaces to
1656                            be associated, each returned path is an absolute path that includes host and
1657                            namespace information.
1658                        
1659                            If unsuccessful, one of the following status codes MUST be returned by this
1660                            method, where the first applicable error in the list (starting with the
1661 a.arora       1.3          first element of the list, and working down) is the error returned. Any
1662                            additional method-specific interpretation of the error in is given in
1663                            parentheses.
1664                            <UL>
1665 david.dillard 1.7              <LI>CIM_ERR_ACCESS_DENIED
1666                                <LI>CIM_ERR_NOT_SUPPORTED
1667                                <LI>CIM_ERR_INVALID_NAMESPACE
1668                                <LI>CIM_ERR_INVALID_PARAMETER (including missing, duplicate,
1669                                unrecognized or otherwise incorrect parameters)
1670                                <LI>CIM_ERR_FAILED (some other unspecified error occurred)
1671 a.arora       1.3           </UL>
1672                            */
1673                            Array<CIMObjectPath> referenceNames(
1674 david.dillard 1.7              const CIMObjectPath& objectName,
1675                                const CIMName& resultClass = CIMName(),
1676                                const String& role = String::EMPTY
1677 a.arora       1.3          );
1678                        
1679                            /** The <TT>execQuery</TT> is used to execute a query against the target
1680                            Namespace.
1681 david.dillard 1.6      
1682 david.dillard 1.7          @param host - input parameter, string containing hostname of CIMOM
1683 david.dillard 1.6      
1684 david.dillard 1.7          @param port - input parameter, string containing port of CIMOM
1685 a.arora       1.3      
1686                            @param nameSpace The nameSpace parameter is a string that defines the target
1687                            namespace. See defintion of
1688                            \URL[Namespace]{DefinitionofTerms.html#NAMESPACE}.
1689                        
1690                            @param queryLanguage The <TT>queryLanguage</TT> String input parameter
1691                            defines the query language in which the Query parameter is expressed.
1692                        
1693                            @param query The <TT>query</TT> input parameter defines the query to be
1694                            executed.
1695                        
1696                            @return If successful, the method returns zero or more CIM Classes or
1697                            Instances that correspond to the results set of the query.
1698                        
1699                            If unsuccessful, one of the following status codes MUST be returned by this
1700                            method, where the first applicable error in the list (starting with the
1701                            first element of the list, and working down) is the error returned. Any
1702                            additional method-specific interpretation of the error in is given in
1703                            parentheses.
1704                        
1705                            <UL>
1706 a.arora       1.3            <LI>CIM_ERR_ACCESS_DENIED
1707                              <LI>CIM_ERR_NOT_SUPPORTED
1708                              <LI>CIM_ERR_INVALID_NAMESPACE
1709                              <LI>CIM_ERR_INVALID_PARAMETER (including missing,
1710                              duplicate, unrecognized or otherwise incorrect parameters)
1711                              <LI>CIM_ERR_QUERY_LANGUAGE_NOT_SUPPORTED (the requested query language is
1712                              not recognized)
1713                              <LI>CIM_ERR_INVALID_QUERY (the query is not a valid query in the
1714                              specified query language)
1715                              <LI>CIM_ERR_FAILED (some other unspecified error ccurred)</LI>
1716                             </UL>
1717                            */
1718                            Array<CIMObject> execQuery(
1719 david.dillard 1.7              const String& host,
1720                                const String& port,
1721                                const CIMNamespaceName& nameSpace,
1722                                const String& queryLanguage,
1723                                const String& query
1724 a.arora       1.3          );
1725                        
1726                        
1727                        private:
1728 david.dillard 1.6          // @exception TypeMismatchException
1729 david.dillard 1.7          void hasHostandNameSpace(const String& _host, const CIMNamespaceName& nameSpace);
1730 david.dillard 1.6      
1731                            // @exception TypeMismatchException
1732                            void hasHostandNameSpace(const CIMObjectPath& inObjectPath);
1733                        
1734                            // @exception TypeMismatchException
1735 david.dillard 1.7          void hasHostandNameSpace(const CIMInstance& inInstance);
1736 a.arora       1.3      
1737 david.dillard 1.7          CIMClientRep* getTargetCIMOM(const String& _host,const String& _port, const CIMNamespaceName& _nameSpace) const;
1738                            CIMClientRep* getTargetCIMOM(const CIMObjectPath& inObjectPath) const;
1739 a.arora       1.3      
1740 david.dillard 1.7          void setPegasusDefaultPort(void);
1741                            void checkCompleteObjectPath(const CIMObjectPath& inObjectPath);
1742                            String _getHostwithPort(const String& host, const String& port);
1743 a.arora       1.3      
1744 david.dillard 1.7          CIMClientConnectionManager *	_cccm;
1745                            String	_pegasusDefaultPort;
1746 a.arora       1.3      
1747                        };
1748                        
1749                        PEGASUS_NAMESPACE_END
1750                        
1751                        #endif  // Pegasus_CIMManagedClient_h

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2