Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members   Examples  

BasicHandler.h

Go to the documentation of this file.
00001 /*
00002  *   Copyright 2003-2004 The Apache Software Foundation.
00003  *
00004  *   Licensed under the Apache License, Version 2.0 (the "License");
00005  *   you may not use this file except in compliance with the License.
00006  *   You may obtain a copy of the License at
00007  *
00008  *       http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  *   Unless required by applicable law or agreed to in writing, software
00011  *   distributed under the License is distributed on an "AS IS" BASIS,
00012  *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  *   See the License for the specific language governing permissions and
00014  *   limitations under the License.
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     /* present only for interfaces passed from C to C++ (eg:BasicHandler) */
00050     BasicHandlerFunctions* _functions;
00051 } BasicHandler;
00052 
00053 #ifdef __cplusplus
00054 
00072 /*
00073  * Revision 1.1  2004/06/14 roshan
00074  * Added doxygen comments to help autobuild API docs
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 

Generated on Wed Aug 18 11:42:23 2004 for AxisC++ by doxygen1.2.18