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

  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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2