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