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

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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2