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
00118
00123 class PEGASUS_COMMON_LINKAGE InstanceResponseHandler
00124 : virtual public ResponseHandler
00125 {
00126 public:
00136 virtual void deliver(const CIMInstance & instance) = 0;
00137
00145 virtual void deliver(const Array<CIMInstance> & instances) = 0;
00146 };
00147
00148
00153 class PEGASUS_COMMON_LINKAGE ObjectPathResponseHandler
00154 : virtual public ResponseHandler
00155 {
00156 public:
00166 virtual void deliver(const CIMObjectPath & objectPath) = 0;
00167
00175 virtual void deliver(const Array<CIMObjectPath> & objectPaths) = 0;
00176 };
00177
00178
00183 class PEGASUS_COMMON_LINKAGE MethodResultResponseHandler
00184 : virtual public ResponseHandler
00185 {
00186 public:
00196 virtual void deliverParamValue(const CIMParamValue & outParamValue) = 0;
00197
00206 virtual void deliverParamValue(
00207 const Array<CIMParamValue> & outParamValues) = 0;
00208
00215 virtual void deliver(const CIMValue & returnValue) = 0;
00216 };
00217
00218
00223 class PEGASUS_COMMON_LINKAGE IndicationResponseHandler
00224 : virtual public ResponseHandler
00225 {
00226 public:
00236 virtual void deliver(const CIMIndication & indication) = 0;
00237
00246 virtual void deliver(const Array<CIMIndication> & indications) = 0;
00247
00258 virtual void deliver(
00259 const OperationContext & context,
00260 const CIMIndication & indication) = 0;
00261
00272 virtual void deliver(
00273 const OperationContext & context,
00274 const Array<CIMIndication> & indications) = 0;
00275 };
00276
00277
00282 class PEGASUS_COMMON_LINKAGE ObjectResponseHandler
00283 : virtual public ResponseHandler
00284 {
00285 public:
00295 virtual void deliver(const CIMObject & object) = 0;
00296
00304 virtual void deliver(const Array<CIMObject> & objects) = 0;
00305 };
00306
00307 PEGASUS_NAMESPACE_END
00308
00309 #endif