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

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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2