axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From susan...@apache.org
Subject cvs commit: ws-axis/c/vc/server/samples/cservicewrapper cservicewrapper.dsp
Date Fri, 07 Nov 2003 09:46:21 GMT
susantha    2003/11/07 01:46:21

  Modified:    c/include/axis/common Tag: CWrapperSupport ArrayBean.h
                        AxisWrapperAPI.h BasicHandler.h GDefine.h Handler.h
                        IMessageData.h ISoapDeSerializer.h
                        IWrapperSoapDeSerializer.h IWrapperSoapSerializer.h
                        MessageData.h Param.h TypeMapping.h
                        WrapperClassHandler.h
               c/include/axis/engine Tag: CWrapperSupport HandlerChain.h
               c/include/axis/soap Tag: CWrapperSupport SoapDeSerializer.h
                        SoapSerializer.h
               c/src/client Tag: CWrapperSupport Call.cpp
               c/src/client/samples/Calculator Tag: CWrapperSupport
                        CalcClient.cpp Point.cpp
               c/src/common Tag: CWrapperSupport ArrayBean.cpp Param.cpp
               c/src/server/samples/cppservicewrapper Tag: CWrapperSupport
                        CPPServiceWrapper.cpp CPPServiceWrapper.hpp
               c/src/server/samples/interoptests/base Tag: CWrapperSupport
                        InteropTestPortTypeWrapper.h
               c/src/server/samples/interoptests/groupB Tag:
                        CWrapperSupport InteropTestPortTypeBWrapper.h
               c/src/soap Tag: CWrapperSupport SoapDeSerializer.cpp
                        SoapSerializer.cpp
               c/vc/server/apache1_3 Tag: CWrapperSupport Apache1_3.dsp
               c/vc/server/samples/cservicewrapper Tag: CWrapperSupport
                        cservicewrapper.dsp
  Log:
  Commiting modified code to th CWrapperSupport branch. This change includes,
  1. Modification of the code base to support C wrappers
  2. Simple Server side C Wrapper (completely C web service)
  
  Revision  Changes    Path
  No                   revision
  No                   revision
  1.1.4.1   +2 -2      ws-axis/c/include/axis/common/ArrayBean.h
  
  Index: ArrayBean.h
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/include/axis/common/ArrayBean.h,v
  retrieving revision 1.1
  retrieving revision 1.1.4.1
  diff -u -r1.1 -r1.1.4.1
  --- ArrayBean.h	20 Oct 2003 03:18:18 -0000	1.1
  +++ ArrayBean.h	7 Nov 2003 09:46:16 -0000	1.1.4.1
  @@ -79,8 +79,8 @@
   public:
   	ArrayBean();
   	virtual ~ArrayBean();
  -	virtual int DeSerialize(IWrapperSoapDeSerializer *pDZ);
  -	virtual int Serialize(IWrapperSoapSerializer& pSZ);
  +	virtual int DeSerialize(SoapDeSerializer *pDZ);
  +	virtual int Serialize(SoapSerializer& pSZ);
   	int GetArraySize();
   private:
   	int GetArrayBlockSize(list<int>::iterator it);
  
  
  
  1.2.4.2   +3 -14     ws-axis/c/include/axis/common/AxisWrapperAPI.h
  
  Index: AxisWrapperAPI.h
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/include/axis/common/AxisWrapperAPI.h,v
  retrieving revision 1.2.4.1
  retrieving revision 1.2.4.2
  diff -u -r1.2.4.1 -r1.2.4.2
  --- AxisWrapperAPI.h	30 Oct 2003 08:15:51 -0000	1.2.4.1
  +++ AxisWrapperAPI.h	7 Nov 2003 09:46:16 -0000	1.2.4.2
  @@ -69,17 +69,6 @@
   #include "IWrapperSoapDeSerializer.h"
   #include "IWrapperSoapSerializer.h"
   
  -#ifdef __cplusplus
  -#define AXISAPI_CPP(M, P) M P;
  -#define AXISAPI_C(M, P)
  -#define AXISCALL(M) __stdcall M
  -#else
  -#define virtual 
  -#define AXISAPI_CPP(M, P)
  -#define AXISAPI_C(M, P) M P;
  -#define AXISCALL(M) (__stdcall* M)
  -#endif
  -
   /**
    * Function that deserializes a custom type 
    */
  @@ -88,17 +77,17 @@
    * Function used to create a custom type. bArray is true if array of objects to be
    * created. Then nSize is the size of that array.
    */
  -typedef void* (* AXIS_OBJECT_CREATE_FUNCT)(bool bArray=false, int nSize=0);
  +typedef void* (* AXIS_OBJECT_CREATE_FUNCT)(bool bArray, int nSize);
   /**
    * Function used to delete a custom type. bArray is true if void* is a pointer to an array. 
    * Then nSize is the size of that array.
    */
  -typedef void (* AXIS_OBJECT_DELETE_FUNCT)(void*, bool bArray=false, int nSize=0);
  +typedef void (* AXIS_OBJECT_DELETE_FUNCT)(void*, bool bArray, int nSize);
   /**
    * Function that serializes a custom type. bArray indicates that the object in void* is 
    * an element of an array (note that void* is not itself an array).
    */
  -typedef int (* AXIS_SERIALIZE_FUNCT)(void*, IWrapperSoapSerializer&, bool bArray=false);
  +typedef int (* AXIS_SERIALIZE_FUNCT)(void*, IWrapperSoapSerializer*, bool bArray);
   /**
    * Function that is used to get the size of an object of a custom type.
    */
  
  
  
  1.1.4.1   +27 -7     ws-axis/c/include/axis/common/BasicHandler.h
  
  Index: BasicHandler.h
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/include/axis/common/BasicHandler.h,v
  retrieving revision 1.1
  retrieving revision 1.1.4.1
  diff -u -r1.1 -r1.1.4.1
  --- BasicHandler.h	20 Oct 2003 03:18:19 -0000	1.1
  +++ BasicHandler.h	7 Nov 2003 09:46:16 -0000	1.1.4.1
  @@ -70,19 +70,39 @@
   
   #include "IMessageData.h"
   #include "GDefine.h"
  +#include "AxisWrapperAPI.h"
   
   enum HANDLER_TYPE { NORMAL_HANDLER, WEBSERVICE_HANDLER, CHAIN_HANDLER };
   
  +
  +#ifdef __cplusplus
  +
   class BasicHandler  
   {
   public:
  -	BasicHandler(){};
   	virtual ~BasicHandler(){};
  -	virtual int Invoke(IMessageData* pMsg) = 0;
  -	virtual void OnFault(IMessageData* pMsg) = 0;
  -	virtual int GetType() = 0;
  -	virtual int Init() = 0;
  -	virtual int Fini() = 0;	
  -};
   
  +#else
  +
  +typedef struct BasicHandlerTag
  +{
  +	void* __vfptr;
  +} BasicHandler;
  +typedef struct BasicHandlerXTag
  +{
  +	void AXISAPI(destructor, (APINOPARAMS))
  +
  +#endif
  +
  +	virtual int AXISAPI(Invoke, (APIHASPARAMS IMessageData* pMsg))
  +	virtual void AXISAPI(OnFault, (APIHASPARAMS IMessageData* mMsg))
  +	virtual int AXISAPI(GetType, (APINOPARAMS))
  +	virtual int AXISAPI(Init, (APINOPARAMS))
  +	virtual int AXISAPI(Fini, (APINOPARAMS))
  +
  +#ifdef __cplusplus
  +};
  +#else
  +} BasicHandlerX;
  +#endif
   #endif // !defined(AFX_BASICHANDLER_H__FFF77AB5_015C_4B48_9BAC_D84A7C493015__INCLUDED_)
  
  
  
  1.1.4.1   +30 -2     ws-axis/c/include/axis/common/GDefine.h
  
  Index: GDefine.h
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/include/axis/common/GDefine.h,v
  retrieving revision 1.1
  retrieving revision 1.1.4.1
  diff -u -r1.1 -r1.1.4.1
  --- GDefine.h	20 Oct 2003 03:18:19 -0000	1.1
  +++ GDefine.h	7 Nov 2003 09:46:16 -0000	1.1.4.1
  @@ -75,10 +75,12 @@
   #define SOAPACTIONHEADER "SOAPAction"
   
   #define AxisChar char //Charactor used in Axis
  -#define AxisString basic_string<char> //String used in Axis
  -
   #define AxisXMLCh char //Xerces uses 16 bit char always.
  +
  +#ifdef __cplusplus
  +#define AxisString basic_string<char> //String used in Axis
   #define AxisXMLString basic_string<AxisXMLCh>
  +#endif
   
   #ifdef WIN32
       #define AxisSprintf(X, Y, Z, W) sprintf(X, Z, W)
  @@ -89,5 +91,31 @@
   extern void Ax_Sleep(int);
   extern void ModuleInitialize();
   extern void ModuleUnInitialize();
  +
  +/**
  + * Following macro define an API function of Axis C++
  + * Format of the AXISAPI macro is as follows
  + *		AXISAPI(<METHOD NAME>, <PARAMETER LIST>)
  + */
  +#define AXISCALL __stdcall
  +
  +#ifdef __cplusplus
  +#define AXISAPI(M, P) AXISCALL M P = 0;
  +#define APIHASPARAMS
  +#define APINOPARAMS 
  +#else //C
  +#define virtual 
  +#if !defined(bool)
  +#define bool unsigned char
  +#define false 0
  +#define true 1
  +#endif
  +#if !defined(NULL)
  +#define NULL 0
  +#endif
  +#define AXISAPI(M, P) (AXISCALL* M) P;
  +#define APIHASPARAMS void*p,
  +#define APINOPARAMS void*p
  +#endif
   
   #endif /*__GDEFINE_INCLUDED__*/
  
  
  
  1.4.4.1   +1 -1      ws-axis/c/include/axis/common/Handler.h
  
  Index: Handler.h
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/include/axis/common/Handler.h,v
  retrieving revision 1.4
  retrieving revision 1.4.4.1
  diff -u -r1.4 -r1.4.4.1
  --- Handler.h	26 Oct 2003 07:29:43 -0000	1.4
  +++ Handler.h	7 Nov 2003 09:46:16 -0000	1.4.4.1
  @@ -81,7 +81,7 @@
   
     virtual const string& GetOption(const string& sArg)=0;
     virtual void SetOptionList(const map<string, string>* OptionList)=0;
  -  int GetType(){return NORMAL_HANDLER;};
  +  int AXISCALL GetType(){return NORMAL_HANDLER;};
   
   
   protected:
  
  
  
  1.2.4.1   +37 -17    ws-axis/c/include/axis/common/IMessageData.h
  
  Index: IMessageData.h
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/include/axis/common/IMessageData.h,v
  retrieving revision 1.2
  retrieving revision 1.2.4.1
  diff -u -r1.2 -r1.2.4.1
  --- IMessageData.h	22 Oct 2003 11:37:08 -0000	1.2
  +++ IMessageData.h	7 Nov 2003 09:46:16 -0000	1.2.4.1
  @@ -67,38 +67,56 @@
   #if !defined(AFX_IMESSAGEDATA_H__EEFDCDB4_6ABA_48CA_8B45_B4FDA6045822__INCLUDED_)
   #define AFX_IMESSAGEDATA_H__EEFDCDB4_6ABA_48CA_8B45_B4FDA6045822__INCLUDED_
   
  +#include "AxisWrapperAPI.h"
  +
  +#ifdef __cplusplus
  +
   #include "../wsdd/WSDDService.h"
   #include <string>
   using namespace std;
   
  -class IWrapperSoapDeSerializer;
  -class IHandlerSoapDeSerializer;
  -//class ISoapSerializer;
  -class IHandlerSoapSerializer;
  -class IWrapperSoapSerializer;
  +#include "IWrapperSoapDeSerializer.h"
  +#include "IWrapperSoapSerializer.h"
  +#include "IHandlerSoapDeSerializer.h"
  +#include "IHandlerSoapSerializer.h"
   class IDeployerUtils;
   
  +#else
  +
  +#endif
  +
  +#ifdef __cplusplus
  +
   class IMessageData
   {
  +public:
  +    virtual ~IMessageData(){};
  +#else
  +
  +typedef struct IMessageDataTag
  +{
  +	void* __vfptr;
  +} IMessageData;
  +
  +typedef struct IMessageDataXTag
  +{
  +	void AXISAPI(destructor, (APINOPARAMS))
  +
  +#endif
  +	
  +	virtual void AXISAPI(getSoapSerializer,(APIHASPARAMS IWrapperSoapSerializer** pIWSS))
  +	virtual void AXISAPI(getSoapDeSerializer,(APIHASPARAMS IWrapperSoapDeSerializer** pIWSDS))
  +
  +#ifdef __cplusplus
  +
   	friend class CPP_DeploymentWrapper;
   private:
   	virtual void getWSDDDeployment(IDeployerUtils** pIDeployerUtils) = 0;
   public:
  -    virtual ~IMessageData(){};
   	virtual int setProperty(string& sName, string& sValue)=0;
   	virtual string& getProperty(string& sName)=0;
  -
   	virtual void getSoapSerializer(IHandlerSoapSerializer** pIHandlerSoapSerializer)=0;
  -	virtual void getSoapSerializer(IWrapperSoapSerializer** pIWrapperSoapSerializer)=0;
  -	/*
  -	comm on 26Jul2003 2.50pm
  -	virtual ISoapSerializer* getSoapSerializer()=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 void SetService(const WSDDService* argService) = 0;
  @@ -109,7 +127,9 @@
   protected:
     string m_sUserName;  
   };
  -
  +#else
  +} IMessageDataX;
  +#endif
   #endif // !defined(AFX_IMESSAGEDATA_H__EEFDCDB4_6ABA_48CA_8B45_B4FDA6045822__INCLUDED_)
   
   
  
  
  
  1.1.4.1   +0 -4      ws-axis/c/include/axis/common/ISoapDeSerializer.h
  
  Index: ISoapDeSerializer.h
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/include/axis/common/ISoapDeSerializer.h,v
  retrieving revision 1.1
  retrieving revision 1.1.4.1
  diff -u -r1.1 -r1.1.4.1
  --- ISoapDeSerializer.h	20 Oct 2003 03:18:19 -0000	1.1
  +++ ISoapDeSerializer.h	7 Nov 2003 09:46:16 -0000	1.1.4.1
  @@ -66,10 +66,6 @@
   #if !defined(AFX_ISOAPDESERIALIZER_H__BE214866_1A80_44C4_9AAD_0475B0C5EA1C__INCLUDED_)
   #define AFX_ISOAPDESERIALIZER_H__BE214866_1A80_44C4_9AAD_0475B0C5EA1C__INCLUDED_
   
  -#include <string>
  -using namespace std;
  -class IParam;
  -
   class ISoapDeSerializer
   {
   public:
  
  
  
  1.2.4.1   +55 -33    ws-axis/c/include/axis/common/IWrapperSoapDeSerializer.h
  
  Index: IWrapperSoapDeSerializer.h
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/include/axis/common/IWrapperSoapDeSerializer.h,v
  retrieving revision 1.2
  retrieving revision 1.2.4.1
  diff -u -r1.2 -r1.2.4.1
  --- IWrapperSoapDeSerializer.h	21 Oct 2003 15:09:42 -0000	1.2
  +++ IWrapperSoapDeSerializer.h	7 Nov 2003 09:46:16 -0000	1.2.4.1
  @@ -56,6 +56,7 @@
    *
    *
    *
  + * @author Susantha Kumara (skumara@virtusa.com, susantha@opensource.lk)
    * @author Roshan Weerasuriya (roshan@jkcs.slt.lk, roshan@opensource.lk)
    *
    */
  @@ -67,10 +68,14 @@
   #if !defined(AFX_IWRAPPERSOAPDESERIALIZER_H__A6C89D23_4098_4A73_BFD7_D8F115AD9BA0__INCLUDED_)
   #define AFX_IWRAPPERSOAPDESERIALIZER_H__A6C89D23_4098_4A73_BFD7_D8F115AD9BA0__INCLUDED_
   
  -#include "ISoapDeSerializer.h"
  +
   #include "GDefine.h"
   #include "AxisUserAPI.h"
   #include "TypeMapping.h"
  +
  +#ifdef __cplusplus
  +
  +#include "ISoapDeSerializer.h"
   #include <string>
   using namespace std;
   class IParam;
  @@ -78,46 +83,63 @@
   class IWrapperSoapDeSerializer : public virtual ISoapDeSerializer
   {
   public:
  -	virtual const AxisChar* GetMethodName()=0;
  -	virtual IParam* GetParam()=0;
  -	virtual int Deserialize(IParam* pIParam, int bHref)=0;
  -	virtual ~IWrapperSoapDeSerializer() {};
  +	virtual ~IWrapperSoapDeSerializer(){};
  +
  +#else
  +
  +typedef struct IWrapperSoapDeSerializerTag
  +{
  +	void* __vfptr;
  +} IWrapperSoapDeSerializer;
  +
  +typedef struct IWrapperSoapDeSerializerXTag
  +{
  +	void AXISAPI(destructor,(APINOPARAMS))
  +
  +#endif
  +	
  +	virtual const AxisChar* AXISAPI(GetMethodName,(APINOPARAMS))
  +//	virtual int AXISAPI(Deserialize,(APIHASPARAMS IParam* pIParam, int bHref));
   
   	/* Method used by wrappers to get a deserialized Array of complex types */
  -	virtual Axis_Array GetArray(void* pDZFunct, void* pCreFunct, void* pDelFunct, void* pSizeFunct, const AxisChar* pchTypeName, const AxisChar* pchURI)=0;
  +	virtual Axis_Array AXISAPI(GetCmplxArray,(APIHASPARAMS void* pDZFunct, void* pCreFunct, void* pDelFunct, void* pSizeFunct, const AxisChar* pchTypeName, const AxisChar* pchURI))
   	/* Method used by wrappers to get a deserialized Array of basic types */
  -	virtual Axis_Array GetArray(XSDTYPE nType)=0;
  -	virtual int GetArraySize()=0;
  -	virtual int GetArray(Axis_Array* pArray, XSDTYPE nType)=0;
  +	virtual Axis_Array AXISAPI(GetBasicArray,(APIHASPARAMS XSDTYPE nType))
  +	virtual int AXISAPI(GetArraySize,(APINOPARAMS))
  +	virtual int AXISAPI(GetArray,(APIHASPARAMS Axis_Array* pArray, XSDTYPE nType))
   	/* Method used by wrappers to get a deserialized single object of complex type */
  -	virtual void* GetObject(void* pDZFunct, void* pCreFunct, void* pDelFunct, const AxisChar* pchTypeName, const AxisChar* pchURI)=0;
  +	virtual void* AXISAPI(GetObject,(APIHASPARAMS void* pDZFunct, void* pCreFunct, void* pDelFunct, const AxisChar* pchTypeName, const AxisChar* pchURI))
   	
   	/* Methods used by wrappers to get a deserialized value of basic types */
  -	virtual int GetInt() = 0;
  -    virtual unsigned int GetUnsignedInt() = 0;
  -    virtual short GetShort() = 0;
  -    virtual unsigned short GetUnsignedShort() = 0;
  -    virtual char GetByte() = 0;
  -    virtual unsigned char GetUnsignedByte() = 0;
  -    virtual long GetLong() = 0;
  -    virtual long GetInteger() = 0;
  -    virtual unsigned long GetUnsignedLong() = 0;
  -	virtual float GetFloat() = 0;
  -    virtual double GetDouble() = 0;
  -    virtual double GetDecimal() = 0;
  -	virtual const AxisChar* GetString() = 0;
  -    virtual const AxisChar* GetAnyURI() = 0;
  -    virtual const AxisChar* GetQName() = 0;
  -	virtual const AxisChar* GetHexString() = 0;
  -	virtual const AxisChar* GetBase64String() = 0;
  +	virtual int AXISAPI(GetInt,(APINOPARAMS))
  +    virtual unsigned int AXISAPI(GetUnsignedInt,(APINOPARAMS))
  +    virtual short AXISAPI(GetShort,(APINOPARAMS))
  +    virtual unsigned short AXISAPI(GetUnsignedShort,(APINOPARAMS))
  +    virtual char AXISAPI(GetByte,(APINOPARAMS))
  +    virtual unsigned char AXISAPI(GetUnsignedByte,(APINOPARAMS))
  +    virtual long AXISAPI(GetLong,(APINOPARAMS))
  +    virtual long AXISAPI(GetInteger,(APINOPARAMS))
  +    virtual unsigned long AXISAPI(GetUnsignedLong,(APINOPARAMS))
  +	virtual float AXISAPI(GetFloat,(APINOPARAMS))
  +    virtual double AXISAPI(GetDouble,(APINOPARAMS))
  +    virtual double AXISAPI(GetDecimal,(APINOPARAMS))
  +	virtual const AxisChar* AXISAPI(GetString,(APINOPARAMS))
  +    virtual const AxisChar* AXISAPI(GetAnyURI,(APINOPARAMS))
  +    virtual const AxisChar* AXISAPI(GetQName,(APINOPARAMS))
  +	virtual const AxisChar* AXISAPI(GetHexString,(APINOPARAMS))
  +	virtual const AxisChar* AXISAPI(GetBase64String,(APINOPARAMS))
       /*return a tm struct which contain year-month-date-hour-
         minute-second*/
  -    virtual struct tm GetDateTime() = 0;
  -    virtual struct tm GetDate() = 0;
  -    virtual struct tm GetTime() = 0;
  -    /*return a tm struct which contain years-months-dates-hours-
  -      minutes-seconds which represents a duration*/
  -    virtual long GetDuration() = 0;
  +    virtual struct tm AXISAPI(GetDateTime,(APINOPARAMS))
  +    virtual struct tm AXISAPI(GetDate,(APINOPARAMS))
  +    virtual struct tm AXISAPI(GetTime,(APINOPARAMS))
  +    virtual long AXISAPI(GetDuration,(APINOPARAMS))
  +//	virtual IParam* AXISAPI(GetParam,(APINOPARAMS))
  +
  +#ifdef __cplusplus
   };
  +#else
  +} IWrapperSoapDeSerializerX;
  +#endif
   
   #endif // !defined(AFX_IWRAPPERSOAPDESERIALIZER_H__A6C89D23_4098_4A73_BFD7_D8F115AD9BA0__INCLUDED_)
  
  
  
  1.2.4.1   +46 -22    ws-axis/c/include/axis/common/IWrapperSoapSerializer.h
  
  Index: IWrapperSoapSerializer.h
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/include/axis/common/IWrapperSoapSerializer.h,v
  retrieving revision 1.2
  retrieving revision 1.2.4.1
  diff -u -r1.2 -r1.2.4.1
  --- IWrapperSoapSerializer.h	21 Oct 2003 15:09:42 -0000	1.2
  +++ IWrapperSoapSerializer.h	7 Nov 2003 09:46:16 -0000	1.2.4.1
  @@ -57,6 +57,7 @@
    *
    *
    *
  + * @author Susantha Kumara (skumara@virtusa.com, susantha@opensource.lk)
    * @author Roshan Weerasuriya (roshan@jkcs.slt.lk, roshan@opensource.lk)
    *
    */
  @@ -68,18 +69,48 @@
   #if !defined(AFX_IWRAPPERSOAPSERIALIZER_H__D3E794EC_8A67_4E0E_BE28_583DCDCE1C42__INCLUDED_)
   #define AFX_IWRAPPERSOAPSERIALIZER_H__D3E794EC_8A67_4E0E_BE28_583DCDCE1C42__INCLUDED_
   
  -class ISoapMethod;
  -//class IArrayBean;
  -class IParam;
  -union uParamValue;
  +#ifdef __cplusplus
  +
  +#include "AxisUserAPI.h"
   #include "TypeMapping.h"
   #include "ISoapSerializer.h"
  -#include "IArrayBean.h"
   
   class IWrapperSoapSerializer  : public virtual ISoapSerializer
   {
  -public:	
  +public:
  +	virtual ~IWrapperSoapSerializer(){};
  +
  +#else
  +
  +typedef struct IWrapperSoapSerializerTag
  +{
  +	void* __vfptr;
  +} IWrapperSoapSerializer;
  +
  +typedef struct IWrapperSoapSerializerXTag
  +{
  +	void AXISAPI(destructor,(APINOPARAMS))
  +
  +#endif
  +	
  +	virtual int AXISAPI(createSoapMethod,(APIHASPARAMS const AxisChar* sLocalName, const AxisChar* sPrefix, const AxisChar* sURI))
  +	virtual const AxisChar* AXISAPI(getNewNamespacePrefix,(APINOPARAMS))
   	//for basic types
  +	virtual int AXISAPI(AddOutputParam,(APIHASPARAMS const AxisChar* pchName, void* pValue, XSDTYPE type))
  +	//for arrays
  +	virtual int AXISAPI(AddOutputCmplxArrayParam,(APIHASPARAMS const AxisChar* pchName, const Axis_Array* pArray, void* pSZFunct, void* pDelFunct, void* pSizeFunct, const AxisChar* pchTypeName, const AxisChar* pchURI))
  +	virtual int AXISAPI(AddOutputBasicArrayParam,(APIHASPARAMS const AxisChar* pchName, const Axis_Array* pArray, XSDTYPE nType))
  +	//for complex types
  +	virtual int AXISAPI(AddOutputCmplxParam,(APIHASPARAMS const AxisChar* pchName, void* pObject, void* pDZFunct, void* pDelFunct))
  +	/* Methods used to serialize arrays */
  +	virtual int AXISAPI(SerializeCmplxArray,(APIHASPARAMS const Axis_Array* pArray, void* pSZFunct, void* pDelFunct, void* pSizeFunct, const AxisChar* pchTypeName, const AxisChar* pchURI, const AxisChar* pchArrayName))
  +	virtual int AXISAPI(SerializeBasicArray,(APIHASPARAMS const Axis_Array* pArray, XSDTYPE nType, const AxisChar* pchArrayName))
  +	//Basic Type Serializing methods
  +	virtual const AxisChar* AXISAPI(SerializeBasicType,(APIHASPARAMS const AxisChar* sName, void* pValue, XSDTYPE type))
  +	virtual void AXISAPI(Serialize, (APIHASPARAMS const char* pFirst, ...))
  +
  +#ifdef __cplusplus
  +
   	virtual int AddOutputParam(const AxisChar* pchName, int nValue, XSDTYPE type)=0;
   	virtual int AddOutputParam(const AxisChar* pchName, unsigned int unValue, XSDTYPE type)=0;
   	virtual int AddOutputParam(const AxisChar* pchName, short sValue, XSDTYPE type)=0;
  @@ -92,21 +123,7 @@
   	virtual int AddOutputParam(const AxisChar* pchName, double dValue, XSDTYPE type)=0;
   	virtual int AddOutputParam(const AxisChar* pchName, struct tm tValue, XSDTYPE type)=0;
   	virtual int AddOutputParam(const AxisChar* pchName, const AxisChar* pStrValue, XSDTYPE type)=0;
  -	virtual int AddOutputParam(const AxisChar* pchName, const string& sStrValue, XSDTYPE type)=0;
  -	//for arrays
  -	virtual int AddOutputParam(const AxisChar* pchName, const Axis_Array* pArray, void* pSZFunct, void* pDelFunct, void* pSizeFunct, const AxisChar* pchTypeName, const AxisChar* pchURI)=0;
  -	virtual int AddOutputParam(const AxisChar* pchName, const Axis_Array* pArray, XSDTYPE nType)=0;
  -	//for complex types
  -	virtual int AddOutputParam(const AxisChar* pchName, void* pObject, void* pDZFunct, void* pDelFunct)=0;
  -	virtual int createSoapMethod(const AxisChar* sLocalName, const AxisChar* sPrefix, const AxisChar* sURI)=0;
  -//	virtual IWrapperSoapSerializer& operator<<(const char *cSerialized)=0;
  -	virtual IWrapperSoapSerializer& operator<<(const AxisChar* cSerialized)=0;
  -	virtual const AxisChar* getNewNamespacePrefix()=0;
  -	/* Methods used to serialize arrays */
  -	virtual int SerializeArray(const Axis_Array* pArray, void* pSZFunct, void* pDelFunct, void* pSizeFunct, const AxisChar* pchTypeName, const AxisChar* pchURI, const AxisChar* pchArrayName)=0;
  -	virtual int SerializeArray(const Axis_Array* pArray, XSDTYPE nType, const AxisChar* pchArrayName)=0;
  -
  -public: //Basic Type Serializing methods
  +	//Basic Type Serializing methods
   	virtual const AxisChar* SerializeBasicType(const AxisChar* sName, const AxisChar* sValue, XSDTYPE type)=0;
   	virtual const AxisChar* SerializeBasicType(const AxisChar* sName, const string sValue, XSDTYPE type)=0;
       virtual const AxisChar* SerializeBasicType(const AxisChar* sName, struct tm tValue, XSDTYPE type)=0;
  @@ -120,6 +137,13 @@
       virtual const AxisChar* SerializeBasicType(const AxisChar* sName, unsigned long ulValue, XSDTYPE type)=0;
       virtual const AxisChar* SerializeBasicType(const AxisChar* sName, float fValue, XSDTYPE type)=0;
       virtual const AxisChar* SerializeBasicType(const AxisChar* sName, double dValue, XSDTYPE type)=0;
  +	//function
  +	virtual IWrapperSoapSerializer& operator<<(const AxisChar* cSerialized)=0;
  +	virtual int AddOutputParam(const AxisChar* pchName, const string& pStrValue, XSDTYPE type)=0;
  +#endif
  +#ifdef __cplusplus
   };
  -
  +#else
  +} IWrapperSoapSerializerX;
  +#endif
   #endif // !defined(AFX_IWRAPPERSOAPSERIALIZER_H__D3E794EC_8A67_4E0E_BE28_583DCDCE1C42__INCLUDED_)
  
  
  
  1.1.4.1   +2 -2      ws-axis/c/include/axis/common/MessageData.h
  
  Index: MessageData.h
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/include/axis/common/MessageData.h,v
  retrieving revision 1.1
  retrieving revision 1.1.4.1
  diff -u -r1.1 -r1.1.4.1
  --- MessageData.h	20 Oct 2003 03:18:19 -0000	1.1
  +++ MessageData.h	7 Nov 2003 09:46:16 -0000	1.1.4.1
  @@ -93,9 +93,9 @@
   	string& getProperty(string& sName);
   	int setProperty(string& sName, string& sValue);
   	void getSoapDeSerializer(IHandlerSoapDeSerializer** pIHandlerSoapDeSerializer);
  -	void getSoapDeSerializer(IWrapperSoapDeSerializer** pIWrapperSoapDeSerializer);
  +	void AXISCALL getSoapSerializer(IWrapperSoapSerializer** pIWSS);
  +	void AXISCALL getSoapDeSerializer(IWrapperSoapDeSerializer** pIWSDS);
   	void getSoapSerializer(IHandlerSoapSerializer** pIHandlerSoapSerializer);
  -	void getSoapSerializer(IWrapperSoapSerializer** pIWrapperSoapSerializer);	
   	IWrapperSoapDeSerializer* getSoapDeserializer();
   	int setPastPivotState(bool bState);
   	bool isPastPivot();
  
  
  
  1.2.4.1   +1 -1      ws-axis/c/include/axis/common/Param.h
  
  Index: Param.h
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/include/axis/common/Param.h,v
  retrieving revision 1.2
  retrieving revision 1.2.4.1
  diff -u -r1.2 -r1.2.4.1
  --- Param.h	24 Oct 2003 05:37:46 -0000	1.2
  +++ Param.h	7 Nov 2003 09:46:16 -0000	1.2.4.1
  @@ -120,7 +120,7 @@
   	int SetValue(const AxisChar* sValue);
   	int SetValue(XSDTYPE nType, uParamValue Value);
   	XSDTYPE GetType() const;	
  -	int serialize(IWrapperSoapSerializer& pSZ);
  +	int serialize(SoapSerializer& pSZ);
   
   	//Following functions are used by wrapper class methods making sure of the valid type.
   	int GetInt();
  
  
  
  1.1.4.1   +13 -6     ws-axis/c/include/axis/common/TypeMapping.h
  
  Index: TypeMapping.h
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/include/axis/common/TypeMapping.h,v
  retrieving revision 1.1
  retrieving revision 1.1.4.1
  diff -u -r1.1 -r1.1.4.1
  --- TypeMapping.h	20 Oct 2003 03:18:19 -0000	1.1
  +++ TypeMapping.h	7 Nov 2003 09:46:16 -0000	1.1.4.1
  @@ -70,18 +70,23 @@
   #if !defined(AFX_TYPEMAPPING_H__B09703CE_154D_400E_A4E6_ED01901B33A0__INCLUDED_)
   #define AFX_TYPEMAPPING_H__B09703CE_154D_400E_A4E6_ED01901B33A0__INCLUDED_
   
  -#include <map>
  -#include <string>
   #include "GDefine.h"
   
  -using namespace std;
  -
  -enum XSDTYPE { XSD_UNKNOWN=1, XSD_INT, XSD_FLOAT, XSD_STRING, XSD_LONG, XSD_SHORT, XSD_BYTE, XSD_UNSIGNEDLONG, \
  +typedef enum XSDTYPETag 
  +{ XSD_UNKNOWN=1, XSD_INT, XSD_FLOAT, XSD_STRING, XSD_LONG, XSD_SHORT, XSD_BYTE, XSD_UNSIGNEDLONG, \
   				XSD_BOOLEAN, XSD_UNSIGNEDINT, XSD_UNSIGNEDSHORT, XSD_UNSIGNEDBYTE, \
   				XSD_DOUBLE, XSD_DECIMAL, XSD_DURATION, XSD_DATETIME, XSD_TIME, XSD_DATE, \
   				XSD_YEARMONTH, XSD_YEAR, XSD_MONTHDAY, XSD_DAY, XSD_MONTH, XSD_HEXBINARY, \
   				XSD_BASE64BINARY, XSD_ANYURI, XSD_QNAME, XSD_NOTATION, XSD_INTEGER, \
  -				XSD_ARRAY, USER_TYPE, ACCESSOR };
  +				XSD_ARRAY, USER_TYPE, ACCESSOR 
  +} XSDTYPE;
  +
  +#ifdef __cplusplus
  +
  +#include <map>
  +#include <string>
  +
  +using namespace std;
   
   class TypeMapping  
   {
  @@ -94,5 +99,7 @@
   	virtual ~TypeMapping();
   
   };
  +
  +#endif
   
   #endif // !defined(AFX_TYPEMAPPING_H__B09703CE_154D_400E_A4E6_ED01901B33A0__INCLUDED_)
  
  
  
  1.1.4.1   +1 -1      ws-axis/c/include/axis/common/WrapperClassHandler.h
  
  Index: WrapperClassHandler.h
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/include/axis/common/WrapperClassHandler.h,v
  retrieving revision 1.1
  retrieving revision 1.1.4.1
  diff -u -r1.1 -r1.1.4.1
  --- WrapperClassHandler.h	20 Oct 2003 03:18:19 -0000	1.1
  +++ WrapperClassHandler.h	7 Nov 2003 09:46:16 -0000	1.1.4.1
  @@ -69,7 +69,7 @@
   class WrapperClassHandler : public BasicHandler 
   {
   public:
  -	int GetType(){return WEBSERVICE_HANDLER;};
  +	int AXISCALL GetType(){return WEBSERVICE_HANDLER;};
   };
   
   #endif //__WRAPPERCLASSHANDLER_INCLUDED__
  
  
  
  No                   revision
  No                   revision
  1.1.4.1   +5 -5      ws-axis/c/include/axis/engine/HandlerChain.h
  
  Index: HandlerChain.h
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/include/axis/engine/HandlerChain.h,v
  retrieving revision 1.1
  retrieving revision 1.1.4.1
  diff -u -r1.1 -r1.1.4.1
  --- HandlerChain.h	20 Oct 2003 03:18:19 -0000	1.1
  +++ HandlerChain.h	7 Nov 2003 09:46:18 -0000	1.1.4.1
  @@ -88,11 +88,11 @@
   	int AddHandler(Handler* pHandler, int nScope, int nLibId);
   	HandlerChain();
   	virtual ~HandlerChain();
  -	int Invoke(IMessageData* pMsg);
  -	void OnFault(IMessageData* pMsg);
  -	int GetType(){return CHAIN_HANDLER;};
  -	int Init();
  -	int Fini();
  +	int AXISCALL Invoke(IMessageData* pMsg);
  +	void AXISCALL OnFault(IMessageData* pMsg);
  +	int AXISCALL GetType(){return CHAIN_HANDLER;};
  +	int AXISCALL Init();
  +	int AXISCALL Fini();
   
   private:
   	list<ChainItem> m_HandlerList;
  
  
  
  No                   revision
  No                   revision
  1.2.4.1   +29 -29    ws-axis/c/include/axis/soap/SoapDeSerializer.h
  
  Index: SoapDeSerializer.h
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/include/axis/soap/SoapDeSerializer.h,v
  retrieving revision 1.2
  retrieving revision 1.2.4.1
  diff -u -r1.2 -r1.2.4.1
  --- SoapDeSerializer.h	21 Oct 2003 15:09:42 -0000	1.2
  +++ SoapDeSerializer.h	7 Nov 2003 09:46:19 -0000	1.2.4.1
  @@ -89,10 +89,10 @@
   	Param* m_pLastArrayParam;
   public:
   	int GetVersion();
  -	const AxisChar* GetMethodName();
  +	const AxisChar* AXISCALL GetMethodName();
   	int Init();
  -	IParam* GetParam();
  -	int Deserialize(IParam* pIParam, int bHref);
  +	IParam* AXISCALL GetParam();
  +	int AXISCALL Deserialize(IParam* pIParam, int bHref);
   	SoapFault* GetFault();
   	SoapMethod* GetMethod();
   	SoapBody* GetBody();
  @@ -102,40 +102,40 @@
   	SoapDeSerializer();
   	virtual ~SoapDeSerializer();
   	/* Method used by wrappers to get a deserialized Array of complex types */
  -	Axis_Array GetArray(void* pDZFunct, void* pCreFunct, void* pDelFunct, void* pSizeFunct, const AxisChar* pchTypeName, const AxisChar* pchURI);
  +	Axis_Array AXISCALL GetCmplxArray(void* pDZFunct, void* pCreFunct, void* pDelFunct, void* pSizeFunct, const AxisChar* pchTypeName, const AxisChar* pchURI);
   	/* Method used by wrappers to get a deserialized Array of basic types */
  -	Axis_Array GetArray(XSDTYPE nType);
  -	int GetArraySize();
  -	int GetArray(Axis_Array* pArray, XSDTYPE nType);
  +	Axis_Array AXISCALL GetBasicArray(XSDTYPE nType);
  +	int AXISCALL GetArraySize();
  +	int AXISCALL GetArray(Axis_Array* pArray, XSDTYPE nType);
   	/* Method used by wrappers to get a deserialized single object of complex type */
  -	void* GetObject(void* pDZFunct, void* pCreFunct, void* pDelFunct, const AxisChar* pchTypeName, const AxisChar* pchURI);
  +	void* AXISCALL GetObject(void* pDZFunct, void* pCreFunct, void* pDelFunct, const AxisChar* pchTypeName, const AxisChar* pchURI);
   	
   	/* Methods used by wrappers to get a deserialized value of basic types */
  -	int GetInt();
  -    unsigned int GetUnsignedInt();
  -    short GetShort();
  -    unsigned short GetUnsignedShort();
  -    char GetByte();
  -    unsigned char GetUnsignedByte();
  -    long GetLong();
  -    long GetInteger();
  -    unsigned long GetUnsignedLong();
  -	float GetFloat();
  -    double GetDouble();
  -    double GetDecimal();
  -	const AxisChar* GetString();
  -    const AxisChar* GetAnyURI();
  -    const AxisChar* GetQName();
  -	const AxisChar* GetHexString();
  -	const AxisChar* GetBase64String();
  +	int AXISCALL GetInt();
  +    unsigned int AXISCALL GetUnsignedInt();
  +    short AXISCALL GetShort();
  +    unsigned short AXISCALL GetUnsignedShort();
  +    char AXISCALL GetByte();
  +    unsigned char AXISCALL GetUnsignedByte();
  +    long AXISCALL GetLong();
  +    long AXISCALL GetInteger();
  +    unsigned long AXISCALL GetUnsignedLong();
  +	float AXISCALL GetFloat();
  +    double AXISCALL GetDouble();
  +    double AXISCALL GetDecimal();
  +	const AxisChar* AXISCALL GetString();
  +    const AxisChar* AXISCALL GetAnyURI();
  +    const AxisChar* AXISCALL GetQName();
  +	const AxisChar* AXISCALL GetHexString();
  +	const AxisChar* AXISCALL GetBase64String();
       /*return a tm struct which contain year-month-date-hour-
         minute-second*/
  -    struct tm GetDateTime();
  -    struct tm GetDate();
  -    struct tm GetTime();
  +    struct tm AXISCALL GetDateTime();
  +    struct tm AXISCALL GetDate();
  +    struct tm AXISCALL GetTime();
       /*return a tm struct which contain years-months-dates-hours-
         minutes-seconds which represents a duration*/
  -    long GetDuration();
  +    long AXISCALL GetDuration();
   	void* CreateArray(XSDTYPE nType, int nSize);
   	void DeleteArray(Axis_Array* pArray , XSDTYPE nType);
   };
  
  
  
  1.3.4.1   +11 -7     ws-axis/c/include/axis/soap/SoapSerializer.h
  
  Index: SoapSerializer.h
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/include/axis/soap/SoapSerializer.h,v
  retrieving revision 1.3
  retrieving revision 1.3.4.1
  diff -u -r1.3 -r1.3.4.1
  --- SoapSerializer.h	24 Oct 2003 05:37:46 -0000	1.3
  +++ SoapSerializer.h	7 Nov 2003 09:46:19 -0000	1.3.4.1
  @@ -96,10 +96,10 @@
   	char m_cSerializedBuffer[SERIALIZE_BUFFER_SIZE];
   	int m_iCurrentSerBufferSize;
   public:
  -	int createSoapMethod(const AxisChar* sLocalName, const AxisChar* sPrefix, const AxisChar* sURI);	
  +	int AXISCALL createSoapMethod(const AxisChar* sLocalName, const AxisChar* sPrefix, const AxisChar* sURI);	
   //	IWrapperSoapSerializer& operator<<(const char* cSerialized);
   	IWrapperSoapSerializer& operator<<(const AxisChar* cSerialized);
  -	const AxisChar* getNewNamespacePrefix();
  +	const AxisChar* AXISCALL getNewNamespacePrefix();
   	int setSoapVersion(SOAP_VERSION);
   	int Init();
   	int SetOutputStream(const Ax_soapstream* pStream);
  @@ -125,13 +125,13 @@
   	int AddOutputParam(const AxisChar* pchName, const AxisChar* pStrValue, XSDTYPE type);
   	int AddOutputParam(const AxisChar* pchName, const string& sStrValue, XSDTYPE type);
   	//for arrays of basic types
  -	int AddOutputParam(const AxisChar* pchName, const Axis_Array* pArray, XSDTYPE nType);
  +	int AXISCALL AddOutputBasicArrayParam(const AxisChar* pchName, const Axis_Array* pArray, XSDTYPE nType);
   	//for arrays of complex types
  -	int AddOutputParam(const AxisChar* pchName, const Axis_Array* pArray, void* pSZFunct, void* pDelFunct, void* pSizeFunct, const AxisChar* pchTypeName, const AxisChar* pchURI);
  +	int AXISCALL AddOutputCmplxArrayParam(const AxisChar* pchName, const Axis_Array* pArray, void* pSZFunct, void* pDelFunct, void* pSizeFunct, const AxisChar* pchTypeName, const AxisChar* pchURI);
   	//for complex types
  -	int AddOutputParam(const AxisChar* pchName, void* pObject, void* pDZFunct, void* pDelFunct);
  -	int SerializeArray(const Axis_Array* pArray, void* pSZFunct, void* pDelFunct, void* pSizeFunct, const AxisChar* pchTypeName, const AxisChar* pchURI, const AxisChar* pchArrayName);
  -	int SerializeArray(const Axis_Array* pArray, XSDTYPE nType, const AxisChar* pchArrayName);
  +	int AXISCALL AddOutputCmplxParam(const AxisChar* pchName, void* pObject, void* pDZFunct, void* pDelFunct);
  +	int AXISCALL SerializeCmplxArray(const Axis_Array* pArray, void* pSZFunct, void* pDelFunct, void* pSizeFunct, const AxisChar* pchTypeName, const AxisChar* pchURI, const AxisChar* pchArrayName);
  +	int AXISCALL SerializeBasicArray(const Axis_Array* pArray, XSDTYPE nType, const AxisChar* pchArrayName);
   
   private:
   	int AddOutputParamHelper(const AxisChar* pchName, XSDTYPE nType, uParamValue Value);
  @@ -161,6 +161,10 @@
   private:
   	BasicTypeSerializer m_BTSZ;
   	const Ax_soapstream* m_pOutputStream;
  +public:
  +	int AXISCALL AddOutputParam(const AxisChar* pchName, void* pValue, XSDTYPE type);
  +	const AxisChar* AXISCALL SerializeBasicType(const AxisChar* pchName, void* pValue, XSDTYPE type);
  +	void AXISCALL Serialize(const char* pFirst, ...);
   };
   
   #endif // !defined(AFX_SOAPSERIALIZER_H__C37229AD_BD54_430D_9619_E4574CF95334__INCLUDED_)
  
  
  
  No                   revision
  No                   revision
  1.20.4.1  +4 -4      ws-axis/c/src/client/Call.cpp
  
  Index: Call.cpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/client/Call.cpp,v
  retrieving revision 1.20
  retrieving revision 1.20.4.1
  diff -u -r1.20 -r1.20.4.1
  --- Call.cpp	23 Oct 2003 08:24:59 -0000	1.20
  +++ Call.cpp	7 Nov 2003 09:46:19 -0000	1.20.4.1
  @@ -179,12 +179,12 @@
   
   void Call::AddParameter(Axis_Array* pArray, void* pSZFunct, void* pDelFunct, void* pSizeFunct, const char* pchTypeName, const char* pchURI, const char* pchName)
   {
  -	m_pIWSSZ->AddOutputParam(pchName, pArray, pSZFunct, pDelFunct, pSizeFunct, pchTypeName, pchURI);
  +	m_pIWSSZ->AddOutputCmplxArrayParam(pchName, pArray, pSZFunct, pDelFunct, pSizeFunct, pchTypeName, pchURI);
   }
   
   void Call::AddParameter(void *pObject, void *pSZFunct, void *pDelFunct, const char* pchName)
   {
  -	m_pIWSSZ->AddOutputParam(pchName, pObject, pSZFunct, pDelFunct);
  +	m_pIWSSZ->AddOutputCmplxParam(pchName, pObject, pSZFunct, pDelFunct);
   }
   
   /**
  @@ -269,7 +269,7 @@
   			*/
   			if (!m_ReturnCplxObj.pCreFunct || !m_ReturnCplxObj.pDZFunct)
   				return FAIL; 
  -			m_ReturnCplxObj.pObject = m_ReturnCplxObj.pCreFunct();
  +			m_ReturnCplxObj.pObject = m_ReturnCplxObj.pCreFunct(false, 0);
   			if (!m_ReturnCplxObj.pObject)
   				return FAIL;
   			m_ReturnCplxObj.pDZFunct(m_ReturnCplxObj.pObject, m_pMsgData->m_pDZ);
  @@ -324,7 +324,7 @@
   					*/
   					if (!pOutParam->m_OutCplxObj.pCreFunct || !pOutParam->m_OutCplxObj.pDZFunct)
   						return FAIL; 
  -					pOutParam->m_OutCplxObj.pObject = pOutParam->m_OutCplxObj.pCreFunct();
  +					pOutParam->m_OutCplxObj.pObject = pOutParam->m_OutCplxObj.pCreFunct(false, 0);
   					if (!pOutParam->m_OutCplxObj.pObject)
   						return FAIL;
   					pOutParam->m_OutCplxObj.pDZFunct(pOutParam->m_OutCplxObj.pObject, m_pMsgData->m_pDZ);
  
  
  
  No                   revision
  No                   revision
  1.10.4.1  +2 -2      ws-axis/c/src/client/samples/Calculator/CalcClient.cpp
  
  Index: CalcClient.cpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/client/samples/Calculator/CalcClient.cpp,v
  retrieving revision 1.10
  retrieving revision 1.10.4.1
  diff -u -r1.10 -r1.10.4.1
  --- CalcClient.cpp	16 Oct 2003 13:12:46 -0000	1.10
  +++ CalcClient.cpp	7 Nov 2003 09:46:19 -0000	1.10.4.1
  @@ -14,7 +14,7 @@
   		int result = cal.Add(99, 23);
   		printf("Result of 99+23=%d\n", result);
   
  -/*		Point* p1 = new Point();
  +		Point* p1 = new Point();
   		p1->x = 11;
   		p1->y = 22;
   		Point* p2 = new Point();
  @@ -29,7 +29,7 @@
   		delete p2;
   		delete pret;
   
  -		PointArray Array;
  +/*		PointArray Array;
   		Array.m_Array = new Point[ARRAYSIZE];
   		Array.m_Size = ARRAYSIZE;
   		for (int x=0; x<ARRAYSIZE; x++)
  
  
  
  1.6.4.1   +6 -12     ws-axis/c/src/client/samples/Calculator/Point.cpp
  
  Index: Point.cpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/client/samples/Calculator/Point.cpp,v
  retrieving revision 1.6
  retrieving revision 1.6.4.1
  diff -u -r1.6 -r1.6.4.1
  --- Point.cpp	22 Oct 2003 05:02:39 -0000	1.6
  +++ Point.cpp	7 Nov 2003 09:46:19 -0000	1.6.4.1
  @@ -10,8 +10,8 @@
   
   int Axis_DeSerialize_Point(Point* p, IWrapperSoapDeSerializer *pDZ)
   {
  -	p->x = pDZ->GetParam()->GetInt();
  -	p->y = pDZ->GetParam()->GetInt();
  +	p->x = pDZ->GetInt();
  +	p->y = pDZ->GetInt();
   	return SUCCESS;
   }
   
  @@ -61,15 +61,9 @@
   
   int Axis_DeSerialize_Polygon(Polygon* p, IWrapperSoapDeSerializer *pIWSDZ)
   {
  -	p->name = pIWSDZ->GetParam()->GetString();
  -	IParam *param0 = pIWSDZ->GetParam(); //now we know that this is an array.
  -	p->points.m_Size = param0->GetArraySize();
  -	if (p->points.m_Size > 0)
  -		p->points.m_Array = new Point[p->points.m_Size];
  -	else 
  -		return FAIL; //CF_ZERO_ARRAY_SIZE_ERROR
  -	param0->SetArrayElements((void*)(p->points.m_Array), (AXIS_DESERIALIZE_FUNCT)Axis_DeSerialize_Point, (AXIS_OBJECT_DELETE_FUNCT)Axis_Delete_Point, (AXIS_OBJECT_SIZE_FUNCT)Axis_GetSize_Point);
  -	pIWSDZ->Deserialize(param0,0);
  +	p->name = pIWSDZ->GetString();
  +	p->points = (PointArray&)pIWSDZ->GetCmplxArray((void*)Axis_DeSerialize_Point, (void*)Axis_Create_Point, (void*)Axis_Delete_Point, (void*)Axis_GetSize_Point, Axis_TypeName_Point, Axis_URI_Point);
  +	if (p->points.m_Size < 1) return FAIL; //CF_ZERO_ARRAY_SIZE_ERROR
   	return SUCCESS;
   }
   
  @@ -117,7 +111,7 @@
   	}
   	pSZ << pSZ.SerializeBasicType("name", p->name, XSD_STRING);
   	//Serialize array.
  -	pSZ.SerializeArray((Axis_Array*)(&p->points), 
  +	pSZ.SerializeCmplxArray((Axis_Array*)(&p->points), 
   		(void*) Axis_Serialize_Point, (void*) Axis_Delete_Point, (void*) Axis_GetSize_Point, 
   		Axis_TypeName_Point, Axis_URI_Point, "points");
   	pSZ << "</" << Axis_TypeName_Polygon << ">";
  
  
  
  No                   revision
  No                   revision
  1.13.4.1  +3 -3      ws-axis/c/src/common/ArrayBean.cpp
  
  Index: ArrayBean.cpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/common/ArrayBean.cpp,v
  retrieving revision 1.13
  retrieving revision 1.13.4.1
  diff -u -r1.13 -r1.13.4.1
  --- ArrayBean.cpp	22 Oct 2003 03:40:04 -0000	1.13
  +++ ArrayBean.cpp	7 Nov 2003 09:46:20 -0000	1.13.4.1
  @@ -192,7 +192,7 @@
   	}
   }
   
  -int ArrayBean::DeSerialize(IWrapperSoapDeSerializer *pDZ)
  +int ArrayBean::DeSerialize(SoapDeSerializer *pDZ)
   {
   	Param* p;
   	if ((XSD_UNKNOWN == m_type) ||(0==m_size.size())||(!m_value.sta)) return FAIL;
  @@ -343,7 +343,7 @@
   	return SUCCESS;
   }
   
  -int ArrayBean::Serialize(IWrapperSoapSerializer& pSZ)
  +int ArrayBean::Serialize(SoapSerializer& pSZ)
   {	
   	switch (m_type)
   	{
  @@ -473,7 +473,7 @@
   			for (int x=0; x<blocksize; x++)
   			{
   				pItem = reinterpret_cast<void*>(ptrval+x*itemsize);
  -				m_value.cta->pSZFunct(pItem, pSZ, true);
  +				m_value.cta->pSZFunct(pItem, &pSZ, true);
   			}
   		}
   		break;
  
  
  
  1.24.4.1  +3 -3      ws-axis/c/src/common/Param.cpp
  
  Index: Param.cpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/common/Param.cpp,v
  retrieving revision 1.24
  retrieving revision 1.24.4.1
  diff -u -r1.24 -r1.24.4.1
  --- Param.cpp	24 Oct 2003 05:37:46 -0000	1.24
  +++ Param.cpp	7 Nov 2003 09:46:20 -0000	1.24.4.1
  @@ -616,7 +616,7 @@
   	return m_Type;
   }
   
  -int Param::serialize(IWrapperSoapSerializer& pSZ)
  +int Param::serialize(SoapSerializer& pSZ)
   {
   	AxisString ATprefix;
   	switch (m_Type){
  @@ -725,7 +725,7 @@
   		pSZ << ">";
   		break;
   	case USER_TYPE:
  -		m_Value.pCplxObj->pSZFunct(m_Value.pCplxObj->pObject, pSZ);
  +		m_Value.pCplxObj->pSZFunct(m_Value.pCplxObj->pObject, &pSZ, false);
   		break;
   	default:;
   	}
  @@ -974,7 +974,7 @@
   	/* At client side we do not delete either output or return objects */
   	if (AxisEngine::m_bServer) 
   	{
  -		if (pObject && pDelFunct) pDelFunct(pObject);
  +		if (pObject && pDelFunct) pDelFunct(pObject, false, 0);
   	}
   }
   
  
  
  
  No                   revision
  No                   revision
  1.12.4.1  +28 -28    ws-axis/c/src/server/samples/cppservicewrapper/CPPServiceWrapper.cpp
  
  Index: CPPServiceWrapper.cpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/server/samples/cppservicewrapper/CPPServiceWrapper.cpp,v
  retrieving revision 1.12
  retrieving revision 1.12.4.1
  diff -u -r1.12 -r1.12.4.1
  --- CPPServiceWrapper.cpp	22 Oct 2003 04:58:21 -0000	1.12
  +++ CPPServiceWrapper.cpp	7 Nov 2003 09:46:20 -0000	1.12.4.1
  @@ -59,14 +59,14 @@
   
   int Axis_DeSerialize_Triangle(Triangle* p, IWrapperSoapDeSerializer *pDZ)
   {
  -	p->p1 = (Point*)pDZ->GetObject((AXIS_DESERIALIZE_FUNCT)Axis_DeSerialize_Point, 
  -		(AXIS_OBJECT_CREATE_FUNCT)Axis_Create_Point, (AXIS_OBJECT_DELETE_FUNCT)Axis_Delete_Point, 
  +	p->p1 = (Point*)pDZ->GetObject((void*)Axis_DeSerialize_Point, 
  +		(void*)Axis_Create_Point, (void*)Axis_Delete_Point, 
   		Axis_TypeName_Point, Axis_URI_Point);
  -	p->p2 = (Point*)pDZ->GetObject((AXIS_DESERIALIZE_FUNCT)Axis_DeSerialize_Point, 
  -		(AXIS_OBJECT_CREATE_FUNCT)Axis_Create_Point, (AXIS_OBJECT_DELETE_FUNCT)Axis_Delete_Point, 
  +	p->p2 = (Point*)pDZ->GetObject((void*)Axis_DeSerialize_Point, 
  +		(void*)Axis_Create_Point, (void*)Axis_Delete_Point, 
   		Axis_TypeName_Point, Axis_URI_Point);
  -	p->p3 = (Point*)pDZ->GetObject((AXIS_DESERIALIZE_FUNCT)Axis_DeSerialize_Point, 
  -		(AXIS_OBJECT_CREATE_FUNCT)Axis_Create_Point, (AXIS_OBJECT_DELETE_FUNCT)Axis_Delete_Point, 
  +	p->p3 = (Point*)pDZ->GetObject((void*)Axis_DeSerialize_Point, 
  +		(void*)Axis_Create_Point, (void*)Axis_Delete_Point, 
   		Axis_TypeName_Point, Axis_URI_Point);
   	return SUCCESS;
   }
  @@ -136,9 +136,9 @@
   int Axis_DeSerialize_Polygon(Polygon* p, IWrapperSoapDeSerializer *pIWSDZ)
   {
   	p->name = pIWSDZ->GetString();
  -	p->points = (PointArray&)pIWSDZ->GetArray((AXIS_DESERIALIZE_FUNCT)Axis_DeSerialize_Point, 
  -		(AXIS_OBJECT_CREATE_FUNCT)Axis_Create_Point, (AXIS_OBJECT_DELETE_FUNCT)Axis_Delete_Point, 
  -		(AXIS_OBJECT_SIZE_FUNCT)Axis_GetSize_Point, Axis_TypeName_Point, Axis_URI_Point);
  +	p->points = (PointArray&)pIWSDZ->GetCmplxArray((void*)Axis_DeSerialize_Point, 
  +		(void*)Axis_Create_Point, (void*)Axis_Delete_Point, 
  +		(void*)Axis_GetSize_Point, Axis_TypeName_Point, Axis_URI_Point);
   
   	return SUCCESS;
   }
  @@ -187,7 +187,7 @@
   	}
   	pSZ << pSZ.SerializeBasicType("name", p->name, XSD_STRING);
   	//Serialize array.
  -	pSZ.SerializeArray((Axis_Array*)(&p->points), 
  +	pSZ.SerializeCmplxArray((Axis_Array*)(&p->points), 
   		(void*) Axis_Serialize_Point, (void*) Axis_Delete_Point, (void*) Axis_GetSize_Point, 
   		Axis_TypeName_Point, Axis_URI_Point, "points");
   	pSZ << "</" << Axis_TypeName_Polygon << ">";
  @@ -255,12 +255,12 @@
   	if (!pIWSDZ) return FAIL;
   	pIWSSZ->createSoapMethod("DistanceResponse", pIWSSZ->getNewNamespacePrefix(), "http://www.opensource.lk/CPPService");
   
  -	Point* v0 = (Point*)pIWSDZ->GetObject((AXIS_DESERIALIZE_FUNCT)Axis_DeSerialize_Point, 
  -		(AXIS_OBJECT_CREATE_FUNCT)Axis_Create_Point, (AXIS_OBJECT_DELETE_FUNCT)Axis_Delete_Point, 
  +	Point* v0 = (Point*)pIWSDZ->GetObject((void*)Axis_DeSerialize_Point, 
  +		(void*)Axis_Create_Point, (void*)Axis_Delete_Point, 
   		Axis_TypeName_Point, Axis_URI_Point);
   
  -	Point* v1 = (Point*)pIWSDZ->GetObject((AXIS_DESERIALIZE_FUNCT)Axis_DeSerialize_Point, 
  -		(AXIS_OBJECT_CREATE_FUNCT)Axis_Create_Point, (AXIS_OBJECT_DELETE_FUNCT)Axis_Delete_Point, 
  +	Point* v1 = (Point*)pIWSDZ->GetObject((void*)Axis_DeSerialize_Point, 
  +		(void*)Axis_Create_Point, (void*)Axis_Delete_Point, 
   		Axis_TypeName_Point, Axis_URI_Point);
   
   	//Call actual web service method with appropriate parameters
  @@ -279,18 +279,18 @@
   	if (!pIWSDZ) return FAIL;
   	pIWSSZ->createSoapMethod("AddPointResponse", pIWSSZ->getNewNamespacePrefix(), "http://www.opensource.lk/CPPService");
   
  -	Point* v0 = (Point*)pIWSDZ->GetObject((AXIS_DESERIALIZE_FUNCT)Axis_DeSerialize_Point, 
  -		(AXIS_OBJECT_CREATE_FUNCT)Axis_Create_Point, (AXIS_OBJECT_DELETE_FUNCT)Axis_Delete_Point, 
  +	Point* v0 = (Point*)pIWSDZ->GetObject((void*)Axis_DeSerialize_Point, 
  +		(void*)Axis_Create_Point, (void*)Axis_Delete_Point, 
   		Axis_TypeName_Point, Axis_URI_Point);
   
  -	Point* v1 = (Point*)pIWSDZ->GetObject((AXIS_DESERIALIZE_FUNCT)Axis_DeSerialize_Point, 
  -		(AXIS_OBJECT_CREATE_FUNCT)Axis_Create_Point, (AXIS_OBJECT_DELETE_FUNCT)Axis_Delete_Point, 
  +	Point* v1 = (Point*)pIWSDZ->GetObject((void*)Axis_DeSerialize_Point, 
  +		(void*)Axis_Create_Point, (void*)Axis_Delete_Point, 
   		Axis_TypeName_Point, Axis_URI_Point);
   
   	//Call actual web service method with appropriate parameters
   	Point* ret = pWs->AddPoint(v0, v1);
   
  -	return pIWSSZ->AddOutputParam("AddPointReturn", ret, (void*)Axis_Serialize_Point, (void*)Axis_Delete_Point);
  +	return pIWSSZ->AddOutputCmplxParam("AddPointReturn", ret, (void*)Axis_Serialize_Point, (void*)Axis_Delete_Point);
   }
   
   int CPPServiceWrapper::Add(IMessageData* mc)
  @@ -323,8 +323,8 @@
   	if (!pIWSDZ) return FAIL;
   	pIWSSZ->createSoapMethod("PerimeterResponse", pIWSSZ->getNewNamespacePrefix(), "http://www.opensource.lk/CPPService");
   
  -	Triangle* v0 = (Triangle*)pIWSDZ->GetObject((AXIS_DESERIALIZE_FUNCT)Axis_DeSerialize_Triangle, 
  -		(AXIS_OBJECT_CREATE_FUNCT)Axis_Create_Triangle, (AXIS_OBJECT_DELETE_FUNCT)Axis_Delete_Triangle, 
  +	Triangle* v0 = (Triangle*)pIWSDZ->GetObject((void*)Axis_DeSerialize_Triangle, 
  +		(void*)Axis_Create_Triangle, (void*)Axis_Delete_Triangle, 
   		Axis_TypeName_Triangle, Axis_URI_Triangle);
   
   	//Call actual web service method with appropriate parameters
  @@ -344,13 +344,13 @@
   	pIWSSZ->createSoapMethod("EchoPointArrayResponse", pIWSSZ->getNewNamespacePrefix(), "http://www.opensource.lk/CPPService");
   
   	//we expect a PointArray now
  -	Axis_Array inArray = pIWSDZ->GetArray((AXIS_DESERIALIZE_FUNCT)Axis_DeSerialize_Point, 
  -		(AXIS_OBJECT_CREATE_FUNCT)Axis_Create_Point, (AXIS_OBJECT_DELETE_FUNCT)Axis_Delete_Point, 
  -		(AXIS_OBJECT_SIZE_FUNCT)Axis_GetSize_Point, Axis_TypeName_Point, Axis_URI_Point);
  +	Axis_Array inArray = pIWSDZ->GetCmplxArray((void*)Axis_DeSerialize_Point, 
  +		(void*)Axis_Create_Point, (void*)Axis_Delete_Point, 
  +		(void*)Axis_GetSize_Point, Axis_TypeName_Point, Axis_URI_Point);
   
   	PointArray outArray = pWs->EchoPointArray((PointArray&)inArray);
   
  -	return pIWSSZ->AddOutputParam("EchoPointArrayReturn", (Axis_Array*)(&outArray), 
  +	return pIWSSZ->AddOutputCmplxArrayParam("EchoPointArrayReturn", (Axis_Array*)(&outArray), 
   		(void*) Axis_Serialize_Point, (void*) Axis_Delete_Point, (void*) Axis_GetSize_Point,
   		Axis_TypeName_Point, Axis_URI_Point);
   }
  @@ -369,11 +369,11 @@
   	if (!pIWSDZ) return FAIL;
   	pIWSSZ->createSoapMethod("EchoPolygonResponse", pIWSSZ->getNewNamespacePrefix(), "http://www.opensource.lk/CPPService");
   
  -	Polygon* v0 = (Polygon*)pIWSDZ->GetObject((AXIS_DESERIALIZE_FUNCT)Axis_DeSerialize_Polygon, 
  -		(AXIS_OBJECT_CREATE_FUNCT)Axis_Create_Polygon, (AXIS_OBJECT_DELETE_FUNCT)Axis_Delete_Polygon, 
  +	Polygon* v0 = (Polygon*)pIWSDZ->GetObject((void*)Axis_DeSerialize_Polygon, 
  +		(void*)Axis_Create_Polygon, (void*)Axis_Delete_Polygon, 
   		Axis_TypeName_Polygon, Axis_URI_Polygon);
   
   	Polygon* ret = pWs->EchoPolygon(v0);
   
  -	return pIWSSZ->AddOutputParam("EchoPolygonReturn", ret, (void*)Axis_Serialize_Polygon, (void*)Axis_Delete_Polygon);
  +	return pIWSSZ->AddOutputCmplxParam("EchoPolygonReturn", ret, (void*)Axis_Serialize_Polygon, (void*)Axis_Delete_Polygon);
   }
  
  
  
  1.5.4.1   +4 -4      ws-axis/c/src/server/samples/cppservicewrapper/CPPServiceWrapper.hpp
  
  Index: CPPServiceWrapper.hpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/server/samples/cppservicewrapper/CPPServiceWrapper.hpp,v
  retrieving revision 1.5
  retrieving revision 1.5.4.1
  diff -u -r1.5 -r1.5.4.1
  --- CPPServiceWrapper.hpp	20 Oct 2003 07:35:47 -0000	1.5
  +++ CPPServiceWrapper.hpp	7 Nov 2003 09:46:20 -0000	1.5.4.1
  @@ -15,10 +15,10 @@
   	CPPServiceWrapper();
   	virtual ~CPPServiceWrapper();
   public://implementation of WrapperClassHandler interface
  -	int Invoke(IMessageData* mc);
  -	void OnFault(IMessageData* pMsg);
  -	int Init();
  -	int Fini();
  +	int AXISCALL Invoke(IMessageData* mc);
  +	void AXISCALL OnFault(IMessageData* pMsg);
  +	int AXISCALL Init();
  +	int AXISCALL Fini();
   private://Methods corresponding to the web service methods
   	int Distance(IMessageData* mc);
   	int AddPoint(IMessageData* mc);
  
  
  
  No                   revision
  No                   revision
  1.1.4.1   +4 -4      ws-axis/c/src/server/samples/interoptests/base/InteropTestPortTypeWrapper.h
  
  Index: InteropTestPortTypeWrapper.h
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/server/samples/interoptests/base/InteropTestPortTypeWrapper.h,v
  retrieving revision 1.1
  retrieving revision 1.1.4.1
  diff -u -r1.1 -r1.1.4.1
  --- InteropTestPortTypeWrapper.h	21 Oct 2003 15:09:04 -0000	1.1
  +++ InteropTestPortTypeWrapper.h	7 Nov 2003 09:46:21 -0000	1.1.4.1
  @@ -24,10 +24,10 @@
   public:
   	virtual ~InteropTestPortTypeWrapper();
   public://implementation of WrapperClassHandler interface
  -	int Invoke(IMessageData* mc);
  -	void OnFault(IMessageData* pMsg);
  -	int Init();
  -	int Fini();
  +	int AXISCALL(Invoke)(IMessageData* mc);
  +	void AXISCALL(OnFault)(IMessageData* pMsg);
  +	int AXISCALL(Init)();
  +	int AXISCALL(Fini)();
   private://Methods corresponding to the web service methods
   	int echoString(IMessageData* mc);
   	int echoStringArray(IMessageData* mc);
  
  
  
  No                   revision
  No                   revision
  1.1.4.1   +4 -4      ws-axis/c/src/server/samples/interoptests/groupB/InteropTestPortTypeBWrapper.h
  
  Index: InteropTestPortTypeBWrapper.h
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/server/samples/interoptests/groupB/InteropTestPortTypeBWrapper.h,v
  retrieving revision 1.1
  retrieving revision 1.1.4.1
  diff -u -r1.1 -r1.1.4.1
  --- InteropTestPortTypeBWrapper.h	21 Oct 2003 15:09:04 -0000	1.1
  +++ InteropTestPortTypeBWrapper.h	7 Nov 2003 09:46:21 -0000	1.1.4.1
  @@ -24,10 +24,10 @@
   public:
   	virtual ~InteropTestPortTypeBWrapper();
   public://implementation of WrapperClassHandler interface
  -	int Invoke(IMessageData* mc);
  -	void OnFault(IMessageData* pMsg);
  -	int Init();
  -	int Fini();
  +	int AXISCALL(Invoke)(IMessageData* mc);
  +	void AXISCALL(OnFault)(IMessageData* pMsg);
  +	int AXISCALL(Init)();
  +	int AXISCALL(Fini)();
   private://Methods corresponding to the web service methods
   	int echoStructAsSimpleTypes(IMessageData* mc);
   	int echoSimpleTypesAsStruct(IMessageData* mc);
  
  
  
  No                   revision
  No                   revision
  1.17.4.1  +5 -5      ws-axis/c/src/soap/SoapDeSerializer.cpp
  
  Index: SoapDeSerializer.cpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/soap/SoapDeSerializer.cpp,v
  retrieving revision 1.17
  retrieving revision 1.17.4.1
  diff -u -r1.17 -r1.17.4.1
  --- SoapDeSerializer.cpp	22 Oct 2003 03:40:05 -0000	1.17
  +++ SoapDeSerializer.cpp	7 Nov 2003 09:46:21 -0000	1.17.4.1
  @@ -207,7 +207,7 @@
   	return m_pHandler->m_nSoapVersion;	
   }
   
  -Axis_Array SoapDeSerializer::GetArray(void* pDZFunct, void* pCreFunct, void* pDelFunct, void* pSizeFunct, const AxisChar* pchTypeName, const AxisChar* pchURI)
  +Axis_Array SoapDeSerializer::GetCmplxArray(void* pDZFunct, void* pCreFunct, void* pDelFunct, void* pSizeFunct, const AxisChar* pchTypeName, const AxisChar* pchURI)
   {
   	Axis_Array Array = {NULL, 0};
   	Param *param = (Param*)GetParam();
  @@ -282,7 +282,7 @@
   	return SUCCESS;
   }
   
  -Axis_Array SoapDeSerializer::GetArray(XSDTYPE nType)
  +Axis_Array SoapDeSerializer::GetBasicArray(XSDTYPE nType)
   {
   	Axis_Array Array = {NULL, 0};
   	Param *param = (Param*)GetParam();
  @@ -322,17 +322,17 @@
   //	if (param->GetTypeName() == pchTypeName) return NULL; //UNEXPECTED_PARAM_TYPE
   //	if (param->GetURI() == pchURI) return NULL; //UNEXPECTED_PARAM_TYPE
   
  -	void* pObject = ((AXIS_OBJECT_CREATE_FUNCT)pCreFunct)();
  +	void* pObject = ((AXIS_OBJECT_CREATE_FUNCT)pCreFunct)(false,0);
   	if (!pObject) return NULL;
   
   	if (SUCCESS != param->SetUserType(pObject, (AXIS_DESERIALIZE_FUNCT)pDZFunct, (AXIS_OBJECT_DELETE_FUNCT)pDelFunct))
   	{
  -		((AXIS_OBJECT_DELETE_FUNCT)pDelFunct)(pObject);
  +		((AXIS_OBJECT_DELETE_FUNCT)pDelFunct)(pObject, false, 0);
   		return NULL;
   	}
   	if (SUCCESS != Deserialize(param,0))
   	{
  -		((AXIS_OBJECT_DELETE_FUNCT)pDelFunct)(pObject);
  +		((AXIS_OBJECT_DELETE_FUNCT)pDelFunct)(pObject, false, 0);
   		return NULL;
   	}
   	return pObject;
  
  
  
  1.30.4.1  +117 -5    ws-axis/c/src/soap/SoapSerializer.cpp
  
  Index: SoapSerializer.cpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/soap/SoapSerializer.cpp,v
  retrieving revision 1.30
  retrieving revision 1.30.4.1
  diff -u -r1.30 -r1.30.4.1
  --- SoapSerializer.cpp	24 Oct 2003 05:37:46 -0000	1.30
  +++ SoapSerializer.cpp	7 Nov 2003 09:46:21 -0000	1.30.4.1
  @@ -77,6 +77,7 @@
   #include <axis/common/BasicTypeSerializer.h>
   #include <axis/soap/SoapKeywordMapping.h>
   #include <stdio.h>
  +#include <stdarg.h>
   
   //////////////////////////////////////////////////////////////////////
   // Construction/Destruction
  @@ -246,7 +247,7 @@
   	return AddOutputParamHelper(pchName, type, uValue);
   }
   
  -int SoapSerializer::AddOutputParam(const AxisChar* pchName, const Axis_Array* pArray, XSDTYPE nType)
  +int SoapSerializer::AddOutputBasicArrayParam(const AxisChar* pchName, const Axis_Array* pArray, XSDTYPE nType)
   {
   	IArrayBean* pAb = makeArrayBean(nType, (void*)(pArray->m_Array));
   	pAb->AddDimension(pArray->m_Size);
  @@ -262,7 +263,7 @@
   	return SUCCESS;	
   }
   
  -int SoapSerializer::AddOutputParam(const AxisChar* pchName, const Axis_Array* pArray, void* pSZFunct, void* pDelFunct, void* pSizeFunct, const AxisChar* pchTypeName, const AxisChar* pchURI)
  +int SoapSerializer::AddOutputCmplxArrayParam(const AxisChar* pchName, const Axis_Array* pArray, void* pSZFunct, void* pDelFunct, void* pSizeFunct, const AxisChar* pchTypeName, const AxisChar* pchURI)
   {
   	IArrayBean* pAb = makeArrayBean((void*)(pArray->m_Array), pSZFunct, pDelFunct, pSizeFunct);
   	pAb->AddDimension(pArray->m_Size);
  @@ -280,7 +281,7 @@
   	return SUCCESS;
   }
   
  -int SoapSerializer::AddOutputParam(const AxisChar* pchName, void* pObject, void* pSZFunct, void* pDelFunct)
  +int SoapSerializer::AddOutputCmplxParam(const AxisChar* pchName, void* pObject, void* pSZFunct, void* pDelFunct)
   { 
   	Param* pParam = new Param();
   	pParam->m_Value.pCplxObj = new ComplexObjectHandler;
  @@ -539,7 +540,7 @@
    * Used to Serialize an array of complex types inside a complex type. Called from within the Serialize wrapper
    * method of the complex type.
    */
  -int SoapSerializer::SerializeArray(const Axis_Array* pArray, void* pSZFunct, void* pDelFunct, void* pSizeFunct, const AxisChar* pchTypeName, const AxisChar* pchURI, const AxisChar* pchArrayName)
  +int SoapSerializer::SerializeCmplxArray(const Axis_Array* pArray, void* pSZFunct, void* pDelFunct, void* pSizeFunct, const AxisChar* pchTypeName, const AxisChar* pchURI, const AxisChar* pchArrayName)
   {
   	ArrayBean* pAb = (ArrayBean*)makeArrayBean((void*)(pArray->m_Array), pSZFunct, pDelFunct, pSizeFunct);
   	pAb->AddDimension(pArray->m_Size);
  @@ -562,7 +563,7 @@
    * Used to Serialize an array of basic types inside a complex type. Called from within the Serialize wrapper
    * method of the complex type.
    */
  -int SoapSerializer::SerializeArray(const Axis_Array* pArray, XSDTYPE nType, const AxisChar* pchArrayName)
  +int SoapSerializer::SerializeBasicArray(const Axis_Array* pArray, XSDTYPE nType, const AxisChar* pchArrayName)
   {
   	ArrayBean* pAb = (ArrayBean*)makeArrayBean(nType, (void*)(pArray->m_Array));
   	pAb->AddDimension(pArray->m_Size);
  @@ -578,3 +579,114 @@
   	delete pParam;
   	return SUCCESS;
   }
  +
  +int SoapSerializer::AddOutputParam(const AxisChar* pchName, void* pValue, XSDTYPE type)
  +{
  +	switch(type)
  +	{
  +	case XSD_INT:
  +	case XSD_BOOLEAN:
  +		AddOutputParam(pchName,*((int*)(pValue)),type);
  +		break; 
  +    case XSD_UNSIGNEDINT:
  +		AddOutputParam(pchName,*((unsigned int*)(pValue)),type);
  +		break;           
  +    case XSD_SHORT:
  +		AddOutputParam(pchName,*((short*)(pValue)),type);
  +		break; 
  +    case XSD_UNSIGNEDSHORT:
  +		AddOutputParam(pchName,*((unsigned short*)(pValue)),type);
  +		break;         
  +    case XSD_BYTE:
  +		AddOutputParam(pchName,*((char*)(pValue)),type);
  +		break; 
  +    case XSD_UNSIGNEDBYTE:
  +		AddOutputParam(pchName,*((unsigned char*)(pValue)),type);
  +		break;
  +    case XSD_LONG:
  +    case XSD_INTEGER:
  +	case XSD_DURATION:
  +		AddOutputParam(pchName,*((long*)(pValue)),type);
  +		break;        
  +    case XSD_UNSIGNEDLONG:
  +		AddOutputParam(pchName,*((unsigned long*)(pValue)),type);
  +		break;
  +	case XSD_FLOAT:
  +		AddOutputParam(pchName,*((float*)(pValue)),type);
  +		break;
  +    case XSD_DOUBLE:
  +    case XSD_DECIMAL:
  +		AddOutputParam(pchName,*((double*)(pValue)),type);
  +		break;              
  +	case XSD_STRING:
  +	case XSD_HEXBINARY:
  +	case XSD_BASE64BINARY:
  +		AddOutputParam(pchName,((char*)(pValue)),type);
  +		break;
  +    case XSD_DATETIME:
  +    case XSD_DATE:
  +    case XSD_TIME:
  +		AddOutputParam(pchName,*((struct tm*)(pValue)),type);
  +        break;        
  +	}
  +	return SUCCESS;
  +}
  +
  +const AxisChar* SoapSerializer::SerializeBasicType(const AxisChar* pchName, void* pValue, XSDTYPE type)
  +{
  +	switch(type)
  +	{
  +	case XSD_INT:
  +	case XSD_BOOLEAN:
  +		return SerializeBasicType(pchName,*((int*)(pValue)),type);
  +    case XSD_UNSIGNEDINT:
  +		return SerializeBasicType(pchName,*((unsigned int*)(pValue)),type);
  +    case XSD_SHORT:
  +		return SerializeBasicType(pchName,*((short*)(pValue)),type);
  +    case XSD_UNSIGNEDSHORT:
  +		return SerializeBasicType(pchName,*((unsigned short*)(pValue)),type);
  +    case XSD_BYTE:
  +		return SerializeBasicType(pchName,*((char*)(pValue)),type);
  +    case XSD_UNSIGNEDBYTE:
  +		return SerializeBasicType(pchName,*((unsigned char*)(pValue)),type);
  +    case XSD_LONG:
  +    case XSD_INTEGER:
  +	case XSD_DURATION:
  +		return SerializeBasicType(pchName,*((long*)(pValue)),type);
  +    case XSD_UNSIGNEDLONG:
  +		return SerializeBasicType(pchName,*((unsigned long*)(pValue)),type);
  +	case XSD_FLOAT:
  +		return SerializeBasicType(pchName,*((float*)(pValue)),type);
  +    case XSD_DOUBLE:
  +    case XSD_DECIMAL:
  +		return SerializeBasicType(pchName,*((double*)(pValue)),type);
  +	case XSD_STRING:
  +	case XSD_HEXBINARY:
  +	case XSD_BASE64BINARY:
  +		return SerializeBasicType(pchName,((char*)(pValue)),type);
  +    case XSD_DATETIME:
  +    case XSD_DATE:
  +    case XSD_TIME:
  +		return SerializeBasicType(pchName,*((struct tm*)(pValue)),type);
  +	}
  +	return NULL;
  +}
  +
  +void SoapSerializer::Serialize(const char* pFirst, ...)
  +{
  +	va_list vList;
  +	const char* pArg;
  +	va_start( vList, pFirst );     /* Initialize variable arguments. */
  +	do
  +	{
  +		pArg = va_arg( vList, const char*);
  +		if (pArg)
  +			*this << pArg;
  +	}
  +	while (pArg != NULL);
  +	va_end( vList);              /* Reset variable arguments.      */
  +}
  +
  +
  +
  +
  
  
  
  No                   revision
  No                   revision
  1.14.2.1  +1 -1      ws-axis/c/vc/server/apache1_3/Apache1_3.dsp
  
  Index: Apache1_3.dsp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/vc/server/apache1_3/Apache1_3.dsp,v
  retrieving revision 1.14
  retrieving revision 1.14.2.1
  diff -u -r1.14 -r1.14.2.1
  --- Apache1_3.dsp	30 Oct 2003 06:24:16 -0000	1.14
  +++ Apache1_3.dsp	7 Nov 2003 09:46:21 -0000	1.14.2.1
  @@ -71,7 +71,7 @@
   # PROP Ignore_Export_Lib 0
   # PROP Target_Dir ""
   # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "APACHE1_3_EXPORTS" /YX /FD /GZ /c
  -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "APACHE1_3_EXPORTS" /D "AXIS_APACHE1_3" /YX /FD /GZ /c
  +# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "APACHE1_3_EXPORTS" /D "AXIS_APACHE1_3" /FR /YX /FD /GZ /c
   # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
   # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
   # ADD BASE RSC /l 0x409 /d "_DEBUG"
  
  
  
  No                   revision
  No                   revision
  1.3.4.1   +4 -4      ws-axis/c/vc/server/samples/cservicewrapper/cservicewrapper.dsp
  
  Index: cservicewrapper.dsp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/vc/server/samples/cservicewrapper/cservicewrapper.dsp,v
  retrieving revision 1.3
  retrieving revision 1.3.4.1
  diff -u -r1.3 -r1.3.4.1
  --- cservicewrapper.dsp	26 Oct 2003 09:45:47 -0000	1.3
  +++ cservicewrapper.dsp	7 Nov 2003 09:46:21 -0000	1.3.4.1
  @@ -69,7 +69,7 @@
   # PROP Ignore_Export_Lib 0
   # PROP Target_Dir ""
   # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "CSERVICEWRAPPER_EXPORTS" /YX /FD /GZ /c
  -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../include" /I "../../../../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "CSERVICEWRAPPER_EXPORTS" /YX /FD /GZ /c
  +# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../include" /I "../../../../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "CSERVICEWRAPPER_EXPORTS" /FR /YX /FD /GZ /c
   # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
   # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
   # ADD BASE RSC /l 0x409 /d "_DEBUG"
  @@ -92,11 +92,11 @@
   # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
   # Begin Source File
   
  -SOURCE=..\..\..\..\src\server\samples\cservicewrapper\CService.cpp
  +SOURCE=..\..\..\..\src\server\samples\cservicewrapper\CService.c
   # End Source File
   # Begin Source File
   
  -SOURCE=..\..\..\..\src\server\samples\cservicewrapper\CServiceWrapper.cpp
  +SOURCE=..\..\..\..\src\server\samples\cservicewrapper\CServiceWrapper.c
   # End Source File
   # End Group
   # Begin Group "Header Files"
  @@ -104,7 +104,7 @@
   # PROP Default_Filter "h;hpp;hxx;hm;inl"
   # Begin Source File
   
  -SOURCE=..\..\..\..\src\server\samples\cservicewrapper\CServiceWrapper.hpp
  +SOURCE=..\..\..\..\src\server\samples\cservicewrapper\CServiceWrapper.h
   # End Source File
   # End Group
   # Begin Group "Resource Files"
  
  
  

Mime
View raw message