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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2