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 8192
00071
00072 class SoapEnvelope;
00073 class SoapHeader;
00074 class SoapMethod;
00075 class SoapBody;
00076 class SoapFault;
00077
00078
00086 class SoapDeSerializer : public IWrapperSoapDeSerializer, public IHandlerSoapDeSerializer
00087 {
00088 private:
00089 XMLStreamHandler* m_pHandler;
00090 SAX2XMLReader* m_pParser;
00091 const Ax_soapstream* m_pInputStream;
00092 char m_hugebuffer[HUGE_BUFFER_SIZE];
00093 Param* m_pLastArrayParam;
00094 int m_Status;
00095 public:
00096 int GetVersion();
00097 const AxisChar* GetMethodName();
00098 int Init();
00099 IParam* GetParam();
00100 int Deserialize(IParam* pIParam, int bHref);
00101 SoapFault* GetFault();
00102 SoapMethod* GetMethod();
00103 SoapBody* GetBody();
00104 ISoapHeader* GetHeader();
00105 SoapEnvelope* GetEnvelope();
00106 int SetInputStream(const Ax_soapstream* pInputStream);
00107 SoapDeSerializer();
00108 virtual ~SoapDeSerializer();
00110 Axis_Array GetArray(void* pDZFunct, void* pCreFunct, void* pDelFunct, void* pSizeFunct, const AxisChar* pchTypeName, const AxisChar* pchURI);
00112 Axis_Array GetArray(XSDTYPE nType);
00113 int GetArraySize();
00114 int GetArray(Axis_Array* pArray, XSDTYPE nType);
00116 void* GetObject(void* pDZFunct, void* pCreFunct, void* pDelFunct, const AxisChar* pchTypeName, const AxisChar* pchURI);
00117
00118
00119 int GetInt();
00120 unsigned int GetUnsignedInt();
00121 short GetShort();
00122 unsigned short GetUnsignedShort();
00123 char GetByte();
00124 unsigned char GetUnsignedByte();
00125 long GetLong();
00126 long GetInteger();
00127 unsigned long GetUnsignedLong();
00128 float GetFloat();
00129 double GetDouble();
00130 double GetDecimal();
00131 const AxisChar* GetString();
00132 const AxisChar* GetAnyURI();
00133 const AxisChar* GetQName();
00134 const AxisChar* GetHexString();
00135 const AxisChar* GetBase64String();
00138 struct tm GetDateTime();
00139 struct tm GetDate();
00140 struct tm GetTime();
00143 long GetDuration();
00144 void* CreateArray(XSDTYPE nType, int nSize);
00145 void DeleteArray(Axis_Array* pArray , XSDTYPE nType);
00146 int GetStatus(){ return m_Status;};
00147 };
00148
00149 #endif // !defined(AFX_SOAPDESERIALIZER_H__FD0E7C3B_B887_480A_9E2A_20736A88B09B__INCLUDED_)