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

Generated on Tue Jun 15 19:13:23 2004 for axiscpp by doxygen1.2.18