00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00062
00063 #if !defined(AFX_SOAPDESERIALIZER_H__FD0E7C3B_B887_480A_9E2A_20736A88B09B__INCLUDED_)
00064 #define AFX_SOAPDESERIALIZER_H__FD0E7C3B_B887_480A_9E2A_20736A88B09B__INCLUDED_
00065
00066 #include "../common/IWrapperSoapDeSerializer.h"
00067 #include "../common/IHandlerSoapDeSerializer.h"
00068 #include "XMLStreamHandler.h"
00069
00070 #define HUGE_BUFFER_SIZE 32768
00071
00072
00073 class SoapEnvelope;
00074 class SoapHeader;
00075 class SoapMethod;
00076 class SoapBody;
00077 class SoapFault;
00078
00079
00087 class SoapDeSerializer : public IWrapperSoapDeSerializer, public IHandlerSoapDeSerializer
00088 {
00089 private:
00090 XMLStreamHandler* m_pHandler;
00091 SAX2XMLReader* m_pParser;
00092 const Ax_soapstream* m_pInputStream;
00093 char* m_hugebuffer;;
00094 Param* m_pLastArrayParam;
00095 int m_Status;
00096 public:
00097 int GetVersion();
00098 const AxisChar* GetMethodName();
00099 int Init();
00100 IParam* GetParam();
00101 int Deserialize(IParam* pIParam, int bHref);
00102 SoapFault* GetFault();
00103 SoapMethod* GetMethod();
00104 SoapBody* GetBody();
00105 ISoapHeader* GetHeader();
00106 SoapEnvelope* GetEnvelope();
00107 int SetInputStream(const Ax_soapstream* pInputStream);
00108 SoapDeSerializer();
00109 virtual ~SoapDeSerializer();
00111 Axis_Array GetArray(void* pDZFunct, void* pCreFunct, void* pDelFunct, void* pSizeFunct, const AxisChar* pchTypeName, const AxisChar* pchURI);
00113 Axis_Array GetArray(XSDTYPE nType);
00114 int GetArraySize();
00115 int GetArray(Axis_Array* pArray, XSDTYPE nType);
00117 void* GetObject(void* pDZFunct, void* pCreFunct, void* pDelFunct, const AxisChar* pchTypeName, const AxisChar* pchURI);
00118
00119
00120 int GetInt();
00121 unsigned int GetUnsignedInt();
00122 short GetShort();
00123 unsigned short GetUnsignedShort();
00124 char GetByte();
00125 unsigned char GetUnsignedByte();
00126 long GetLong();
00127 long GetInteger();
00128 unsigned long GetUnsignedLong();
00129 float GetFloat();
00130 double GetDouble();
00131 double GetDecimal();
00132 const AxisChar* GetString();
00133 const AxisChar* GetAnyURI();
00134 const AxisChar* GetQName();
00135 const AxisChar* GetHexString();
00136 const AxisChar* GetBase64String();
00139 struct tm GetDateTime();
00140 struct tm GetDate();
00141 struct tm GetTime();
00144 long GetDuration();
00145 void* CreateArray(XSDTYPE nType, int nSize);
00146 void DeleteArray(Axis_Array* pArray , XSDTYPE nType);
00147 int GetStatus(){ return m_Status;};
00148 };
00149
00150 #endif // !defined(AFX_SOAPDESERIALIZER_H__FD0E7C3B_B887_480A_9E2A_20736A88B09B__INCLUDED_)