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/IMessageData.hpp>
00030
#include "GDefine.hpp"
00031
00032 AXIS_CPP_NAMESPACE_START
00033
00034
typedef enum { NORMAL_HANDLER, WEBSERVICE_HANDLER, CHAIN_HANDLER } HANDLER_TYPE;
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
00070
00071
00072
00073
00074
00075 class HandlerBase
00076 {
00077
public:
00081 HandlerBase(){};
00082
00086 virtual ~HandlerBase(){};
00087
00182
virtual int AXISCALL
invoke(
void* pMsg)=0;
00183
00197
virtual void AXISCALL
onFault(
void* mMsg)=0;
00198
00206
virtual int AXISCALL
init()=0;
00207
00215
virtual int AXISCALL
fini()=0;
00216
00230
virtual int AXISCALL
getType()=0;
00231 };
00232
00233 AXIS_CPP_NAMESPACE_END
00234
00235
#endif
00236
00237