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