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