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

IHandlerSoapSerializer.hpp

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 #if !defined(_IHANDLERSOAPSERIALIZER_H____OF_AXIS_INCLUDED_)
00019 #define _IHANDLERSOAPSERIALIZER_H____OF_AXIS_INCLUDED_
00020 
00021 #include "IWrapperSoapSerializer.hpp"
00022 #include "SoapEnvVersions.hpp"
00023 
00024 AXIS_CPP_NAMESPACE_START
00025 
00026 class IHeaderBlock;
00050 class IHandlerSoapSerializer : public IWrapperSoapSerializer
00051 
00052 {
00053 public:        
00054     virtual ~IHandlerSoapSerializer() {};
00055 
00062     virtual IHeaderBlock* createHeaderBlock()=0;
00063 
00073     virtual IHeaderBlock*  createHeaderBlock(const AxisChar *pachLocalName, 
00074                 const AxisChar *pachUri)=0;    
00075 
00082     virtual int AXISCALL addHeaderBlock(IHeaderBlock* pBlk)=0;
00083 
00089     virtual int setSoapVersion(SOAP_VERSION eSOAP_VERSION)=0;
00090 
00097         /*
00098          * TO DO: Have to remove this method from this api. Logged this msg on
00099          *  13Jan2005.
00100         virtual IHeaderBlock* getHeaderBlock() = 0;
00101         */
00102 
00110         virtual IHeaderBlock* getHeaderBlock(const AxisChar *pcName, 
00111                                                                                          const AxisChar *pcNamespace) = 0;
00116      virtual IHeaderBlock* getFirstHeaderBlock()=0;
00117  
00122      virtual IHeaderBlock* getNextHeaderBlock()=0;
00123 
00130      virtual IHeaderBlock* getCurrentHeaderBlock()=0;
00131 
00132     /*
00133      * A handler may get the entire soap body and encrypt/compress 
00134      * it and encode to either base64Binary or hexBinary before 
00135      * sending to the transport. So any handler in the response message 
00136      * path may use following functions to get the entire soap 
00137      * body / set encrypted and/or compressed and then encoded soap body
00138      * back to the Serializer
00139      */
00140 
00141     virtual int AXISCALL setBodyAsHexBinary(xsd__hexBinary body)=0;
00142     virtual int AXISCALL setBodyAsBase64Binary(xsd__base64Binary body)=0;
00143     virtual const AxisChar* AXISCALL getBodyAsString()=0;
00144 
00145 
00151 virtual int deleteHeaderBlock(const AxisChar* pName, const AxisChar* pNamespace)=0;
00156 virtual int removeSoapHeader()=0;
00157 
00161         virtual void addNamespaceToEnvelope(AxisChar *pachNamespaceURI, AxisChar* pachPrefix)=0;
00162 };
00163 
00164 AXIS_CPP_NAMESPACE_END
00165 
00166 #endif 
00167 

Generated on Tue May 17 02:30:31 2005 for AxisC++ by doxygen1.2.18