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

  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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2