Main Page   Class Hierarchy   Compound List   File List   Compound Members   Examples  

IHandlerSoapDeSerializer.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(_IHANDLERSOAPDESERIALIZER_H____OF_AXIS_INCLUDED_)
00019 #define _IHANDLERSOAPDESERIALIZER_H____OF_AXIS_INCLUDED_
00020 
00021 #include "IWrapperSoapDeSerializer.h"
00022 #include "IHeaderBlock.h"
00023 #include "AxisUserAPI.h"
00024 /*
00025  *  @class IHandlerSoapDeSerializer
00026  *  @brief interface for the IHandlerSoapDeSerializer class.
00027  *
00028  *
00029  *  @author Roshan Weerasuriya (roshan@opensource.lk, roshanw@jkcsworld.com)
00030  */
00031 
00032 /*
00033  * Revision 1.1  2004/06/14 roshan
00034  * Removed virtual int AXISCALL addHeaderBlock(IHeaderBlock* pBlk)=0; method
00035  * from this interface, because a user should not be able to add any thing
00036  * to the DeSerialzer.
00037  */
00038 
00039 #ifdef __cplusplus
00040 
00041 class IHandlerSoapDeSerializer : public IWrapperSoapDeSerializer
00042 {
00043 public:
00044     virtual ~IHandlerSoapDeSerializer() {};
00045     
00046     /*
00047      * The soap body may be encrypted/compressed and a 
00048      * handler in the request message 
00049      * path may decode and then decrypt and/or decompress 
00050      * whole soap body and set the
00051      * XML to the Deserializer. In such a case a handler 
00052      * will use following functions 
00053      * to get soap body and set back the XML. 
00054      * If this process goes throgh several
00055      * handlers the intermediate binary data 
00056      * (unencrypted/uncompressed body) may be kept 
00057      * in the IMessageData until it is converted to XML. 
00058      * A handler usually converts it 
00059      * to XML and use SetNewSoapBody(..) function to set 
00060      * the new SoapBody back to the 
00061      * Deserializer.
00062      */
00063     virtual xsd__hexBinary AXISCALL getBodyAsHexBinary()=0;
00064     virtual xsd__base64Binary AXISCALL getBodyAsBase64Binary()=0;
00065     virtual int AXISCALL setNewSoapBody(AxisChar* pNewSoapBody)=0;
00066 
00074     virtual IHeaderBlock* getHeaderBlock(const AxisChar* pName, 
00075         const AxisChar* pNamespace) = 0;
00076 };
00077 
00078 #else
00079 
00080 typedef struct 
00081 { 
00082     void* unused; 
00083     /* this corresponds to C++ virtual function 
00084      * pointer which is ignored in C 
00085      */ 
00086     void* unused_; 
00087     /* this corresponds to IWrapperSoapDeSerializerFunctions pointer */
00088     IHandlerSoapDeSerializerFunctions* __vfptr;
00089 } IHandlerSoapDeSerializer;
00090 
00091 #endif
00092 
00093 #endif 
00094 
00095 

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