1 martin 1.27 //%LICENSE////////////////////////////////////////////////////////////////
|
2 martin 1.28 //
|
3 martin 1.27 // Licensed to The Open Group (TOG) under one or more contributor license
4 // agreements. Refer to the OpenPegasusNOTICE.txt file distributed with
5 // this work for additional information regarding copyright ownership.
6 // Each contributor licenses this file to you under the OpenPegasus Open
7 // Source License; you may not use this file except in compliance with the
8 // License.
|
9 martin 1.28 //
|
10 martin 1.27 // Permission is hereby granted, free of charge, to any person obtaining a
11 // copy of this software and associated documentation files (the "Software"),
12 // to deal in the Software without restriction, including without limitation
13 // the rights to use, copy, modify, merge, publish, distribute, sublicense,
14 // and/or sell copies of the Software, and to permit persons to whom the
15 // Software is furnished to do so, subject to the following conditions:
|
16 martin 1.28 //
|
17 martin 1.27 // The above copyright notice and this permission notice shall be included
18 // in all copies or substantial portions of the Software.
|
19 martin 1.28 //
|
20 martin 1.27 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
21 martin 1.28 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
22 martin 1.27 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
23 // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
24 // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
25 // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
26 // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
27 martin 1.28 //
|
28 martin 1.27 //////////////////////////////////////////////////////////////////////////
|
29 chip 1.1 //
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 kumpf 1.23 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 kumpf 1.26 the methods. A minimal method implementation simply throws a
52 CIMNotSupportedException. The methods match the association operations
53 defined for the client:
|
54 kumpf 1.23 <UL>
55 <LI> referenceNames
56 <LI> references
57 <LI> associatorNames
58 <LI> associators
59 </UL>
|
60 kumpf 1.26 Provider instrumentation differs semantically from a client request in
61 that a provider implementation is specific to one association class while
62 a client request may span many association classes. Also, an assocation
63 provider deals only with instance data, while a client may also issue
64 class level association requests.
|
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.26 /**
71 Constructs a default CIMAssociationProvider object.
72 */
|
73 kumpf 1.23 CIMAssociationProvider();
|
74 kumpf 1.26
75 /**
76 Destructs a CIMAssociationProvider object.
77 */
|
78 kumpf 1.23 virtual ~CIMAssociationProvider();
|
79 chip 1.1
|
80 kumpf 1.26 /**
81 Enumerates CIM instances that are associated to a specified instance
82 via a specified association class.
83
84 @param context An OperationContext object containing the context for
85 the processing of the operation. The context includes the name of
86 the requesting user, language information, and other data.
87
88 @param objectName A fully qualified CIMObjectPath specifying the
89 "source" instance for which to enumerate associated instances.
90
91 @param associationClass The name of the association class through
92 which the returned instances are associated with the source
93 instance. Instances associated through another class must not be
94 returned.
95
96 @param resultClass The name of the class to which the returned
97 instances must belong. Instances of this class and its subclasses
98 may be returned, but not instances of another class. If null,
99 the set of returned instances is not constrained by their class.
100
101 kumpf 1.26 @param role The role of the source instance in the association
102 instance. If the role is not an empty string, the returned
103 instances must be associated with the source instance such that
104 the name of the assocation property referring to the source
105 instance matches the role value.
106
107 @param resultRole The role of the returned instances in the association
108 instance. If the role is not an empty string, the returned
109 instances must be associated with the source instance such that
110 the name of the assocation property referring to the returned
111 instances matches the role value.
112
113 @param includeQualifiers A Boolean indicating whether the returned
114 instances must include the qualifiers for the instance and its
115 properties. Qualifiers may be included even if this flag is false.
116
117 @param includeClassOrigin A Boolean indicating whether the returned
118 instances must include the class origin for each of the instance
119 elements.
120
121 @param propertyList A CIMPropertyList specifying the minimum set of
|
122 anusha.kandepu 1.29 properties required in the returned instance. Support for this
123 parameter is optional.This parameter can be used by the provider
124 to optimize their code and not fill properties which are not
125 requested.The cimserver will filter all properties using an
126 efficient algorithm hence the returned instance may contain
127 properties not specified in the list.A null propertyList
|
128 kumpf 1.26 indicates that all properties must be included. A non-null,
129 but empty, propertyList indicates that no properites are required.
130
131 @param handler ResponseHandler object for delivery of results.
132 Note: The delivered instances are expected to contain the
133 instance path. If the host and namespace are not included in the
134 path, they are added by the CIM Server.
135
136 @exception CIMNotSupportedException
137 @exception CIMInvalidParameterException
138 @exception CIMAccessDeniedException
139 @exception CIMOperationFailedException
|
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.26 /**
154 Enumerates CIM instance names that are associated to a specified
155 instance via a specified association class.
156
157 @param context An OperationContext object containing the context for
158 the processing of the operation. The context includes the name of
159 the requesting user, language information, and other data.
160
161 @param objectName A fully qualified CIMObjectPath specifying the
162 "source" instance for which to enumerate associated instance names.
163
164 @param associationClass The name of the association class through
165 which the returned instance names are associated with the source
166 instance. Names of instances associated through another class
167 must not be returned.
168
169 @param resultClass The name of the class to which the returned
170 instance names must belong. Names of instances of this class and
171 its subclasses may be returned, but not instances of another class.
172 If null, the set of returned instance names is not constrained by
173 their class.
174 kumpf 1.26
175 @param role The role of the source instance in the association
176 instance. If the role is not an empty string, the returned
177 instance names must be associated with the source instance such
178 that the name of the assocation property referring to the source
179 instance matches the role value.
180
181 @param resultRole The role of the returned instance names in the
182 association instance. If the role is not an empty string, the
183 returned instance names must be associated with the source
184 instance such that the name of the assocation property referring
185 to the returned instance names matches the role value.
186
187 @param handler ResponseHandler object for delivery of results.
188 Note: The delivered instance names are expected to contain host
189 and namespace information. If not included, they are added by
190 the CIM Server.
191
192 @exception CIMNotSupportedException
193 @exception CIMInvalidParameterException
194 @exception CIMAccessDeniedException
195 kumpf 1.26 @exception CIMOperationFailedException
|
196 chip 1.4 */
197 virtual void associatorNames(
|
198 kumpf 1.23 const OperationContext & context,
199 const CIMObjectPath & objectName,
200 const CIMName & associationClass,
201 const CIMName & resultClass,
202 const String & role,
203 const String & resultRole,
204 ObjectPathResponseHandler & handler) = 0;
|
205 chip 1.4
|
206 kumpf 1.26 /**
207 Enumerates CIM association instances that refer to a specified
208 instance.
209
210 @param context An OperationContext object containing the context for
211 the processing of the operation. The context includes the name of
212 the requesting user, language information, and other data.
213
214 @param objectName A fully qualified CIMObjectPath specifying the
215 "source" instance for which to enumerate referring instances.
216
217 @param resultClass The class name of the association instances to be
218 returned. Instances of other classes must not be returned.
219
220 @param role The role of the source instance in the association
221 instance. If the role is not an empty string, the returned
222 association instances must refer to the source instance via a
223 property whose name matches the role value.
224
225 @param includeQualifiers A Boolean indicating whether the returned
226 instances must include the qualifiers for the instance and its
227 kumpf 1.26 properties. Qualifiers may be included even if this flag is false.
228
229 @param includeClassOrigin A Boolean indicating whether the returned
230 instances must include the class origin for each of the instance
231 elements.
232
233 @param propertyList A CIMPropertyList specifying the minimum set of
|
234 anusha.kandepu 1.29 properties required in the returned instance. Support for this
235 parameter is optional.This parameter can be used by the provider
236 to optimize their code and not fill properties which are not
237 requested.The cimserver will filter all properties using an
238 efficient algorithm hence the returned instance may contain
239 properties not specified in the list.A null propertyList
|
240 kumpf 1.26 indicates that all properties must be included. A non-null,
241 but empty, propertyList indicates that no properites are required.
242
243 @param handler ResponseHandler object for delivery of results.
244 Note: The delivered instances are expected to contain the
245 instance path. If the host and namespace are not included in the
246 path, they are added by the CIM Server.
247
248 @exception CIMNotSupportedException
249 @exception CIMInvalidParameterException
250 @exception CIMAccessDeniedException
251 @exception CIMOperationFailedException
|
252 chip 1.4 */
253 virtual void references(
|
254 kumpf 1.23 const OperationContext & context,
255 const CIMObjectPath & objectName,
256 const CIMName & resultClass,
257 const String & role,
258 const Boolean includeQualifiers,
259 const Boolean includeClassOrigin,
260 const CIMPropertyList & propertyList,
261 ObjectResponseHandler & handler) = 0;
262
|
263 kumpf 1.26 /**
264 Enumerates the names of CIM association instances that refer to a
265 specified instance.
266
267 @param context An OperationContext object containing the context for
268 the processing of the operation. The context includes the name of
269 the requesting user, language information, and other data.
270
271 @param objectName A fully qualified CIMObjectPath specifying the
272 "source" instance for which to enumerate referring instance names.
273
274 @param resultClass The class name of the association instance names to
275 be returned. Names of instances of other classes must not be
276 returned.
277
278 @param role The role of the source instance in the association
279 instance. If the role is not an empty string, the returned
280 association instance names must refer to the source instance via a
281 property whose name matches the role value.
282
283 @param handler ResponseHandler object for delivery of results.
284 kumpf 1.26 Note: The delivered instance names are expected to contain host
285 and namespace information. If not included, they are added by
286 the CIM Server.
287
288 @exception CIMNotSupportedException
289 @exception CIMInvalidParameterException
290 @exception CIMAccessDeniedException
291 @exception CIMOperationFailedException
|
292 chip 1.4 */
293 virtual void referenceNames(
|
294 kumpf 1.23 const OperationContext & context,
295 const CIMObjectPath & objectName,
296 const CIMName & resultClass,
297 const String & role,
298 ObjectPathResponseHandler & handler) = 0;
|
299 chip 1.1 };
300
301 PEGASUS_NAMESPACE_END
302
303 #endif
|