(file) Return to CIMAssociationProvider.h CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / Provider

  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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2