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