1 karl 1.22 //%2006////////////////////////////////////////////////////////////////////////
|
2 chip 1.1 //
|
3 karl 1.20 // 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.17 // IBM Corp.; EMC Corporation, The Open Group.
|
7 karl 1.20 // 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.21 // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
10 // EMC Corporation; VERITAS Software Corporation; The Open Group.
|
11 karl 1.22 // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
12 // EMC Corporation; Symantec Corporation; The Open Group.
|
13 chip 1.1 //
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.7 //
|
21 chip 1.1 // 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_CIMAssociationProvider_h
35 #define Pegasus_CIMAssociationProvider_h
36
37 #include <Pegasus/Common/Config.h>
|
38 kumpf 1.14 #include <Pegasus/Provider/CIMProvider.h>
|
39 chip 1.1
40 #include <Pegasus/Common/Array.h>
41 #include <Pegasus/Common/String.h>
|
42 kumpf 1.11 #include <Pegasus/Common/CIMName.h>
|
43 kumpf 1.5 #include <Pegasus/Common/CIMPropertyList.h>
|
44 kumpf 1.6 #include <Pegasus/Common/CIMObjectPath.h>
|
45 chip 1.1 #include <Pegasus/Common/CIMInstance.h>
|
46 kumpf 1.10 #include <Pegasus/Provider/Linkage.h>
|
47 chip 1.1
48 PEGASUS_NAMESPACE_BEGIN
49
50 /**
|
51 kumpf 1.23 This class defines the set of methods implemented by an association
52 provider. A providers that derives from this class must implement all of
53 the methods. The minimal method implementation simply throws the
54 NotSupported exception. The methods implemented match the association
55 operations defined for the client:
56 <UL>
57 <LI> referenceNames
58 <LI> references
59 <LI> associatorNames
60 <LI> associators
61 </UL>
62 Note that the major difference is that the attributes implemented are
63 not exactly the same as the attributes of the operations implemented
64 for the client.
|
65 chip 1.1 */
|
66 kumpf 1.23 class PEGASUS_PROVIDER_LINKAGE CIMAssociationProvider :
67 public virtual CIMProvider
|
68 chip 1.1 {
69 public:
|
70 kumpf 1.23 CIMAssociationProvider();
71 virtual ~CIMAssociationProvider();
|
72 chip 1.1
|
73 karl 1.16 /** Enumerates CIM Objects (Instances only) that are associated to a
|
74 karl 1.18 particular source CIM Object. Returns CIM Objects. NOTE: if the objects
75 do not include the host and namespace information this information will
|
76 kumpf 1.23 be inserted by the CIM Server based on the name of the host in which
77 the CIM Server is running and the namespace in the request.
78
79 @param context Contains security and locale information relevant for
80 the lifetime of this operation.
|
81 karl 1.18
|
82 kumpf 1.23 @param objectName The ObjectName input parameter defines the source CIM
83 Object whose associated Objects are to be returned. This may be either
84 a Class name or Instance name (CIMObjectpath).
85
86 @param associationClass The AssocClass input parameter, if not NULL,
87 MUST be a valid CIM Association Class name. It acts as a filter on the
88 returned set of Objects by mandating that each returned Object MUST be
89 associated to the source Object via an Instance of this Class or one of
90 its subclasses.
91
92 @param resultClass If not NULL, this parameter MUST be a valid CIM
93 class name. It act as a filter on the returned set of Objects by
94 mandating that each returned Object MUST be either an Instance of
95 this Class (or one of its subclasses).
96
97 @param role If not NULL, this parameter MUST be a valid Property
98 name. It acts as a filter on the returned set of Objects by
99 mandating that each returned Object MUST be associated to the
100 source Object via an Association in which the source Object plays
101 the specified role (i.e. the name of the Property in the
102 Association Class that refers to the source Object MUST match the
|
103 kumpf 1.24 value of this parameter). An empty String value for this parameter
104 is interpreted as a NULL value, which indicates no such filtering
105 is requested.
|
106 kumpf 1.23
107 @param resultRole If not NULL, this parameter MUST be a valid Property
108 name. It acts as a filter on the returned set of Objects by mandating
109 that each returned Object MUST be associated to the source Object via an
110 Association in which the returned Object plays the specified role (i.e.
111 the name of the Property in the Association Class that refers to the
|
112 kumpf 1.24 returned Object MUST match the value of this parameter). An empty
113 String value for this parameter is interpreted as a NULL value, which
114 indicates no such filtering is requested.
|
115 kumpf 1.23
116 @param includeQualifiers If true, this specifies that all Qualifiers
117 for each Object (including Qualifiers on the Object and on any returned
118 Properties) MUST be included as <QUALIFIER> elements in the response.
119 If false no <QUALIFIER> elements are present in each returned Object.
120
121 @param includeClassOrigin If true, this specifies that the CLASSORIGIN
122 attribute MUST be present on all appropriate elements in each returned
123 Object. If false, no CLASSORIGIN attributes are present in each
124 returned Object.
125
126 @param propertyList If not NULL, the members of the array define one or
127 more roperty names. Each returned Object MUST NOT include elements for
128 any Properties missing from this list. If the PropertyList input
129 parameter is an empty array this signifies that no Properties are
130 included in each returned Object. If the PropertyList input
131 parameter is NULL this specifies that all Properties (subject to
132 the conditions expressed by the other parameters) are included in
133 each returned Object.
|
134 karl 1.18
|
135 kumpf 1.23 @param handler Asynchronously processes the results of this operation.
136
137 @exception NotSupported Methods not all supported by the provider
138 return this exception.
139 @exception InvalidParameter If a parameter is not specified correctly.
|
140 chip 1.4 */
141 virtual void associators(
|
142 kumpf 1.23 const OperationContext & context,
143 const CIMObjectPath & objectName,
144 const CIMName & associationClass,
145 const CIMName & resultClass,
146 const String & role,
147 const String & resultRole,
148 const Boolean includeQualifiers,
149 const Boolean includeClassOrigin,
150 const CIMPropertyList & propertyList,
151 ObjectResponseHandler & handler) = 0;
|
152 chip 1.4
|
153 kumpf 1.23 /** Enumerate the names of CIM Objects (Instances) associated to a
|
154 karl 1.18 particular source CIM Object. Returns multiple CIMObjectPath objects
155 through the handler. The returned CIMObjectPaths are expected to be
156 absolute including host name and namespace. If these fields are not
157 supplied by the provider they will be inserted by the CIMOM based on
158 the host in which the CIMOM resides and the namespace in the request.
|
159 kumpf 1.23
160 @param context Contains security and locale information relevant for
161 the lifetime of this operation.
162
163 @param objectName The ObjectName input parameter defines the source CIM
164 Object whose associated Objects are to be returned. This may be either
165 a Class name or Instance name (CIMObjectpath).
166
167 @param associationClass The AssocClass input parameter, if not NULL,
168 MUST be a valid CIM Association Class name. It acts as a filter on
169 the returned set of Objects by mandating that each returned Object
170 MUST be associated to the source Object via an Instance of this
171 Class or one of its subclasses.
172
173 @param resultClass If not NULL, MUST be a valid CIM Class name. It
174 acts as a filter on the returned set of Objects by mandating that
175 each returned Object MUST be either an Instance of this Class (or
176 one of its subclasses).
177
178 @param role If not NULL, this parameter MUST be a valid Property
179 name. It acts as a filter on the returned set of Objects by
180 kumpf 1.23 mandating that each returned Object MUST be associated to the
181 source Object via an Association in which the source Object plays
182 the specified role (i.e. the name of the Property in the
183 Association Class that refers to the source Object MUST match the
|
184 kumpf 1.24 value of this parameter). An empty String value for this
185 parameter is interpreted as a NULL value, which indicates no such
186 filtering is requested.
|
187 kumpf 1.23
188 @param resultRole If not NULL, this parameter MUST be a valid Property
189 name. It acts as a filter on the returned set of Objects by mandating
190 that each returned Object MUST be associated to the source Object via an
191 Association in which the returned Object plays the specified role (i.e.
192 the name of the Property in the Association Class that refers to the
|
193 kumpf 1.24 returned Object MUST match the value of this parameter). An empty
194 String value for this parameter is interpreted as a NULL value, which
195 indicates no such filtering is requested.
|
196 kumpf 1.23
|
197 karl 1.18 @param handler Asynchronously processes the results of this operation.
|
198 kumpf 1.23
199 @exception NotSupported returned by methods that are not implemented
200 by the provider.
|
201 karl 1.18 @exception InvalidParameter If a parameter is not specified correctly.
|
202 chip 1.4 */
203 virtual void associatorNames(
|
204 kumpf 1.23 const OperationContext & context,
205 const CIMObjectPath & objectName,
206 const CIMName & associationClass,
207 const CIMName & resultClass,
208 const String & role,
209 const String & resultRole,
210 ObjectPathResponseHandler & handler) = 0;
|
211 chip 1.4
|
212 kumpf 1.23 /** Enumerate the association objects that refer to a particular target
213 CIM Object (Instance). Returns multiple CIMObjectPath objects
|
214 karl 1.18 through the handler. The returned CIMObjectPaths are expected to be
215 absolute including host name and namespace. If these fields are not
216 supplied by the provider they will be inserted by the CIMOM based on
217 the host in which the CIMOM resides and the namespace in the request.
|
218 kumpf 1.23
219 @param context Contains security and locale information relevant for
220 the lifetime of this operation.
221
222 @param objectName The target CIM Object whose referring object
223 names are to be returned. Note that only instances will be
224 forwarded to the provider. All class level requests are handled
225 by the CIM Server internally.
226
227 @param resultClass If not NULL, MUST be a valid CIM Class name. It
228 acts as a filter on the returned set of Object Names by mandating
229 that each returned Object Name MUST identify an Instance of this
230 Class (or one of its subclasses).
231
232 @param role The Role input parameter, if not NULL, MUST be a
233 valid Property name. It acts as a filter on the returned set of
234 Objects by mandating that each returned Object MUST be associated
235 to the source Object via an Association in which the source Object
236 plays the specified role (i.e. the name of the Property in the
237 Association Class that refers to the source Object MUST match the
|
238 kumpf 1.24 value of this parameter. An empty String value for this parameter
239 is interpreted as a NULL value, which indicates no such filtering
240 is requested.
|
241 kumpf 1.23
242 @param includeQualifiers If true, this specifies that all Qualifiers
243 for each Object (including Qualifiers on the Object and on any
244 returned Properties) MUST be included as <QUALIFIER> elements in
245 the response. If false no <QUALIFIER> elements are present in each
246 returned Object.
247
248 @param includeClassOrigin If true, this specifies that the
249 CLASSORIGIN attribute MUST be present on all appropriate elements
250 in each returned Object. If false, no CLASSORIGIN attributes are
251 present in each returned Object.
252
253 @param propertyList - If not NULL, the members of the array define
254 one or more Property names. Each returned Object MUST NOT include
255 elements for any Properties missing from this list. If the
256 PropertyList input parameter is an empty array this signifies that
257 no Properties are included in each returned Object. If the
258 PropertyList input parameter is NULL this specifies that all
259 Properties (subject to the conditions expressed by the other
260 parameters) are included in each returned Object.
261
|
262 karl 1.18 @param handler Asynchronously processes the results of this operation.
|
263 kumpf 1.23
264 @exception NotSupported Returned for any methods not implemented by
265 the provider.
|
266 karl 1.18 @exception InvalidParameter If a parameter is not specified correctly.
|
267 chip 1.4 */
268 virtual void references(
|
269 kumpf 1.23 const OperationContext & context,
270 const CIMObjectPath & objectName,
271 const CIMName & resultClass,
272 const String & role,
273 const Boolean includeQualifiers,
274 const Boolean includeClassOrigin,
275 const CIMPropertyList & propertyList,
276 ObjectResponseHandler & handler) = 0;
277
278 /** Enumerate the association object names that refer to a particular
279 target CIM Object (Instance). Returns CIMOobjectPath objects via the
280 handler. The returned CIMObjectPaths are expected to be
|
281 karl 1.18 absolute including host name and namespace. If these fields are not
282 supplied by the provider they will be inserted by the CIMOM based on
283 the host in which the CIMOM resides and the namespace in the request.
|
284 chip 1.4
|
285 kumpf 1.23 @param context Contains security and locale information relevant for
286 the lifetime of this operation.
287
288 @param objectName The target CIM Object whose referring object names
289 are to be returned. Note that only instances will be forwarded to
290 the provider. All class level requests are handled by the CIM Server
291 internally.
292
293 @param resultClass If not NULL, MUST be a valid CIM Class name. It
294 acts as a filter on the returned set of Object Names by mandating
295 that each returned Object Name MUST identify an Instance of this
296 Class (or one of its subclasses), or this Class (or one of its
297 subclasses)
298
299 @param role The Role input parameter, if not NULL, MUST be a
300 valid Property name. It acts as a filter on the returned set of
301 Objects by mandating that each returned Object MUST be associated
302 to the source Object via an Association in which the source Object
303 plays the specified role (i.e. the name of the Property in the
304 Association Class that refers to the source Object MUST match the
|
305 kumpf 1.24 value of this parameter. An empty String value for this parameter
306 is interpreted as a NULL value, which indicates no such filtering
307 is requested.
|
308 kumpf 1.23
|
309 karl 1.18 @param handler Asynchronously processes the results of this operation.
|
310 kumpf 1.23
311 @exception NotSupported xception returned for any method not
312 implemented by the provider.
|
313 karl 1.18 @exception InvalidParameter If the parameter is not specified correctly.
|
314 chip 1.4 */
315 virtual void referenceNames(
|
316 kumpf 1.23 const OperationContext & context,
317 const CIMObjectPath & objectName,
318 const CIMName & resultClass,
319 const String & role,
320 ObjectPathResponseHandler & handler) = 0;
|
321 chip 1.1 };
322
323 PEGASUS_NAMESPACE_END
324
325 #endif
|