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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2