(file) Return to CIMOperations.h CVS log (file) (dir) Up to [Pegasus] / pegasus / doc

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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2