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