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

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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2