You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by ro...@apache.org on 2003/08/01 16:34:54 UTC
cvs commit: xml-axis/c/src/soap SoapDeSerializer.h
roshan 2003/08/01 07:34:53
Modified: c/src/common MessageData.h MessageData.cpp
ISoapDeSerializer.h IMessageData.h IAccessBean.h
ArrayBean.h ArrayBean.cpp AccessBean.cpp
c/src/server/samples/serviceinteropbase BaseTestsWrapper.cpp
c/src/server/samples/serviceinteropgroupb
GroupBTestsWrapper.cpp
c/src/server/samples/webservicewrapper WebServiceWrapper.cpp
c/src/soap SoapDeSerializer.h
Added: c/src/common IWrapperSoapDeSerializer.h
IHandlerSoapDeSerializer.h
Log:
after introducing the new DeSerializer interfaces IWrapperSoapDeSerializer and IHandlerSoapDeSerializer
Revision Changes Path
1.7 +3 -1 xml-axis/c/src/common/MessageData.h
Index: MessageData.h
===================================================================
RCS file: /home/cvs/xml-axis/c/src/common/MessageData.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- MessageData.h 26 Jul 2003 11:45:24 -0000 1.6
+++ MessageData.h 1 Aug 2003 14:34:53 -0000 1.7
@@ -94,9 +94,11 @@
SoapSerializer* m_pSZ;
SoapDeSerializer* m_pDZ;
public:
+ void getSoapDeSerializer(IHandlerSoapDeSerializer** pIHandlerSoapDeSerializer);
+ void getSoapDeSerializer(IWrapperSoapDeSerializer** pIWrapperSoapDeSerializer);
void getSoapSerializer(IHandlerSoapSerializer** pIHandlerSoapSerializer);
void getSoapSerializer(IWrapperSoapSerializer** pIWrapperSoapSerializer);
- ISoapDeSerializer* getSoapDeserializer();
+ IWrapperSoapDeSerializer* getSoapDeserializer();
/*
comm on 25Jul2003 at 10.00am
ISoapSerializer* getSoapSerializer();
1.6 +11 -1 xml-axis/c/src/common/MessageData.cpp
Index: MessageData.cpp
===================================================================
RCS file: /home/cvs/xml-axis/c/src/common/MessageData.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- MessageData.cpp 26 Jul 2003 11:45:24 -0000 1.5
+++ MessageData.cpp 1 Aug 2003 14:34:53 -0000 1.6
@@ -120,7 +120,7 @@
}
*/
-ISoapDeSerializer* MessageData::getSoapDeserializer()
+IWrapperSoapDeSerializer* MessageData::getSoapDeserializer()
{
return m_pDZ;
}
@@ -145,4 +145,14 @@
void MessageData::getSoapSerializer(IWrapperSoapSerializer **pIWrapperSoapSerializer)
{
*pIWrapperSoapSerializer = dynamic_cast<IWrapperSoapSerializer*>(m_pSZ);
+}
+
+void MessageData::getSoapDeSerializer(IWrapperSoapDeSerializer **pIWrapperSoapDeSerializer)
+{
+ *pIWrapperSoapDeSerializer= dynamic_cast<IWrapperSoapDeSerializer*>(m_pDZ);
+}
+
+void MessageData::getSoapDeSerializer(IHandlerSoapDeSerializer **pIHandlerSoapDeSerializer)
+{
+ *pIHandlerSoapDeSerializer= dynamic_cast<IHandlerSoapDeSerializer*>(m_pDZ);
}
1.4 +1 -3 xml-axis/c/src/common/ISoapDeSerializer.h
Index: ISoapDeSerializer.h
===================================================================
RCS file: /home/cvs/xml-axis/c/src/common/ISoapDeSerializer.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- ISoapDeSerializer.h 26 Jul 2003 12:19:12 -0000 1.3
+++ ISoapDeSerializer.h 1 Aug 2003 14:34:53 -0000 1.4
@@ -73,9 +73,7 @@
class ISoapDeSerializer
{
public:
- virtual string& GetMethodName()=0;
- virtual IParam* GetParam()=0;
- virtual int Deserialize(IParam* pIParam, int bHref)=0;
+ virtual ~ISoapDeSerializer() {};
};
#endif // !defined(AFX_ISOAPDESERIALIZER_H__BE214866_1A80_44C4_9AAD_0475B0C5EA1C__INCLUDED_)
1.6 +7 -2 xml-axis/c/src/common/IMessageData.h
Index: IMessageData.h
===================================================================
RCS file: /home/cvs/xml-axis/c/src/common/IMessageData.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- IMessageData.h 26 Jul 2003 12:19:12 -0000 1.5
+++ IMessageData.h 1 Aug 2003 14:34:53 -0000 1.6
@@ -70,7 +70,8 @@
#include <string>
using namespace std;
-class ISoapDeSerializer;
+class IWrapperSoapDeSerializer;
+class IHandlerSoapDeSerializer;
//class ISoapSerializer;
class IHandlerSoapSerializer;
class IWrapperSoapSerializer;
@@ -84,7 +85,11 @@
comm on 26Jul2003 2.50pm
virtual ISoapSerializer* getSoapSerializer()=0;
*/
- virtual ISoapDeSerializer* getSoapDeserializer()=0;
+ virtual IWrapperSoapDeSerializer* getSoapDeserializer()=0;
+
+ virtual void getSoapDeSerializer(IWrapperSoapDeSerializer** pIWrapperSoapDeSerializer)=0;
+ virtual void getSoapDeSerializer(IHandlerSoapDeSerializer** pIHandlerSoapDeSerializer)=0;
+
virtual void SetUserName(string& m_sUserName)=0;
virtual string& GetUserName()=0;
virtual bool isPastPivot()=0;
1.3 +3 -3 xml-axis/c/src/common/IAccessBean.h
Index: IAccessBean.h
===================================================================
RCS file: /home/cvs/xml-axis/c/src/common/IAccessBean.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- IAccessBean.h 26 Jul 2003 12:19:12 -0000 1.2
+++ IAccessBean.h 1 Aug 2003 14:34:53 -0000 1.3
@@ -10,10 +10,10 @@
#endif // _MSC_VER > 1000
//this is a trick :-)
-#define ACCESSBEAN_SERIALIZABLE int DeSerialize(ISoapDeSerializer *pDZ);int Serialize(IWrapperSoapSerializer& pSZ); int GetSize();
+#define ACCESSBEAN_SERIALIZABLE int DeSerialize(IWrapperSoapDeSerializer *pDZ);int Serialize(IWrapperSoapSerializer& pSZ); int GetSize();
#include "IWrapperSoapSerializer.h"
-#include "ISoapDeSerializer.h"
+#include "IWrapperSoapDeSerializer.h"
class IAccessBean
{
@@ -22,7 +22,7 @@
public:
IAccessBean(){};
virtual ~IAccessBean(){};
- virtual int DeSerialize(ISoapDeSerializer *pDZ) = 0;
+ virtual int DeSerialize(IWrapperSoapDeSerializer *pDZ) = 0;
virtual int Serialize(IWrapperSoapSerializer& pSZ) = 0;
virtual int GetSize() = 0;
protected:
1.3 +1 -1 xml-axis/c/src/common/ArrayBean.h
Index: ArrayBean.h
===================================================================
RCS file: /home/cvs/xml-axis/c/src/common/ArrayBean.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ArrayBean.h 26 Jul 2003 12:17:00 -0000 1.2
+++ ArrayBean.h 1 Aug 2003 14:34:53 -0000 1.3
@@ -21,7 +21,7 @@
public:
ArrayBean();
virtual ~ArrayBean();
- virtual int DeSerialize(ISoapDeSerializer *pDZ);
+ virtual int DeSerialize(IWrapperSoapDeSerializer *pDZ);
virtual int Serialize(IWrapperSoapSerializer& pSZ);
int GetArraySize();
private:
1.3 +1 -1 xml-axis/c/src/common/ArrayBean.cpp
Index: ArrayBean.cpp
===================================================================
RCS file: /home/cvs/xml-axis/c/src/common/ArrayBean.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ArrayBean.cpp 26 Jul 2003 12:17:00 -0000 1.2
+++ ArrayBean.cpp 1 Aug 2003 14:34:53 -0000 1.3
@@ -100,7 +100,7 @@
}
}
*/
-int ArrayBean::DeSerialize(ISoapDeSerializer *pDZ)
+int ArrayBean::DeSerialize(IWrapperSoapDeSerializer *pDZ)
{
Param* p;
if ((XSD_UNKNOWN == m_type) ||(0==m_size.size())||(!m_value.sta)) return FAIL;
1.6 +1 -1 xml-axis/c/src/common/AccessBean.cpp
Index: AccessBean.cpp
===================================================================
RCS file: /home/cvs/xml-axis/c/src/common/AccessBean.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- AccessBean.cpp 26 Jul 2003 12:17:00 -0000 1.5
+++ AccessBean.cpp 1 Aug 2003 14:34:53 -0000 1.6
@@ -5,7 +5,7 @@
}
//this is never called. just default method
-int AccessBean::DeSerialize(ISoapDeSerializer *pDZ)
+int AccessBean::DeSerialize(IWrapperSoapDeSerializer *pDZ)
{
return SUCCESS;
}
1.1 xml-axis/c/src/common/IWrapperSoapDeSerializer.h
Index: IWrapperSoapDeSerializer.h
===================================================================
/* -*- C++ -*- */
/*
* The Apache Software License, Version 1.1
*
*
* Copyright (c) 2002 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "SOAP" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
*
*
*
* @author Roshan Weerasuriya (roshan@jkcs.slt.lk, roshan@opensource.lk)
*
*/
// IWrapperSoapDeSerializer.h: interface for the IWrapperSoapDeSerializer class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_IWRAPPERSOAPDESERIALIZER_H__A6C89D23_4098_4A73_BFD7_D8F115AD9BA0__INCLUDED_)
#define AFX_IWRAPPERSOAPDESERIALIZER_H__A6C89D23_4098_4A73_BFD7_D8F115AD9BA0__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "ISoapDeSerializer.h"
#include <string>
using namespace std;
class IParam;
class IWrapperSoapDeSerializer : public ISoapDeSerializer
{
public:
virtual string& GetMethodName()=0;
virtual IParam* GetParam()=0;
virtual int Deserialize(IParam* pIParam, int bHref)=0;
virtual ~IWrapperSoapDeSerializer() {};
};
#endif // !defined(AFX_IWRAPPERSOAPDESERIALIZER_H__A6C89D23_4098_4A73_BFD7_D8F115AD9BA0__INCLUDED_)
1.1 xml-axis/c/src/common/IHandlerSoapDeSerializer.h
Index: IHandlerSoapDeSerializer.h
===================================================================
/* -*- C++ -*- */
/*
* The Apache Software License, Version 1.1
*
*
* Copyright (c) 2002 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "SOAP" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
*
*
*
* @author Roshan Weerasuriya (roshan@jkcs.slt.lk, roshan@opensource.lk)
*
*/
// IHandlerSoapDeSerializer.h: interface for the IHandlerSoapDeSerializer class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_IHANDLERSOAPDESERIALIZER_H__EAD744F9_FEB3_4885_9510_D7BAD8C5AD1C__INCLUDED_)
#define AFX_IHANDLERSOAPDESERIALIZER_H__EAD744F9_FEB3_4885_9510_D7BAD8C5AD1C__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class IHandlerSoapDeSerializer : public ISoapDeSerializer
{
public:
virtual ~IHandlerSoapDeSerializer() {};
};
#endif // !defined(AFX_IHANDLERSOAPDESERIALIZER_H__EAD744F9_FEB3_4885_9510_D7BAD8C5AD1C__INCLUDED_)
1.4 +1 -1 xml-axis/c/src/server/samples/serviceinteropbase/BaseTestsWrapper.cpp
Index: BaseTestsWrapper.cpp
===================================================================
RCS file: /home/cvs/xml-axis/c/src/server/samples/serviceinteropbase/BaseTestsWrapper.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- BaseTestsWrapper.cpp 27 Jul 2003 07:11:15 -0000 1.3
+++ BaseTestsWrapper.cpp 1 Aug 2003 14:34:53 -0000 1.4
@@ -3,7 +3,7 @@
//////////////////////////////////////////////////////////////////////
#include "BaseTestsWrapper.h"
-#include "../../../common/ISoapDeSerializer.h"
+#include "../../../common/IWrapperSoapDeSerializer.h"
#include "../../../common/IWrapperSoapSerializer.h"
#include "../../../common/BasicTypeSerializer.h"
1.4 +1 -1 xml-axis/c/src/server/samples/serviceinteropgroupb/GroupBTestsWrapper.cpp
Index: GroupBTestsWrapper.cpp
===================================================================
RCS file: /home/cvs/xml-axis/c/src/server/samples/serviceinteropgroupb/GroupBTestsWrapper.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- GroupBTestsWrapper.cpp 27 Jul 2003 07:11:44 -0000 1.3
+++ GroupBTestsWrapper.cpp 1 Aug 2003 14:34:53 -0000 1.4
@@ -3,7 +3,7 @@
//////////////////////////////////////////////////////////////////////
#include "GroupBTestsWrapper.h"
-#include "../../../common/ISoapDeSerializer.h"
+#include "../../../common/IWrapperSoapDeSerializer.h"
#include "../../../common/IWrapperSoapSerializer.h"
#include "../../../common/BasicTypeSerializer.h"
1.7 +34 -17 xml-axis/c/src/server/samples/webservicewrapper/WebServiceWrapper.cpp
Index: WebServiceWrapper.cpp
===================================================================
RCS file: /home/cvs/xml-axis/c/src/server/samples/webservicewrapper/WebServiceWrapper.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- WebServiceWrapper.cpp 27 Jul 2003 07:12:40 -0000 1.6
+++ WebServiceWrapper.cpp 1 Aug 2003 14:34:53 -0000 1.7
@@ -66,9 +66,9 @@
//////////////////////////////////////////////////////////////////////
#include "WebServiceWrapper.h"
-#include "../../../common/ISoapDeserializer.h"
+#include "../../../common/IWrapperSoapDeSerializer.h"
+#include "../../../common/IHandlerSoapDeSerializer.h"
#include "../../../common/IWrapperSoapSerializer.h"
-#include "../../../common/BasicTypeSerializer.h"
#include "../../../common/ISoapMethod.h"
#include "../../../common/IParam.h"
#include "../../../common/IAccessBean.h"
@@ -90,7 +90,10 @@
// Implementation of WrapperClassHandler interfaces.
int webservicewrapper::Invoke(IMessageData* mc)
{
- string method = mc->getSoapDeserializer()->GetMethodName();
+ IWrapperSoapDeSerializer* pIWrapperSoapDeSerializer;
+ mc->getSoapDeSerializer(&pIWrapperSoapDeSerializer);
+ string method = pIWrapperSoapDeSerializer->GetMethodName();
+
if ((method == "Echo") || (method == "echo"))
return Echo(mc);
else if ((method == "Add") || (method == "add"))
@@ -137,7 +140,9 @@
int webservicewrapper::Echo(IMessageData* mc)
{
SetResponseMethod(mc, "Echo");
- IParam *param1 = mc->getSoapDeserializer()->GetParam();
+ IWrapperSoapDeSerializer* pIWrapperSoapDeSerializer;
+ mc->getSoapDeSerializer(&pIWrapperSoapDeSerializer);
+ IParam *param1 = pIWrapperSoapDeSerializer->GetParam();
//We know that parameter 1 should be an string
string str = param1->GetString();
//Call actual web service method with appropriate parameters
@@ -165,8 +170,10 @@
int webservicewrapper::Add(IMessageData* mc)
{
SetResponseMethod(mc, "Add");
- IParam *param1 = mc->getSoapDeserializer()->GetParam();
- IParam *param2 = mc->getSoapDeserializer()->GetParam();
+ IWrapperSoapDeSerializer* pIWrapperSoapDeSerializer;
+ mc->getSoapDeSerializer(&pIWrapperSoapDeSerializer);
+ IParam *param1 = pIWrapperSoapDeSerializer->GetParam();
+ IParam *param2 = pIWrapperSoapDeSerializer->GetParam();
//Convert parameters to actual types
int i1 = param1->GetInt();
int i2 = param2->GetInt();
@@ -196,11 +203,13 @@
int webservicewrapper::EchoIntArray(IMessageData *mc)
{
SetResponseMethod(mc, "EchoIntArray");
- IParam *param1 = mc->getSoapDeserializer()->GetParam();
+ IWrapperSoapDeSerializer* pIWrapperSoapDeSerializer;
+ mc->getSoapDeSerializer(&pIWrapperSoapDeSerializer);
+ IParam *param1 = pIWrapperSoapDeSerializer->GetParam();
int size = param1->GetArraySize(); //gets full array size
int * arr = new int[size];
param1->SetArrayElements((void*)arr);
- mc->getSoapDeserializer()->Deserialize(param1,0);
+ pIWrapperSoapDeSerializer->Deserialize(param1,0);
int retarrsize = 0;
int * retarr;
@@ -244,15 +253,17 @@
{
SetResponseMethod(mc, "AddPoint");
- IParam *param1 = mc->getSoapDeserializer()->GetParam();
+ IWrapperSoapDeSerializer* pIWrapperSoapDeSerializer;
+ mc->getSoapDeSerializer(&pIWrapperSoapDeSerializer);
+ IParam *param1 = pIWrapperSoapDeSerializer->GetParam();
Point* p1 = new Point();
param1->SetUserType(p1);
- mc->getSoapDeserializer()->Deserialize(param1,0);
+ pIWrapperSoapDeSerializer->Deserialize(param1,0);
- IParam *param2 = mc->getSoapDeserializer()->GetParam();
+ IParam *param2 = pIWrapperSoapDeSerializer->GetParam();
Point* p2 = new Point();
param2->SetUserType(p2);
- mc->getSoapDeserializer()->Deserialize(param2,0);
+ pIWrapperSoapDeSerializer->Deserialize(param2,0);
Point* pRet = pWs->AddPoint(p1, p2);
@@ -277,11 +288,14 @@
int webservicewrapper::EchoPointArray(IMessageData *mc)
{
SetResponseMethod(mc, "EchoPointArray");
- IParam *param1 = mc->getSoapDeserializer()->GetParam();
+
+ IWrapperSoapDeSerializer* pIWrapperSoapDeSerializer;
+ mc->getSoapDeSerializer(&pIWrapperSoapDeSerializer);
+ IParam *param1 = pIWrapperSoapDeSerializer->GetParam();
int size = param1->GetArraySize(); //gets full array size
Point* arr = new Point[size];
param1->SetArrayElements((void*)arr);
- mc->getSoapDeserializer()->Deserialize(param1,0);
+ pIWrapperSoapDeSerializer->Deserialize(param1,0);
Point* pRet = pWs->EchoPointArray(size, arr,&size);
//delete [] arr;
@@ -314,7 +328,7 @@
return SUCCESS;
}
-int Point::DeSerialize(ISoapDeSerializer *pDZ)
+int Point::DeSerialize(IWrapperSoapDeSerializer *pDZ)
{
x = pDZ->GetParam()->GetInt();
y = pDZ->GetParam()->GetInt();
@@ -326,9 +340,12 @@
m_URI = "http://www.opensource.lk/Axis/";
m_TypeName = "Point";
pSZ << "<" << m_TypeName.c_str() << " xsi:type=\"ns1:" << m_TypeName.c_str() << " xmlns:ns1=\"" << m_URI.c_str() << "\">";
- pSZ << BasicTypeSerializer::serialize("x", x).c_str();
- pSZ << BasicTypeSerializer::serialize("y", y).c_str();
+
+ pSZ << pSZ.SerializeBasicType("x", x).c_str();
+ pSZ << pSZ.SerializeBasicType("y", y).c_str();
+
pSZ << "</" << m_TypeName.c_str() << ">";
+
return SUCCESS;
}
1.5 +3 -2 xml-axis/c/src/soap/SoapDeSerializer.h
Index: SoapDeSerializer.h
===================================================================
RCS file: /home/cvs/xml-axis/c/src/soap/SoapDeSerializer.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- SoapDeSerializer.h 21 Jul 2003 14:21:09 -0000 1.4
+++ SoapDeSerializer.h 1 Aug 2003 14:34:53 -0000 1.5
@@ -71,7 +71,8 @@
#pragma once
#endif // _MSC_VER > 1000
-#include "../common/ISoapDeSerializer.h"
+#include "../common/IWrapperSoapDeSerializer.h"
+#include "../common/IHandlerSoapDeSerializer.h"
#include "XMLStreamHandler.h"
class SoapEnvelope;
@@ -80,7 +81,7 @@
class SoapBody;
class SoapFault;
-class SoapDeSerializer : public ISoapDeSerializer
+class SoapDeSerializer : public IWrapperSoapDeSerializer, public IHandlerSoapDeSerializer
{
private:
XMLStreamHandler* m_pHandler;