00001 00010 // SOAPMethod.h: interface for the SOAPMethod class. 00011 // 00013 00014 /* 00015 #if !defined(SOAPMETHOD_H) 00016 #include "SOAPMethod.h" 00017 #endif // SOAPMETHOD_H 00018 */ 00019 00020 #if !defined(SOAPMETHOD_H) 00021 #define SOAPMETHOD_H 00022 00023 #ifndef _STRING_ 00024 #include <string> 00025 #endif // _STRING_ 00026 #if !defined(SOAPELEMENT_H) 00027 #include "SOAPElement.h" 00028 #endif // !defined(SOAPELEMENT_H) 00029 #if !defined(SOAPFAULT_H) 00030 #include "SOAPFault.h" 00031 #endif // !defined(SOAPFAULT_H) 00032 00033 // Forward declaration. 00034 class SOAPEncoder; 00035 00036 class SOAPMethod 00037 { 00038 public: 00039 // Constructor/ Destructor 00040 SOAPMethod(); 00041 virtual ~SOAPMethod(); 00042 00043 00044 // methodName 00045 // Description: 00049 // Arugments: 00050 // N/A 00053 virtual std::string methodName() = 0; 00054 00055 // extractMethod 00056 // Description: 00060 virtual bool extractMethod( SOAPElement& theCall, SOAPElement& theMethod ); 00061 00062 // methodNameAttributes 00063 // Description: 00066 virtual std::string methodNameAttributes(); 00067 00068 // encode 00069 // Description: 00076 // Arugments: 00082 virtual bool encode( SOAPEncoder& soapEncoder ) = 0; 00083 00084 // execute 00085 // Description: 00098 virtual bool execute( SOAPElement& theCall ); 00099 00100 // getFault 00101 // Description: 00105 // Arugments: 00106 // N/A 00109 virtual SOAPFault* getFault(); 00110 00111 // setFailed 00112 // Description: 00115 // Arugments: 00116 // N/A 00117 // Return Value: 00118 // N/A 00119 void setFailed(); 00120 00121 // succeeded 00122 // Description: 00125 // N/A 00126 // Return Value: 00127 // true: Call to execute worked. 00128 // false: Call to execute failed. 00129 bool succeeded(); 00130 00131 // isGenric 00133 virtual bool isGeneric() { return false; }; 00134 00135 // mustIUnderstand 00138 virtual bool mustIUnderstand(SOAPElement& theCall); 00139 00140 protected: 00141 00142 // m_bSucceeded 00143 // Description: Stores the success value. 00144 bool m_bSucceeded; 00145 00146 // m_pFault 00147 // Description: 00149 std::auto_ptr<SOAPFault> m_pFault; 00150 00151 // unkownMethodFault 00153 void unkownMethodFault( SOAPElement aMethod ); 00154 00155 // wrongNumberArgumentsFault 00157 void wrongNumberArgumentsFault( SOAPElement aMethod, const char *num ); 00158 00159 // ImustUnderstand 00161 bool ImustUnderstand( SOAPElement aElement ); 00162 }; 00163 00164 #endif // !defined(SOAPMETHOD_H)