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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2