1 karl 1.20 //%2004////////////////////////////////////////////////////////////////////////
|
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 chip 1.1 //
10 // Permission is hereby granted, free of charge, to any person obtaining a copy
11 // of this software and associated documentation files (the "Software"), to
12 // deal in the Software without restriction, including without limitation the
13 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
14 // sell copies of the Software, and to permit persons to whom the Software is
15 // furnished to do so, subject to the following conditions:
|
16 kumpf 1.7 //
|
17 chip 1.1 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
18 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
19 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
20 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
21 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
22 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
23 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
24 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25 //
26 //==============================================================================
27 //
28 //%/////////////////////////////////////////////////////////////////////////////
29
30 #ifndef Pegasus_CIMAssociationProvider_h
31 #define Pegasus_CIMAssociationProvider_h
32
33 #include <Pegasus/Common/Config.h>
|
34 kumpf 1.14 #include <Pegasus/Provider/CIMProvider.h>
|
35 chip 1.1
36 #include <Pegasus/Common/Array.h>
37 #include <Pegasus/Common/String.h>
|
38 kumpf 1.11 #include <Pegasus/Common/CIMName.h>
|
39 kumpf 1.5 #include <Pegasus/Common/CIMPropertyList.h>
|
40 kumpf 1.6 #include <Pegasus/Common/CIMObjectPath.h>
|
41 chip 1.1 #include <Pegasus/Common/CIMInstance.h>
|
42 kumpf 1.10 #include <Pegasus/Provider/Linkage.h>
|
43 chip 1.1
44 PEGASUS_NAMESPACE_BEGIN
45
46 /**
|
47 karl 1.18 This class defines the set of methods implemented by an association
48 provider. A providers that derives from this class must implement all of
49 the methods. The minimal method implementation simply throws the
50 NotSupported exception. The methods implemented match the association
51 operations defined for the client:
52 <UL>
53 <LI> referenceNames
54 <LI> references
55 <LI> associatorNames
56 <LI> associators
57 </UL>
58 Note that the major difference is that the attributes implemented are not exactly
59 the same as the attributes of the operations implemented for the client.
60
|
61 chip 1.1 */
|
62 kumpf 1.14 class PEGASUS_PROVIDER_LINKAGE CIMAssociationProvider : public virtual CIMProvider
|
63 chip 1.1 {
64 public:
|
65 chip 1.4 CIMAssociationProvider(void);
66 virtual ~CIMAssociationProvider(void);
|
67 chip 1.1
|
68 karl 1.16 /** Enumerates CIM Objects (Instances only) that are associated to a
|
69 karl 1.18 particular source CIM Object. Returns CIM Objects. NOTE: if the objects
70 do not include the host and namespace information this information will
71 be inserted by the CIMOM based on the name of the host in which the cimom
72 resides and the namespace in the request.
73
74 @param context Contains security and locale information relevant for the
75 lifetime of this operation.
76
77 @param objectName The ObjectName input parameter defines the source CIM
78 Object whose associated Objects are to be returned. This may be either a
79 Class name or Instance name (CIMObjectpath).
80
81 @param associationClass The AssocClass input parameter, if not NULL, MUST
82 be a valid CIM Association Class name. It acts as a filter on the
83 returned set of Objects by mandating that each returned Object MUST be
84 associated to the source Object via an Instance of this Class or one of
85 its subclasses.
86
87 @param resultClass If not NULL, this parameter MUST be a valid CIM class
88 name. It act as a filter on the returned set of Objects by mandating that
89 each returned Object MUST be either an Instance of this Class (or one of
90 karl 1.18 its subclasses).
91
92 @param role If not NULL, this parameter MUST be a valid Property name. It
93 acts as a filter on the returned set of Objects by mandating that each
94 returned Object MUST be associated to the source Object via an Association
95 in which the source Object plays the specified role (i.e. the name of the
96 Property in the Association Class that refers to the source Object MUST
97 match the value of this parameter).
98
99 @param resultRole If not NULL, this parameter MUST be a valid Property
100 name. It acts as a filter on the returned set of Objects by mandating
101 that each returned Object MUST be associated to the source Object via an
102 Association in which the returned Object plays the specified role (i.e.
103 the name of the Property in the Association Class that refers to the
104 returned Object MUST match the value of this parameter).
105
106 @param includeQualifiers If true, this specifies that all Qualifiers for
107 each Object (including Qualifiers on the Object and on any returned
108 Properties) MUST be included as <QUALIFIER> elements in the response. If
109 false no <QUALIFIER> elements are present in each returned Object.
110
111 karl 1.18 @param includeClassOrigin If true, this specifies that the CLASSORIGIN
112 attribute MUST be present on all appropriate elements in each returned
113 Object. If false, no CLASSORIGIN attributes are present in each returned
114 Object.
115
116 @param propertyList If not NULL, the members of the array define one or
117 more roperty names. Each returned Object MUST NOT include elements for
118 any Properties missing from this list. If the PropertyList input
119 parameter is an empty array this signifies that no Properties are included
120 in each returned Object. If the PropertyList input parameter is NULL this
121 specifies that all Properties (subject to the conditions expressed by the
122 other parameters) are included in each returned Object.
123
124 @param handler Asynchronously processes the results of this operation.
125
126 @exception NotSupported Methods not all supported by the provider return this
127 exception.
128 @exception InvalidParameter If a parameter is not specified correctly.
|
129 chip 1.4 */
|
130 karl 1.15
|
131 chip 1.4 virtual void associators(
132 const OperationContext & context,
|
133 kumpf 1.6 const CIMObjectPath & objectName,
|
134 kumpf 1.11 const CIMName & associationClass,
135 const CIMName & resultClass,
|
136 chip 1.4 const String & role,
137 const String & resultRole,
|
138 kumpf 1.13 const Boolean includeQualifiers,
139 const Boolean includeClassOrigin,
|
140 kumpf 1.5 const CIMPropertyList & propertyList,
|
141 kumpf 1.12 ObjectResponseHandler & handler) = 0;
|
142 chip 1.4
|
143 karl 1.18 /** Enumerate the names of CIM Objects (Instances) associated to a
144 particular source CIM Object. Returns multiple CIMObjectPath objects
145 through the handler. The returned CIMObjectPaths are expected to be
146 absolute including host name and namespace. If these fields are not
147 supplied by the provider they will be inserted by the CIMOM based on
148 the host in which the CIMOM resides and the namespace in the request.
|
149 karl 1.15
|
150 karl 1.18 @param context Contains security and locale information relevant for the
151 lifetime of this operation.
152
153 @param objectName The ObjectName input parameter defines the source CIM
154 Object whose associated Objects are to be returned. This may be either a
155 Class name or Instance name (CIMObjectpath).
156
157 @param associationClass The AssocClass input parameter, if not NULL, MUST
158 be a valid CIM Association Class name. It acts as a filter on the
159 returned set of Objects by mandating that each returned Object MUST be
160 associated to the source Object via an Instance of this Class or one of
161 its subclasses.
162
163 @param resultClass If not NULL, MUST be a valid CIM Class name. It acts
164 as a filter on the returned set of Objects by mandating that each returned
165 Object MUST be either an Instance of this Class (or one of its
166 subclasses).
167
168 @param role If not NULL, this parameter MUST be a valid Property name. It
169 acts as a filter on the returned set of Objects by mandating that each
170 returned Object MUST be associated to the source Object via an Association
171 karl 1.18 in which the source Object plays the specified role (i.e. the name of the
172 Property in the Association Class that refers to the source Object MUST
173 match the value of this parameter).
174
175 @param resultRole If not NULL, this parameter MUST be a valid Property
176 name. It acts as a filter on the returned set of Objects by mandating
177 that each returned Object MUST be associated to the source Object via an
178 Association in which the returned Object plays the specified role (i.e.
179 the name of the Property in the Association Class that refers to the
180 returned Object MUST match the value of this parameter).
181
182 @param handler Asynchronously processes the results of this operation.
183
184 @exception NotSupported returned by methods that are not implemented by the provider..
185 @exception InvalidParameter If a parameter is not specified correctly.
|
186 chip 1.4 */
187 virtual void associatorNames(
188 const OperationContext & context,
|
189 kumpf 1.6 const CIMObjectPath & objectName,
|
190 kumpf 1.11 const CIMName & associationClass,
191 const CIMName & resultClass,
|
192 chip 1.4 const String & role,
193 const String & resultRole,
|
194 kumpf 1.12 ObjectPathResponseHandler & handler) = 0;
|
195 chip 1.4
|
196 karl 1.16 /** Enumerate the association objects that refer to a particular target CIM Object
|
197 karl 1.18 (Instance). Returns multiple CIMObjectPath objects
198 through the handler. The returned CIMObjectPaths are expected to be
199 absolute including host name and namespace. If these fields are not
200 supplied by the provider they will be inserted by the CIMOM based on
201 the host in which the CIMOM resides and the namespace in the request.
|
202 karl 1.16
|
203 karl 1.18 @param context Contains security and locale information relevant for the lifetime
|
204 karl 1.15 of this operation.
|
205 karl 1.18
206 @param objectName The target CIM Object whose referring object names are to be returned.
207 Note that only instances will be forwarded to the provider. All class level
208 requests are handled by the CIM Server internally.
209
210 @param resultClass If not NULL, MUST be a valid CIM Class name. It acts as a filter
211 on the returned set of Object Names by mandating that each returned Object Name
212 MUST identify an Instance of this Class (or one of its subclasses).
213
214 @param role The Role input parameter, if not NULL, MUST be a valid Property name.
215 It acts as a filter on the returned set of Objects by mandating that each returned
216 Object MUST be associated to the source Object via an Association in which the
217 source Object plays the specified role (i.e. the name of the Property
218 in the Association Class that refers to the source Object MUST match the value
219 of this parameter.
220
221 @param resultRole If not NULL, MUST be a valid Property name. It acts as a
222 filter on the returned set of Objects by mandating that each returned Object
223 MUST be associated to the source Object via an Association in which the
224 returned Object plays the specified role (i.e. the name of the Property in
225 the Association Class that refers to the returned Object MUST match the
226 karl 1.18 value of this parameter).
227
228 @param includeQualifiers If true, this specifies that all Qualifiers for each
229 Object (including Qualifiers on the Object and on any returned Properties)
230 MUST be included as <QUALIFIER> elements in the response. If false no
231 <QUALIFIER> elements are present in each returned Object.
232
233 @param includeClassOrigin If true, this specifies that the CLASSORIGIN attribute
234 MUST be present on all appropriate elements in each returned Object.
235 If false, no CLASSORIGIN attributes are present in each returned Object.
236
237 @param propertyList - If not NULL, the members of the array define one or more
238 Property names. Each returned Object MUST NOT include elements for any
239 Properties missing from this list. If the PropertyList input parameter
240 is an empty array this signifies that no Properties are included in each
241 returned Object. If the PropertyList input parameter is NULL this specifies
242 that all Properties (subject to the conditions expressed by the other
243 parameters) are included in each returned Object.
244
245 @param handler Asynchronously processes the results of this operation.
246
247 karl 1.18 @exception NotSupported Returned for any methods not implemented by the provider.
248 @exception InvalidParameter If a parameter is not specified correctly.
|
249 chip 1.4 */
250 virtual void references(
251 const OperationContext & context,
|
252 kumpf 1.6 const CIMObjectPath & objectName,
|
253 kumpf 1.11 const CIMName & resultClass,
|
254 chip 1.4 const String & role,
|
255 kumpf 1.13 const Boolean includeQualifiers,
256 const Boolean includeClassOrigin,
|
257 kumpf 1.5 const CIMPropertyList & propertyList,
|
258 kumpf 1.12 ObjectResponseHandler & handler) = 0;
|
259 chip 1.4
|
260 karl 1.15 /** Enumerate the association object names that refer to a particular target CIM Object
|
261 karl 1.18 (Instance). Returns CIMOobjectPath objects via the handler.
262 The returned CIMObjectPaths are expected to be
263 absolute including host name and namespace. If these fields are not
264 supplied by the provider they will be inserted by the CIMOM based on
265 the host in which the CIMOM resides and the namespace in the request.
|
266 chip 1.4
|
267 karl 1.18 @param context Contains security and locale information relevant for the lifetime
268 of this operation.
269
270 @param objectName The target CIM Object whose referring object names are to be returned.
271 Note that only instances will be forwarded to the provider. All class level
272 requests are handled by the CIM Server internally.
273
274 @param resultClass If not NULL, MUST be a valid CIM Class name. It acts as a filter
275 on the returned set of Object Names by mandating that each returned Object Name
276 MUST identify an Instance of this Class (or one of its subclasses), or this Class
277 (or one of its subclasses)
278
279 @param role The Role input parameter, if not NULL, MUST be a valid Property name.
280 It acts as a filter on the returned set of Objects by mandating that each returned
281 Object MUST be associated to the source Object via an Association in which the
282 source Object plays the specified role (i.e. the name of the Property
283 in the Association Class that refers to the source Object MUST match the value
284 of this parameter.
285
286 @param handler Asynchronously processes the results of this operation.
287
288 karl 1.18 @exception NotSupported xception returned for any method not implemented by the provider.
289 @exception InvalidParameter If the parameter is not specified correctly.
|
290 chip 1.4 */
291 virtual void referenceNames(
292 const OperationContext & context,
|
293 kumpf 1.6 const CIMObjectPath & objectName,
|
294 kumpf 1.11 const CIMName & resultClass,
|
295 chip 1.4 const String & role,
|
296 kumpf 1.12 ObjectPathResponseHandler & handler) = 0;
|
297 chip 1.1 };
298
299 PEGASUS_NAMESPACE_END
300
301 #endif
|