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

  1 karl  1.17 //%2005////////////////////////////////////////////////////////////////////////
  2 schuur 1.1  //
  3 karl   1.8  // 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 schuur 1.1  // IBM Corp.; EMC Corporation, The Open Group.
  7 karl   1.8  // 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.17 // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
 10             // EMC Corporation; VERITAS Software Corporation; The Open Group.
 11 schuur 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 chip   1.18 //
 19 schuur 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             // Author: Chip Vincent (cvincent@us.ibm.com)
 31             //
 32 chip   1.11 // Modified By:
 33             //      Carol Ann Krug Graves, Hewlett-Packard Company (carolann_graves@hp.com)
 34             //      Dave Rosckes (rosckes@us.ibm.com)
 35             //      Yi Zhou, Hewlett-Packard Company (yi_zhou@hp.com)
 36             //      Adrian Schuur (schuur@de.ibm.com)
 37             //      Seema Gupta (gseema@in.ibm.com) for PEP135
 38             //      Brian G. Campbell, EMC (campbell_brian@emc.com) - PEP140/phase2
 39 schuur 1.1  //
 40             //%/////////////////////////////////////////////////////////////////////////////
 41             
 42             #ifndef Pegasus_OperationResponseHandler_h
 43             #define Pegasus_OperationResponseHandler_h
 44             
 45             #include <Pegasus/Common/Config.h>
 46             #include <Pegasus/Common/CIMMessage.h>
 47             #include <Pegasus/Common/MessageQueueService.h>
 48             #include <Pegasus/Common/Constants.h>
 49             
 50             #include <Pegasus/Common/CIMClass.h>
 51             #include <Pegasus/Common/CIMInstance.h>
 52             #include <Pegasus/Common/CIMIndication.h>
 53             #include <Pegasus/Common/CIMValue.h>
 54             
 55 chip   1.14 #include <Pegasus/Common/OperationContext.h>
 56             #include <Pegasus/Common/OperationContextInternal.h>
 57             
 58             #include <Pegasus/Common/ObjectNormalizer.h>
 59 chip   1.25 
 60 schuur 1.1  #include <Pegasus/Common/ResponseHandler.h>
 61 chip   1.25 #include <Pegasus/ProviderManager2/SimpleResponseHandler.h>
 62 schuur 1.1  
 63             #include <Pegasus/ProviderManager2/Linkage.h>
 64             
 65             PEGASUS_NAMESPACE_BEGIN
 66             
 67             class PEGASUS_PPM_LINKAGE OperationResponseHandler
 68             {
 69 chip   1.11     friend class SimpleResponseHandler;
 70 brian.campbell 1.9  
 71 schuur         1.1  public:
 72 chip           1.11     OperationResponseHandler(
 73                             CIMRequestMessage * request,
 74                             CIMResponseMessage * response);
 75 schuur         1.1  
 76 brian.campbell 1.9      virtual ~OperationResponseHandler(void);
 77 chip           1.11 
 78 chip           1.25     CIMRequestMessage * getRequest(void) const;
 79                     
 80                         CIMResponseMessage * getResponse(void) const;
 81 schuur         1.1  
 82 chip           1.11     virtual void setStatus(
 83                             const Uint32 code,
 84 chip           1.25         const String & message = String::EMPTY);
 85 schuur         1.1  
 86 chip           1.11     virtual void setStatus(
 87                             const Uint32 code,
 88                             const ContentLanguages & langs,
 89 chip           1.25         const String & message = String::EMPTY);
 90 schuur         1.1  
 91                     protected:
 92 chip           1.11     // the default for all derived handlers. Some handlers may not apply
 93                         // async behavior because their callers cannot handle partial responses.
 94 chip           1.25     virtual Boolean isAsync(void) const;
 95 brian.campbell 1.9  
 96 chip           1.11     // send (deliver) asynchronously
 97                         virtual void send(Boolean isComplete);
 98 brian.campbell 1.9  
 99 chip           1.11     // transfer any objects from handler to response. this does not clear()
100 chip           1.25     virtual void transfer(void);
101 brian.campbell 1.9  
102 chip           1.11     // validate whatever is necessary before the transfer
103 chip           1.25     virtual void validate(void);
104                     
105                         virtual String getClass(void) const;
106                     
107                         Uint32 getResponseObjectTotal(void) const;
108 brian.campbell 1.9  
109 chip           1.11     // there can be many objects per message (or none at all - i.e complete())
110 chip           1.25     Uint32 getResponseMessageTotal(void) const;
111                     
112                         Uint32 getResponseObjectThreshold(void) const;
113 brian.campbell 1.9  
114 schuur         1.1      CIMRequestMessage * _request;
115                         CIMResponseMessage * _response;
116                     
117 brian.campbell 1.9  private:
118 chip           1.11     Uint32 _responseObjectTotal;
119                         Uint32 _responseMessageTotal;
120                         Uint32 _responseObjectThreshold;
121                     
122 schuur         1.1  };
123                     
124 chip           1.26 class PEGASUS_PPM_LINKAGE GetInstanceResponseHandler : public OperationResponseHandler, public SimpleInstanceResponseHandler
125 chip           1.11 {
126                     public:
127                         GetInstanceResponseHandler(
128                             CIMGetInstanceRequestMessage * request,
129 chip           1.25         CIMGetInstanceResponseMessage * response);
130                     
131                         virtual void deliver(const CIMInstance & cimInstance);
132 kumpf          1.27     using SimpleInstanceResponseHandler::deliver;
133 chip           1.26     virtual void complete(void);
134 chip           1.25 
135                     protected:
136                         virtual String getClass(void) const;
137                     
138                         virtual void transfer(void);
139                     
140                         virtual void validate(void);
141 chip           1.14 
142                     private:
143                         ObjectNormalizer _normalizer;
144                     
145 schuur         1.1  };
146                     
147 chip           1.26 class PEGASUS_PPM_LINKAGE EnumerateInstancesResponseHandler : public OperationResponseHandler, public SimpleInstanceResponseHandler
148 schuur         1.1  {
149                     public:
150 chip           1.11     EnumerateInstancesResponseHandler(
151                             CIMEnumerateInstancesRequestMessage * request,
152 chip           1.25         CIMEnumerateInstancesResponseMessage * response);
153                     
154                         virtual void deliver(const CIMInstance & cimInstance);
155 kumpf          1.27     using SimpleInstanceResponseHandler::deliver;
156 chip           1.11 
157 chip           1.25 protected:
158                         virtual String getClass(void) const;
159                     
160                         virtual void transfer(void);
161 chip           1.14 
162                     private:
163                         ObjectNormalizer _normalizer;
164                     
165 schuur         1.1  };
166                     
167 chip           1.26 class PEGASUS_PPM_LINKAGE EnumerateInstanceNamesResponseHandler : public OperationResponseHandler, public SimpleObjectPathResponseHandler
168 schuur         1.1  {
169                     public:
170 chip           1.11     EnumerateInstanceNamesResponseHandler(
171                             CIMEnumerateInstanceNamesRequestMessage * request,
172 chip           1.25         CIMEnumerateInstanceNamesResponseMessage * response);
173 chip           1.11 
174 chip           1.25     virtual void deliver(const CIMObjectPath & cimObjectPath);
175 kumpf          1.27     using SimpleObjectPathResponseHandler::deliver;
176 chip           1.25 
177                     protected:
178                         virtual String getClass(void) const;
179                     
180                         virtual void transfer(void);
181 chip           1.14 
182                     private:
183                         ObjectNormalizer _normalizer;
184                     
185 schuur         1.1  };
186                     
187 chip           1.26 class PEGASUS_PPM_LINKAGE CreateInstanceResponseHandler : public OperationResponseHandler, public SimpleObjectPathResponseHandler
188 schuur         1.1  {
189                     public:
190 chip           1.11     CreateInstanceResponseHandler(
191                             CIMCreateInstanceRequestMessage * request,
192 chip           1.25         CIMCreateInstanceResponseMessage * response);
193                     
194                         virtual void deliver(const CIMObjectPath & cimObjectPath);
195 kumpf          1.27     using SimpleObjectPathResponseHandler::deliver;
196 chip           1.26     virtual void complete(void);
197 chip           1.25 
198                     protected:
199                         virtual String getClass(void) const;
200                     
201                         virtual void transfer(void);
202                     
203 schuur         1.1  };
204                     
205 chip           1.26 class PEGASUS_PPM_LINKAGE ModifyInstanceResponseHandler : public OperationResponseHandler, public SimpleResponseHandler
206 schuur         1.1  {
207                     public:
208 chip           1.11     ModifyInstanceResponseHandler(
209                             CIMModifyInstanceRequestMessage * request,
210 chip           1.25         CIMModifyInstanceResponseMessage * response);
211 chip           1.11 
212 chip           1.18 protected:
213 chip           1.25     virtual String getClass(void) const;
214                     
215 schuur         1.1  };
216                     
217 chip           1.26 class PEGASUS_PPM_LINKAGE DeleteInstanceResponseHandler : public OperationResponseHandler, public SimpleResponseHandler
218 schuur         1.1  {
219                     public:
220 chip           1.11     DeleteInstanceResponseHandler(
221                             CIMDeleteInstanceRequestMessage * request,
222 chip           1.25         CIMDeleteInstanceResponseMessage * response);
223 chip           1.11 
224 chip           1.18 protected:
225 chip           1.25     virtual String getClass(void) const;
226 chip           1.11 
227 schuur         1.1  };
228                     
229 chip           1.26 class PEGASUS_PPM_LINKAGE GetPropertyResponseHandler : public OperationResponseHandler, public SimpleValueResponseHandler
230 schuur         1.1  {
231                     public:
232 chip           1.11     GetPropertyResponseHandler(
233                             CIMGetPropertyRequestMessage * request,
234 chip           1.25         CIMGetPropertyResponseMessage * response);
235                     
236                         virtual void deliver(const CIMValue & cimValue);
237 kumpf          1.27     using SimpleValueResponseHandler::deliver;
238 chip           1.25 
239                     protected:
240                         virtual String getClass(void) const;
241                     
242                         virtual void transfer(void);
243                     
244                         virtual void validate(void);
245                     
246 schuur         1.1  };
247                     
248 chip           1.26 class PEGASUS_PPM_LINKAGE SetPropertyResponseHandler : public OperationResponseHandler, public SimpleResponseHandler
249 schuur         1.1  {
250                     public:
251 chip           1.11     SetPropertyResponseHandler(
252                             CIMSetPropertyRequestMessage * request,
253 chip           1.25         CIMSetPropertyResponseMessage * response);
254 chip           1.11 
255 chip           1.18 protected:
256 chip           1.25     virtual String getClass(void) const;
257 chip           1.11 
258 schuur         1.1  };
259                     
260 chip           1.26 class PEGASUS_PPM_LINKAGE ExecQueryResponseHandler : public OperationResponseHandler, public SimpleInstance2ObjectResponseHandler
261 schuur         1.1  {
262                     public:
263 chip           1.11     ExecQueryResponseHandler(
264                             CIMExecQueryRequestMessage * request,
265 chip           1.25         CIMExecQueryResponseMessage * response);
266                     
267                         virtual void deliver(const CIMInstance & cimInstance);
268 kumpf          1.27     using SimpleInstance2ObjectResponseHandler::deliver;
269 chip           1.25 
270                     protected:
271                         virtual String getClass(void) const;
272                     
273                         virtual void transfer(void);
274                     
275                         virtual Boolean isAsync(void) const;
276                     
277 schuur         1.1  };
278                     
279 chip           1.26 class PEGASUS_PPM_LINKAGE AssociatorsResponseHandler : public OperationResponseHandler, public SimpleObjectResponseHandler
280 schuur         1.1  {
281                     public:
282 chip           1.11     AssociatorsResponseHandler(
283                             CIMAssociatorsRequestMessage * request,
284 chip           1.25         CIMAssociatorsResponseMessage * response);
285                     
286                         virtual void deliver(const CIMObject & cimObject);
287 kumpf          1.27     using SimpleObjectResponseHandler::deliver;
288 chip           1.25 
289                     protected:
290                         virtual String getClass(void) const;
291                     
292                         virtual void transfer(void);
293 chip           1.11 
294 schuur         1.1  };
295                     
296 chip           1.26 class PEGASUS_PPM_LINKAGE AssociatorNamesResponseHandler : public OperationResponseHandler, public SimpleObjectPathResponseHandler
297 schuur         1.1  {
298                     public:
299 chip           1.11     AssociatorNamesResponseHandler(
300                             CIMAssociatorNamesRequestMessage * request,
301 chip           1.25         CIMAssociatorNamesResponseMessage * response);
302                     
303                         virtual void deliver(const CIMObjectPath & cimObjectPath);
304 kumpf          1.27     using SimpleObjectPathResponseHandler::deliver;
305 chip           1.25 
306                     protected:
307                         virtual String getClass(void) const;
308                     
309                         virtual void transfer(void);
310 chip           1.11 
311 schuur         1.1  };
312                     
313 chip           1.26 class PEGASUS_PPM_LINKAGE ReferencesResponseHandler : public OperationResponseHandler, public SimpleObjectResponseHandler
314 schuur         1.1  {
315                     public:
316 chip           1.11     ReferencesResponseHandler(
317                             CIMReferencesRequestMessage * request,
318 chip           1.25         CIMReferencesResponseMessage * response);
319                     
320                         virtual void deliver(const CIMObject & cimObject);
321 kumpf          1.27     using SimpleObjectResponseHandler::deliver;
322 chip           1.25 
323                     protected:
324                         virtual String getClass(void) const;
325                     
326                         virtual void transfer(void);
327 chip           1.11 
328 schuur         1.1  };
329                     
330 chip           1.26 class PEGASUS_PPM_LINKAGE ReferenceNamesResponseHandler : public OperationResponseHandler, public SimpleObjectPathResponseHandler
331 schuur         1.1  {
332                     public:
333 chip           1.11     ReferenceNamesResponseHandler(
334                             CIMReferenceNamesRequestMessage * request,
335 chip           1.25         CIMReferenceNamesResponseMessage * response);
336                     
337                         virtual void deliver(const CIMObjectPath & cimObjectPath);
338 kumpf          1.27     using SimpleObjectPathResponseHandler::deliver;
339 chip           1.25 
340                     protected:
341                         virtual String getClass(void) const;
342                     
343                         virtual void transfer(void);
344 chip           1.11 
345 schuur         1.1  };
346                     
347 chip           1.26 class PEGASUS_PPM_LINKAGE InvokeMethodResponseHandler : public OperationResponseHandler, public SimpleMethodResultResponseHandler
348 schuur         1.1  {
349                     public:
350 chip           1.11     InvokeMethodResponseHandler(
351                             CIMInvokeMethodRequestMessage * request,
352 chip           1.25         CIMInvokeMethodResponseMessage * response);
353                     
354                         virtual void deliverParamValue(const CIMParamValue & cimParamValue);
355 kumpf          1.27     using SimpleMethodResultResponseHandler::deliverParamValue;
356 chip           1.25 
357                         virtual void deliver(const CIMValue & cimValue);
358                     
359                     protected:
360                         virtual String getClass(void) const;
361                     
362                         virtual void transfer(void);
363                     
364 schuur         1.1  };
365                     
366 brian.campbell 1.9  typedef void (*PEGASUS_INDICATION_CALLBACK)(CIMProcessIndicationRequestMessage*);
367 kumpf          1.2  
368 chip           1.26 class PEGASUS_PPM_LINKAGE EnableIndicationsResponseHandler : public OperationResponseHandler, public SimpleIndicationResponseHandler
369 schuur         1.1  {
370                     public:
371 chip           1.11     EnableIndicationsResponseHandler(
372 carolann.graves 1.19         CIMRequestMessage * request,
373                              CIMResponseMessage * response,
374 chip            1.11         CIMInstance & provider,
375 chip            1.25         PEGASUS_INDICATION_CALLBACK indicationCallback);
376                      
377                          virtual void deliver(const CIMIndication & cimIndication);
378                      
379                          virtual void deliver(const OperationContext & context, const CIMIndication & cimIndication);
380                      
381                          virtual void deliver(const Array<CIMIndication> & cimIndications);
382                      
383                          virtual void deliver(const OperationContext & context, const Array<CIMIndication> & cimIndications);
384                      
385                      protected:
386                          virtual String getClass(void) const;
387                      
388                          virtual Boolean isAsync(void) const;
389 chip            1.18 
390 brian.campbell  1.9  private:
391 chip            1.11     PEGASUS_INDICATION_CALLBACK _indicationCallback;
392 schuur          1.1  
393 brian.campbell  1.9  };
394 schuur          1.1  
395                      PEGASUS_NAMESPACE_END
396                      
397                      #endif

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2