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