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