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

HandlerChain.h

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 #if !defined(_HANDLERCHAIN_H____OF_AXIS_INCLUDED_)
00019 #define _HANDLERCHAIN_H____OF_AXIS_INCLUDED_
00020 
00021 #include "Handler.h"
00022 
00023 /*
00024  *  @class HandlerChain
00025  *  @brief interface for the HandlerChain class.
00026  *  @author Susantha Kumara (skumara@virtusa.com)
00027  */
00028 class HandlerChain : public HandlerBase  
00029 {
00030     friend class HandlerPool;
00031 private:
00032     typedef struct ChainItem
00033     {
00034         BasicHandler* m_pHandler;
00035         int m_nScope;
00036         int m_nLibId;
00037     } ChainItem;
00038 public:
00039     int addHandler(BasicHandler* pHandler, int nScope, int nLibId);
00040     HandlerChain();
00041     virtual ~HandlerChain();
00042     int AXISCALL invoke(void* pMsg);
00043     void AXISCALL onFault(void* pMsg);
00044     int AXISCALL getType(){return CHAIN_HANDLER;};
00045     int AXISCALL init();
00046     int AXISCALL fini();
00047     AXIS_BINDING_STYLE AXISCALL getBindingStyle(){ return RPC_ENCODED;}; 
00048     /* this is never called */
00049 
00050 private:
00051     list<ChainItem> m_HandlerList;
00052     list<ChainItem>::iterator m_itCurrHandler;
00053 };
00054 
00055 #endif 
00056 

Generated on Fri Jul 9 13:18:29 2004 for AxisC++ by doxygen1.2.18