00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00026 #if !defined(_BASICHANDLER_H__OF_AXIS_INCLUDED_)
00027 #define _BASICHANDLER_H__OF_AXIS_INCLUDED_
00028
00029 #include <axis/server/IMessageData.h>
00030 #include "GDefine.h"
00031
00032 AXIS_CPP_NAMESPACE_START
00033
00034 enum HANDLER_TYPE { NORMAL_HANDLER, WEBSERVICE_HANDLER, CHAIN_HANDLER };
00035
00036 typedef struct
00037 {
00038 int (AXISCALL* invoke)(void* _object, void* pMsg);
00039 void (AXISCALL* onFault)(void* _object, void* pMsg);
00040 int (AXISCALL* init)(void* _object);
00041 int (AXISCALL* fini)(void* _object);
00042 int (AXISCALL* getType)(void* _object);
00043 AXIS_BINDING_STYLE (AXISCALL* getBindingStyle)(void* _object);
00044 } BasicHandlerFunctions;
00045
00046 typedef struct
00047 {
00048 void* _object;
00049
00050 BasicHandlerFunctions* _functions;
00051 } BasicHandler;
00052
00053 #ifdef __cplusplus
00054
00072
00073
00074
00075
00076
00077 class HandlerBase
00078 {
00079 public:
00083 HandlerBase(){};
00084
00088 virtual ~HandlerBase(){};
00089
00184 virtual int AXISCALL invoke(void* pMsg)=0;
00185
00199 virtual void AXISCALL onFault(void* mMsg)=0;
00200
00208 virtual int AXISCALL init()=0;
00209
00217 virtual int AXISCALL fini()=0;
00218
00232 virtual int AXISCALL getType()=0;
00233 };
00234 #endif
00235
00236 AXIS_CPP_NAMESPACE_END
00237
00238 #endif
00239
00240