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

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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2