00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #if !defined(_BASICHANDLER_H__OF_AXIS_INCLUDED_)
00020 #define _BASICHANDLER_H__OF_AXIS_INCLUDED_
00021
00022 #include "IMessageData.h"
00023 #include "GDefine.h"
00024
00025 enum HANDLER_TYPE { NORMAL_HANDLER, WEBSERVICE_HANDLER, CHAIN_HANDLER };
00026
00027 typedef struct
00028 {
00029 int (AXISCALL* invoke)(void* _object, void* pMsg);
00030 void (AXISCALL* onFault)(void* _object, void* pMsg);
00031 int (AXISCALL* init)(void* _object);
00032 int (AXISCALL* fini)(void* _object);
00033 int (AXISCALL* getType)(void* _object);
00034 AXIS_BINDING_STYLE (AXISCALL* getBindingStyle)(void* _object);
00035 } BasicHandlerFunctions;
00036
00037 typedef struct
00038 {
00039 void* _object;
00040
00041 BasicHandlerFunctions* _functions;
00042 } BasicHandler;
00043
00044 #ifdef __cplusplus
00045
00063
00064
00065
00066
00067
00068 class HandlerBase
00069 {
00070 public:
00074 HandlerBase(){};
00075
00079 virtual ~HandlerBase(){};
00080
00175 virtual int AXISCALL invoke(void* pMsg)=0;
00176
00190 virtual void AXISCALL onFault(void* mMsg)=0;
00191
00199 virtual int AXISCALL init()=0;
00200
00208 virtual int AXISCALL fini()=0;
00209
00223 virtual int AXISCALL getType()=0;
00224 };
00225 #endif
00226
00227 #endif
00228
00229