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