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

SoapMethod.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(AXIS_SOAPMETHOD_H__INCLUDED_)
00019 #define AXIS_SOAPMETHOD_H__INCLUDED_
00020 
00021 #include <axis/server/Param.h>
00022 #include "../common/ISoapMethod.h"
00023 #include <axis/server/SoapSerializer.h>
00024 #include <list>
00025 
00026 class Attribute;
00027 
00028 using namespace std;
00029 
00030 /*
00031     @class SoapMethod
00032     @brief    The SOAP Body of a SOAP Envelope according to 
00033     SOAP 1.2 specification.
00034 
00035     The SOAP method.
00036 
00037     SOAP Body child Element:
00038     All child element information items of the SOAP Body element information 
00039     item:
00040          - SHOULD have a [namespace name] property which has a value, that is
00041            the name of the element SHOULD be namespace qualified.
00042          - MAY have any number of character information item children. Child 
00043            character information items whose character code is amongst the
00044            white space characters as defined by XML 1.0 [XML 1.0] are 
00045            considered significant.
00046          - MAY have any number of element information item children. Such
00047            element information items MAY be namespace qualified.
00048          - MAY have zero or more attribute information items in its
00049            [attributes] property. Among these MAY be the following, which has
00050            special significance for SOAP processing:
00051              - encodingStyle attribute information item
00052 
00053 
00054 
00055     @author Roshan Weerasuriya (roshan@jkcs.slt.lk)
00056 */
00057 
00058 class SoapMethod : public ISoapMethod
00059 {
00060 
00061 private:
00062     int serializeAttributes(SoapSerializer& pSZ);
00063     /* int serializeAttributes(string& sSerialized); */
00064     list<Attribute*> m_attributes;
00065     bool isSerializable();    
00066     int serializeOutputParam(SoapSerializer& pSZ);
00067     /* int serializeOutputParam(string&); */
00068     AxisString m_strPrefix;
00069     AxisString m_strLocalname;
00070     AxisString m_strUri;
00071     list<Param*> m_OutputParams;
00072     /* string m_strMethodSerialized; */
00073     /* test line */
00074 
00075 public:    
00076     /*
00077      * Initializes the member variables for testing.
00078      * @return The status indicating success (AXIS_SUCCESS) or failure
00079      * (AXIS_FAIL).
00080      */
00081 
00082     int initializeForTesting();
00083 
00084     int reset();
00085     int addAttribute(Attribute* pAttribute);
00086     const AxisChar* getMethodName();
00087     int serialize(SoapSerializer& pSZ);
00088     /* int serialize(string&); */
00089     void AddOutputParam(Param *param);
00090     void setUri(const AxisChar* uri);
00091     void setLocalName(const AxisChar* localname);
00092     void setPrefix(const AxisChar* prefix);
00093     SoapMethod();
00094     virtual ~SoapMethod();
00095 };
00096 
00097 #endif

Generated on Fri Apr 9 12:21:29 2004 for axiscpp by doxygen1.2.18