00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00029
00030
00031
00032 #ifndef Pegasus_ResponseHandler_h
00033 #define Pegasus_ResponseHandler_h
00034
00035 #include <Pegasus/Common/Config.h>
00036 #include <Pegasus/Common/Array.h>
00037 #include <Pegasus/Common/Linkage.h>
00038
00039 #include <Pegasus/Common/CIMInstance.h>
00040 #include <Pegasus/Common/CIMObjectPath.h>
00041 #include <Pegasus/Common/CIMParamValue.h>
00042 #include <Pegasus/Common/CIMValue.h>
00043 #include <Pegasus/Common/CIMIndication.h>
00044 #include <Pegasus/Common/CIMObject.h>
00045 #include <Pegasus/Common/CIMClass.h>
00046 #include <Pegasus/Common/OperationContext.h>
00047
00048 PEGASUS_NAMESPACE_BEGIN
00049
00055 class PEGASUS_COMMON_LINKAGE ResponseHandler
00056 {
00057 public:
00058
00062 virtual ~ResponseHandler();
00063
00064
00065
00066
00067
00068
00069
00070
00071
00076 virtual void processing() = 0;
00077
00083 virtual void complete() = 0;
00084
00093 void setContext(const OperationContext & context);
00094
00095 protected:
00096
00100 ResponseHandler();
00101
00105 ResponseHandler(const ResponseHandler& handler);
00106
00110 ResponseHandler& operator=(const ResponseHandler& handler);
00111
00115 OperationContext getContext() const;
00116 };
00117
00122 class PEGASUS_COMMON_LINKAGE InstanceResponseHandler
00123 : virtual public ResponseHandler
00124 {
00125 public:
00135 virtual void deliver(const CIMInstance & instance) = 0;
00136
00144 virtual void deliver(const Array<CIMInstance> & instances) = 0;
00145 };
00146
00147
00152 class PEGASUS_COMMON_LINKAGE ObjectPathResponseHandler
00153 : virtual public ResponseHandler
00154 {
00155 public:
00165 virtual void deliver(const CIMObjectPath & objectPath) = 0;
00166
00174 virtual void deliver(const Array<CIMObjectPath> & objectPaths) = 0;
00175 };
00176
00177
00182 class PEGASUS_COMMON_LINKAGE MethodResultResponseHandler
00183 : virtual public ResponseHandler
00184 {
00185 public:
00195 virtual void deliverParamValue(const CIMParamValue & outParamValue) = 0;
00196
00205 virtual void deliverParamValue(
00206 const Array<CIMParamValue> & outParamValues) = 0;
00207
00214 virtual void deliver(const CIMValue & returnValue) = 0;
00215 };
00216
00217
00222 class PEGASUS_COMMON_LINKAGE IndicationResponseHandler
00223 : virtual public ResponseHandler
00224 {
00225 public:
00235 virtual void deliver(const CIMIndication & indication) = 0;
00236
00245 virtual void deliver(const Array<CIMIndication> & indications) = 0;
00246
00257 virtual void deliver(
00258 const OperationContext & context,
00259 const CIMIndication & indication) = 0;
00260
00271 virtual void deliver(
00272 const OperationContext & context,
00273 const Array<CIMIndication> & indications) = 0;
00274 };
00275
00276
00281 class PEGASUS_COMMON_LINKAGE ObjectResponseHandler
00282 : virtual public ResponseHandler
00283 {
00284 public:
00294 virtual void deliver(const CIMObject & object) = 0;
00295
00303 virtual void deliver(const Array<CIMObject> & objects) = 0;
00304 };
00305
00306 PEGASUS_NAMESPACE_END
00307
00308 #endif