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

BasicHandler.hpp

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

Generated on Fri Mar 3 01:12:35 2006 for AxisC++ by doxygen1.2.18