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