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

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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2