susantha 2004/02/10 04:19:58
Modified: c/include/axis/client Call.h
c/samples/client/interoptests/cbase InteropBaseClient.c
InteropTestPortType.c InteropTestPortType.h
c/samples/server/interoptests/cbase
InteropTestPortTypeService.c
InteropTestPortTypeWrapper.c
c/src/client Call.cpp
Log:
C client stubs sample for InteropBase test changed to suite multi-threaded clients
Revision Changes Path
1.9 +16 -16 ws-axis/c/include/axis/client/Call.h
Index: Call.h
===================================================================
RCS file: /home/cvs/ws-axis/c/include/axis/client/Call.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- Call.h 3 Feb 2004 13:04:45 -0000 1.8
+++ Call.h 10 Feb 2004 12:19:58 -0000 1.9
@@ -158,24 +158,11 @@
int (AXISCALL* CheckMessage)(void *pObj, const AxisChar* pName, const AxisChar* pNamespace);
} CallFunctions;
-#ifndef __cplusplus
+#ifdef __cplusplus
-typedef struct {
- void* unused; /* this corresponds to C++ virtual function pointer which is ignored in
C */
- CallFunctions* __vfptr;
-} Call;
-
-#else
-
-/**
- * CallBase class is needed to make sure that __vfptr is the second void* after virtual
pointer.
- * If we dont have CallBase the position of __vfptr in an Call object cannot be guarenteed
to be
- * in the second void*.
- */
class CallBase
{
public:
- void* __vfptr;
virtual void AXISCALL SetSOAPVersion(SOAP_VERSION version)=0;
virtual int AXISCALL SetTransportProperty(AXIS_TRANSPORT_INFORMATION_TYPE type, const
char* value)=0;
virtual int AXISCALL SetProtocol(AXIS_PROTOCOL_TYPE protocol)=0;
@@ -563,9 +550,22 @@
};
#endif
+typedef struct {
+ void* _object; /* this will be C++ Call Object */
+ CallFunctions* _functions; /* this is the static function table */
+} Call_C;
+
#ifdef __cplusplus
-extern "C"
+extern "C" {
+#endif
+void* GetStubObject(AXIS_PROTOCOL_TYPE nProtocol, AxisChar* pchEndpointURI);
+void DestroyStubObject(void* pCall);
+#ifdef __cplusplus
+}
+#endif
+
+#ifndef __cplusplus
+typedef Call_C Call;
#endif
-Call* GetCallObject(AXIS_PROTOCOL_TYPE nProtocol, AxisChar* pchEndpointURI);
#endif /* !defined(AFX_CALL_H__D13E5626_0A9B_43EA_B606_364B98CEDAA8__INCLUDED_)*/
1.4 +16 -15 ws-axis/c/samples/client/interoptests/cbase/InteropBaseClient.c
Index: InteropBaseClient.c
===================================================================
RCS file: /home/cvs/ws-axis/c/samples/client/interoptests/cbase/InteropBaseClient.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- InteropBaseClient.c 3 Feb 2004 14:17:11 -0000 1.3
+++ InteropBaseClient.c 10 Feb 2004 12:19:58 -0000 1.4
@@ -19,10 +19,10 @@
SOAPStruct stct;
time_t tim;
struct tm* lt;
-
+ void* pstub = get_InteropBase_stub();
printf("invoking echoString...\n");
/*testing echoString */
- if (0 == strcmp(echoString("hello world"), "hello world"))
+ if (0 == strcmp(echoString(pstub, "hello world"), "hello world"))
printf("successful\n");
else
printf("failed\n");
@@ -36,13 +36,13 @@
}
/*arrstr.m_Array[1] = buffer2;*/
printf("invoking echoStringArray...\n");
- if (echoStringArray(arrstr).m_Array != NULL)
+ if (echoStringArray(pstub, arrstr).m_Array != NULL)
printf("successful\n");
else
printf("failed\n");
/* testing echoInteger */
printf("invoking echoInteger...\n");
- if (echoInteger(56) == 56)
+ if (echoInteger(pstub, 56) == 56)
printf("successful\n");
else
printf("failed\n");
@@ -54,13 +54,13 @@
arrint.m_Array[x] = x;
}
printf("invoking echoIntegerArray...\n");
- if (echoIntegerArray(arrint).m_Array != NULL)
+ if (echoIntegerArray(pstub, arrint).m_Array != NULL)
printf("successful\n");
else
printf("failed\n");
/* testing echoFloat */
printf("invoking echoFloat...\n");
- if (echoFloat(1.4214) > 1.42)
+ if (echoFloat(pstub, 1.4214) > 1.42)
printf("successful\n");
else
printf("failed\n");
@@ -72,7 +72,7 @@
arrfloat.m_Array[x] = 1.1111*x;
}
printf("invoking echoFloatArray...\n");
- if (echoFloatArray(arrfloat).m_Array != NULL)
+ if (echoFloatArray(pstub, arrfloat).m_Array != NULL)
printf("successful\n");
else
printf("failed\n");
@@ -81,7 +81,7 @@
stct.varInt = 5000;
stct.varString = strdup("This is string in SOAPStruct");
printf("invoking echoStruct...\n");
- if (echoStruct(&stct) != NULL)
+ if (echoStruct(pstub, &stct) != NULL)
printf("successful\n");
else
printf("failed\n");
@@ -98,7 +98,7 @@
*/
/*testing echo Struct Array*/
/* printf("invoking echoStructArray...\n");
- if (echoStructArray(arrstct).m_Array != NULL)
+ if (echoStructArray(pstub, arrstct).m_Array != NULL)
printf("successful\n");
else
printf("failed\n");
@@ -106,12 +106,12 @@
/*testing echo void*/
/*
printf("invoking echoVoid...\n");
- echoVoid();
+ echoVoid(pstub);
printf("successful\n");
*/
/*testing echo base 64 binary*/
/* printf("invoking echoBase64...\n");
- if (0 == strcmp(ws.echoBase64("BCDF675E234242WHRTKMJDGKGUEJ898636JFJFHEJDGWTDHFJRURYGBCDHTWRSG"),
+ if (0 == strcmp(ws.echoBase64(pstub, "BCDF675E234242WHRTKMJDGKGUEJ898636JFJFHEJDGWTDHFJRURYGBCDHTWRSG"),
"BCDF675E234242WHRTKMJDGKGUEJ898636JFJFHEJDGWTDHFJRURYGBCDHTWRSG"))
printf("successful\n");
else
@@ -119,27 +119,27 @@
time(&tim);
lt = gmtime(&tim);
printf("invoking echoDate...\n");
- if (memcmp(&(echoDate(*lt)), lt, sizeof(tm)) == 0)
+ if (memcmp(&(echoDate(pstub, *lt)), lt, sizeof(tm)) == 0)
printf("successful\n");
else
printf("failed\n");
//testing echo hex binary
printf("invoking echoHexBinary...\n");
- if (0 == strcmp(echoHexBinary("CCCFFA46552BC7D5A09BC5F23DE9E0FE7862AD45BC87D02FEE"),
+ if (0 == strcmp(echoHexBinary(pstub, "CCCFFA46552BC7D5A09BC5F23DE9E0FE7862AD45BC87D02FEE"),
"CCCFFA46552BC7D5A09BC5F23DE9E0FE7862AD45BC87D02FEE"))
printf("successful\n");
else
printf("failed\n");
*/ /*testing echo decimal*/
/* printf("invoking echoDecimal...\n");
- if (echoDecimal(1234.567890) > 1234.56)
+ if (echoDecimal(pstub, 1234.567890) > 1234.56)
printf("successful\n");
else
printf("failed\n");
*/
/*testing echo boolean*/
/* printf("invoking echoBoolean...\n");
- if (echoBoolean(true_) == true_)
+ if (echoBoolean(pstub, true_) == true_)
printf("successful\n");
else
printf("failed\n");
@@ -147,4 +147,5 @@
getchar();
return 0;
*/
+ destroy_InteropBase_stub(pstub);
}
1.6 +164 -198 ws-axis/c/samples/client/interoptests/cbase/InteropTestPortType.c
Index: InteropTestPortType.c
===================================================================
RCS file: /home/cvs/ws-axis/c/samples/client/interoptests/cbase/InteropTestPortType.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- InteropTestPortType.c 9 Feb 2004 14:57:06 -0000 1.5
+++ InteropTestPortType.c 10 Feb 2004 12:19:58 -0000 1.6
@@ -13,33 +13,37 @@
extern int Axis_GetSize_SOAPStruct();
-/*Methods corresponding to the web service methods*/
+void* get_InteropBase_stub(){
+ return GetStubObject(APTHTTP, "http://localhost/axis/InteropBase");
+}
+void destroy_InteropBase_stub(void* p){
+ DestroyStubObject(p);
+}
+
+/*Methods corresponding to the web service methods*/
/*
* This method wrap the service methodechoString
*/
-xsd__string echoString(xsd__string Value0)
+xsd__string echoString(void* pStub, xsd__string Value0)
{
int nStatus;
- CallFunctions* pCall;
+ Call* pCall = (Call*)pStub;
xsd__string Ret;
- if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost/axis/InteropBase");
- if (!g_pInteropTestPortType || !g_pInteropTestPortType->__vfptr) return Ret;
- pCall = g_pInteropTestPortType->__vfptr;
/* Following will establish the connections with the server too */
- if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType, C_RPC_PROVIDER)) return
Ret;
- pCall->SetTransportProperty(g_pInteropTestPortType,SOAPACTION_HEADER , "InteropBase#echoString");
- pCall->SetSOAPVersion(g_pInteropTestPortType, SOAP_VER_1_1);
- pCall->SetOperation(g_pInteropTestPortType, "echoString", "http://soapinterop.org/");
- pCall->AddParameter(g_pInteropTestPortType, (void*)&Value0, "inputString", XSD_STRING);
- if (AXIS_SUCCESS == pCall->Invoke(g_pInteropTestPortType))
+ if (AXIS_SUCCESS != pCall->_functions->Initialize(pCall->_object, C_RPC_PROVIDER))
return Ret;
+ pCall->_functions->SetTransportProperty(pCall->_object,SOAPACTION_HEADER , "InteropBase#echoString");
+ pCall->_functions->SetSOAPVersion(pCall->_object, SOAP_VER_1_1);
+ pCall->_functions->SetOperation(pCall->_object, "echoString", "http://soapinterop.org/");
+ pCall->_functions->AddParameter(pCall->_object, (void*)&Value0, "inputString",
XSD_STRING);
+ if (AXIS_SUCCESS == pCall->_functions->Invoke(pCall->_object))
{
- if(AXIS_SUCCESS == pCall->CheckMessage(g_pInteropTestPortType, "echoStringResponse",
""))
+ if(AXIS_SUCCESS == pCall->_functions->CheckMessage(pCall->_object, "echoStringResponse",
""))
{
- Ret = pCall->GetElementAsString(g_pInteropTestPortType, 0, 0);
+ Ret = pCall->_functions->GetElementAsString(pCall->_object, 0, 0);
}
}
- pCall->UnInitialize(g_pInteropTestPortType);
+ pCall->_functions->UnInitialize(pCall->_object);
return Ret;
}
@@ -47,30 +51,27 @@
/*
* This method wrap the service methodechoStringArray
*/
-xsd__string_Array echoStringArray(xsd__string_Array Value0)
+xsd__string_Array echoStringArray(void* pStub, xsd__string_Array Value0)
{
int nStatus;
- CallFunctions* pCall;
+ Call* pCall = (Call*)pStub;
xsd__string_Array RetArray = {NULL, 0};
Axis_Array array;
- if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost/axis/InteropBase");
- if (!g_pInteropTestPortType || !g_pInteropTestPortType->__vfptr) return RetArray;
- pCall = g_pInteropTestPortType->__vfptr;
- /* Following will establish the connections with the server too */
- if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType, C_RPC_PROVIDER)) return
RetArray;
- pCall->SetTransportProperty(g_pInteropTestPortType,SOAPACTION_HEADER , "InteropBase#echoStringArray");
- pCall->SetSOAPVersion(g_pInteropTestPortType, SOAP_VER_1_1);
- pCall->SetOperation(g_pInteropTestPortType, "echoStringArray", "http://soapinterop.org/");
- pCall->AddBasicArrayParameter(g_pInteropTestPortType, (Axis_Array*)(&Value0), XSD_STRING,
"inputStringArray");
- if (AXIS_SUCCESS == pCall->Invoke(g_pInteropTestPortType))
+ /* Following will establish the connections with the server too */
+ if (AXIS_SUCCESS != pCall->_functions->Initialize(pCall->_object, C_RPC_PROVIDER))
return RetArray;
+ pCall->_functions->SetTransportProperty(pCall->_object,SOAPACTION_HEADER , "InteropBase#echoStringArray");
+ pCall->_functions->SetSOAPVersion(pCall->_object, SOAP_VER_1_1);
+ pCall->_functions->SetOperation(pCall->_object, "echoStringArray", "http://soapinterop.org/");
+ pCall->_functions->AddBasicArrayParameter(pCall->_object, (Axis_Array*)(&Value0),
XSD_STRING, "inputStringArray");
+ if (AXIS_SUCCESS == pCall->_functions->Invoke(pCall->_object))
{
- if(AXIS_SUCCESS == pCall->CheckMessage(g_pInteropTestPortType, "echoStringArrayResponse",
""))
+ if(AXIS_SUCCESS == pCall->_functions->CheckMessage(pCall->_object, "echoStringArrayResponse",
""))
{
- array = pCall->GetBasicArray(g_pInteropTestPortType, XSD_STRING, 0, 0);
+ array = pCall->_functions->GetBasicArray(pCall->_object, XSD_STRING, 0, 0);
memcpy(&RetArray, &array, sizeof(Axis_Array));
}
}
- pCall->UnInitialize(g_pInteropTestPortType);
+ pCall->_functions->UnInitialize(pCall->_object);
return RetArray;
}
@@ -78,28 +79,25 @@
/*
* This method wrap the service methodechoInteger
*/
-int echoInteger(int Value0)
+int echoInteger(void* pStub, int Value0)
{
int nStatus;
- CallFunctions* pCall;
+ Call* pCall = (Call*)pStub;
int Ret;
- if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost/axis/InteropBase");
- if (!g_pInteropTestPortType || !g_pInteropTestPortType->__vfptr) return Ret;
- pCall = g_pInteropTestPortType->__vfptr;
/* Following will establish the connections with the server too */
- if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType, C_RPC_PROVIDER)) return
Ret;
- pCall->SetTransportProperty(g_pInteropTestPortType,SOAPACTION_HEADER , "InteropBase#echoInteger");
- pCall->SetSOAPVersion(g_pInteropTestPortType, SOAP_VER_1_1);
- pCall->SetOperation(g_pInteropTestPortType, "echoInteger", "http://soapinterop.org/");
- pCall->AddParameter(g_pInteropTestPortType, (void*)&Value0, "inputInteger", XSD_INT);
- if (AXIS_SUCCESS == pCall->Invoke(g_pInteropTestPortType))
+ if (AXIS_SUCCESS != pCall->_functions->Initialize(pCall->_object, C_RPC_PROVIDER))
return Ret;
+ pCall->_functions->SetTransportProperty(pCall->_object,SOAPACTION_HEADER , "InteropBase#echoInteger");
+ pCall->_functions->SetSOAPVersion(pCall->_object, SOAP_VER_1_1);
+ pCall->_functions->SetOperation(pCall->_object, "echoInteger", "http://soapinterop.org/");
+ pCall->_functions->AddParameter(pCall->_object, (void*)&Value0, "inputInteger",
XSD_INT);
+ if (AXIS_SUCCESS == pCall->_functions->Invoke(pCall->_object))
{
- if(AXIS_SUCCESS == pCall->CheckMessage(g_pInteropTestPortType, "echoIntegerResponse",
""))
+ if(AXIS_SUCCESS == pCall->_functions->CheckMessage(pCall->_object, "echoIntegerResponse",
""))
{
- Ret = pCall->GetElementAsInt(g_pInteropTestPortType, 0, 0);
+ Ret = pCall->_functions->GetElementAsInt(pCall->_object, 0, 0);
}
}
- pCall->UnInitialize(g_pInteropTestPortType);
+ pCall->_functions->UnInitialize(pCall->_object);
return Ret;
}
@@ -107,30 +105,27 @@
/*
* This method wrap the service methodechoIntegerArray
*/
-xsd__int_Array echoIntegerArray(xsd__int_Array Value0)
+xsd__int_Array echoIntegerArray(void* pStub, xsd__int_Array Value0)
{
int nStatus;
- CallFunctions* pCall;
+ Call* pCall = (Call*)pStub;
xsd__int_Array RetArray = {NULL, 0};
Axis_Array array;
- if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost/axis/InteropBase");
- if (!g_pInteropTestPortType || !g_pInteropTestPortType->__vfptr) return RetArray;
- pCall = g_pInteropTestPortType->__vfptr;
- /* Following will establish the connections with the server too */
- if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType, C_RPC_PROVIDER)) return
RetArray;
- pCall->SetTransportProperty(g_pInteropTestPortType,SOAPACTION_HEADER , "InteropBase#echoIntegerArray");
- pCall->SetSOAPVersion(g_pInteropTestPortType, SOAP_VER_1_1);
- pCall->SetOperation(g_pInteropTestPortType, "echoIntegerArray", "http://soapinterop.org/");
- pCall->AddBasicArrayParameter(g_pInteropTestPortType, (Axis_Array*)(&Value0), XSD_INT,
"inputIntegerArray");
- if (AXIS_SUCCESS == pCall->Invoke(g_pInteropTestPortType))
+ /* Following will establish the connections with the server too */
+ if (AXIS_SUCCESS != pCall->_functions->Initialize(pCall->_object, C_RPC_PROVIDER))
return RetArray;
+ pCall->_functions->SetTransportProperty(pCall->_object,SOAPACTION_HEADER , "InteropBase#echoIntegerArray");
+ pCall->_functions->SetSOAPVersion(pCall->_object, SOAP_VER_1_1);
+ pCall->_functions->SetOperation(pCall->_object, "echoIntegerArray", "http://soapinterop.org/");
+ pCall->_functions->AddBasicArrayParameter(pCall->_object, (Axis_Array*)(&Value0),
XSD_INT, "inputIntegerArray");
+ if (AXIS_SUCCESS == pCall->_functions->Invoke(pCall->_object))
{
- if(AXIS_SUCCESS == pCall->CheckMessage(g_pInteropTestPortType, "echoIntegerArrayResponse",
""))
+ if(AXIS_SUCCESS == pCall->_functions->CheckMessage(pCall->_object, "echoIntegerArrayResponse",
""))
{
- array = pCall->GetBasicArray(g_pInteropTestPortType, XSD_INT, 0, 0);
+ array = pCall->_functions->GetBasicArray(pCall->_object, XSD_INT, 0, 0);
memcpy(&RetArray, &array, sizeof(Axis_Array));
}
}
- pCall->UnInitialize(g_pInteropTestPortType);
+ pCall->_functions->UnInitialize(pCall->_object);
return RetArray;
}
@@ -138,28 +133,25 @@
/*
* This method wrap the service methodechoFloat
*/
-float echoFloat(float Value0)
+float echoFloat(void* pStub, float Value0)
{
int nStatus;
- CallFunctions* pCall;
+ Call* pCall = (Call*)pStub;
float Ret;
- if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost/axis/InteropBase");
- if (!g_pInteropTestPortType || !g_pInteropTestPortType->__vfptr) return Ret;
- pCall = g_pInteropTestPortType->__vfptr;
/* Following will establish the connections with the server too */
- if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType, C_RPC_PROVIDER)) return
Ret;
- pCall->SetTransportProperty(g_pInteropTestPortType,SOAPACTION_HEADER , "InteropBase#echoFloat");
- pCall->SetSOAPVersion(g_pInteropTestPortType, SOAP_VER_1_1);
- pCall->SetOperation(g_pInteropTestPortType, "echoFloat", "http://soapinterop.org/");
- pCall->AddParameter(g_pInteropTestPortType, (void*)&Value0, "inputFloat", XSD_FLOAT);
- if (AXIS_SUCCESS == pCall->Invoke(g_pInteropTestPortType))
+ if (AXIS_SUCCESS != pCall->_functions->Initialize(pCall->_object, C_RPC_PROVIDER))
return Ret;
+ pCall->_functions->SetTransportProperty(pCall->_object,SOAPACTION_HEADER , "InteropBase#echoFloat");
+ pCall->_functions->SetSOAPVersion(pCall->_object, SOAP_VER_1_1);
+ pCall->_functions->SetOperation(pCall->_object, "echoFloat", "http://soapinterop.org/");
+ pCall->_functions->AddParameter(pCall->_object, (void*)&Value0, "inputFloat",
XSD_FLOAT);
+ if (AXIS_SUCCESS == pCall->_functions->Invoke(pCall->_object))
{
- if(AXIS_SUCCESS == pCall->CheckMessage(g_pInteropTestPortType, "echoFloatResponse",
""))
+ if(AXIS_SUCCESS == pCall->_functions->CheckMessage(pCall->_object, "echoFloatResponse",
""))
{
- Ret = pCall->GetElementAsFloat(g_pInteropTestPortType, 0, 0);
+ Ret = pCall->_functions->GetElementAsFloat(pCall->_object, 0, 0);
}
}
- pCall->UnInitialize(g_pInteropTestPortType);
+ pCall->_functions->UnInitialize(pCall->_object);
return Ret;
}
@@ -167,30 +159,27 @@
/*
* This method wrap the service methodechoFloatArray
*/
-xsd__float_Array echoFloatArray(xsd__float_Array Value0)
+xsd__float_Array echoFloatArray(void* pStub, xsd__float_Array Value0)
{
int nStatus;
- CallFunctions* pCall;
+ Call* pCall = (Call*)pStub;
xsd__float_Array RetArray = {NULL, 0};
Axis_Array array;
- if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost/axis/InteropBase");
- if (!g_pInteropTestPortType || !g_pInteropTestPortType->__vfptr) return RetArray;
- pCall = g_pInteropTestPortType->__vfptr;
- /* Following will establish the connections with the server too */
- if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType, C_RPC_PROVIDER)) return
RetArray;
- pCall->SetTransportProperty(g_pInteropTestPortType,SOAPACTION_HEADER , "InteropBase#echoFloatArray");
- pCall->SetSOAPVersion(g_pInteropTestPortType, SOAP_VER_1_1);
- pCall->SetOperation(g_pInteropTestPortType, "echoFloatArray", "http://soapinterop.org/");
- pCall->AddBasicArrayParameter(g_pInteropTestPortType, (Axis_Array*)(&Value0), XSD_FLOAT,
"inputFloatArray");
- if (AXIS_SUCCESS == pCall->Invoke(g_pInteropTestPortType))
+ /* Following will establish the connections with the server too */
+ if (AXIS_SUCCESS != pCall->_functions->Initialize(pCall->_object, C_RPC_PROVIDER))
return RetArray;
+ pCall->_functions->SetTransportProperty(pCall->_object,SOAPACTION_HEADER , "InteropBase#echoFloatArray");
+ pCall->_functions->SetSOAPVersion(pCall->_object, SOAP_VER_1_1);
+ pCall->_functions->SetOperation(pCall->_object, "echoFloatArray", "http://soapinterop.org/");
+ pCall->_functions->AddBasicArrayParameter(pCall->_object, (Axis_Array*)(&Value0),
XSD_FLOAT, "inputFloatArray");
+ if (AXIS_SUCCESS == pCall->_functions->Invoke(pCall->_object))
{
- if(AXIS_SUCCESS == pCall->CheckMessage(g_pInteropTestPortType, "echoFloatArrayResponse",
""))
+ if(AXIS_SUCCESS == pCall->_functions->CheckMessage(pCall->_object, "echoFloatArrayResponse",
""))
{
- array = pCall->GetBasicArray(g_pInteropTestPortType, XSD_FLOAT, 0, 0);
+ array = pCall->_functions->GetBasicArray(pCall->_object, XSD_FLOAT, 0, 0);
memcpy(&RetArray, &array, sizeof(Axis_Array));
}
}
- pCall->UnInitialize(g_pInteropTestPortType);
+ pCall->_functions->UnInitialize(pCall->_object);
return RetArray;
}
@@ -198,28 +187,25 @@
/*
* This method wrap the service methodechoStruct
*/
-SOAPStruct* echoStruct(SOAPStruct* Value0)
+SOAPStruct* echoStruct(void* pStub, SOAPStruct* Value0)
{
int nStatus;
- CallFunctions* pCall;
+ Call* pCall = (Call*)pStub;
SOAPStruct* pReturn = NULL;
- if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost/axis/InteropBase");
- if (!g_pInteropTestPortType || !g_pInteropTestPortType->__vfptr) return pReturn;
- pCall = g_pInteropTestPortType->__vfptr;
/* Following will establish the connections with the server too */
- if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType, C_RPC_PROVIDER)) return
pReturn;
- pCall->SetTransportProperty(g_pInteropTestPortType,SOAPACTION_HEADER , "InteropBase#echoStruct");
- pCall->SetSOAPVersion(g_pInteropTestPortType, SOAP_VER_1_1);
- pCall->SetOperation(g_pInteropTestPortType, "echoStruct", "http://soapinterop.org/");
- pCall->AddCmplxParameter(g_pInteropTestPortType, Value0, (void*)Axis_Serialize_SOAPStruct,
(void*)Axis_Delete_SOAPStruct, "inputStruct", 0);
- if (AXIS_SUCCESS == pCall->Invoke(g_pInteropTestPortType))
+ if (AXIS_SUCCESS != pCall->_functions->Initialize(pCall->_object, C_RPC_PROVIDER))
return pReturn;
+ pCall->_functions->SetTransportProperty(pCall->_object,SOAPACTION_HEADER , "InteropBase#echoStruct");
+ pCall->_functions->SetSOAPVersion(pCall->_object, SOAP_VER_1_1);
+ pCall->_functions->SetOperation(pCall->_object, "echoStruct", "http://soapinterop.org/");
+ pCall->_functions->AddCmplxParameter(pCall->_object, Value0, (void*)Axis_Serialize_SOAPStruct,
(void*)Axis_Delete_SOAPStruct, "inputStruct", 0);
+ if (AXIS_SUCCESS == pCall->_functions->Invoke(pCall->_object))
{
- if(AXIS_SUCCESS == pCall->CheckMessage(g_pInteropTestPortType, "echoStructResponse",
""))
+ if(AXIS_SUCCESS == pCall->_functions->CheckMessage(pCall->_object, "echoStructResponse",
""))
{
- pReturn = (SOAPStruct*)pCall->GetCmplxObject(g_pInteropTestPortType, (void*) Axis_DeSerialize_SOAPStruct,
(void*) Axis_Create_SOAPStruct, (void*) Axis_Delete_SOAPStruct, 0, 0);
+ pReturn = (SOAPStruct*)pCall->_functions->GetCmplxObject(pCall->_object, (void*)
Axis_DeSerialize_SOAPStruct, (void*) Axis_Create_SOAPStruct, (void*) Axis_Delete_SOAPStruct,
0, 0);
}
}
- pCall->UnInitialize(g_pInteropTestPortType);
+ pCall->_functions->UnInitialize(pCall->_object);
return pReturn;
}
@@ -227,30 +213,27 @@
/*
* This method wrap the service methodechoStructArray
*/
-SOAPStruct_Array echoStructArray(SOAPStruct_Array Value0)
+SOAPStruct_Array echoStructArray(void* pStub, SOAPStruct_Array Value0)
{
int nStatus;
- CallFunctions* pCall;
+ Call* pCall = (Call*)pStub;
SOAPStruct_Array RetArray = {NULL, 0};
Axis_Array array;
- if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost/axis/InteropBase");
- if (!g_pInteropTestPortType || !g_pInteropTestPortType->__vfptr) return RetArray;
- pCall = g_pInteropTestPortType->__vfptr;
- /* Following will establish the connections with the server too */
- if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType, C_RPC_PROVIDER)) return
RetArray;
- pCall->SetTransportProperty(g_pInteropTestPortType,SOAPACTION_HEADER , "InteropBase#echoStructArray");
- pCall->SetSOAPVersion(g_pInteropTestPortType, SOAP_VER_1_1);
- pCall->SetOperation(g_pInteropTestPortType, "echoStructArray", "http://soapinterop.org/");
- pCall->AddCmplxArrayParameter(g_pInteropTestPortType, (Axis_Array*)(&Value0), (void*)Axis_Serialize_SOAPStruct,
(void*)Axis_Delete_SOAPStruct, (void*) Axis_GetSize_SOAPStruct, Axis_TypeName_SOAPStruct,
Axis_URI_SOAPStruct);
- if (AXIS_SUCCESS == pCall->Invoke(g_pInteropTestPortType))
+ /* Following will establish the connections with the server too */
+ if (AXIS_SUCCESS != pCall->_functions->Initialize(pCall->_object, C_RPC_PROVIDER))
return RetArray;
+ pCall->_functions->SetTransportProperty(pCall->_object,SOAPACTION_HEADER , "InteropBase#echoStructArray");
+ pCall->_functions->SetSOAPVersion(pCall->_object, SOAP_VER_1_1);
+ pCall->_functions->SetOperation(pCall->_object, "echoStructArray", "http://soapinterop.org/");
+ pCall->_functions->AddCmplxArrayParameter(pCall->_object, (Axis_Array*)(&Value0),
(void*)Axis_Serialize_SOAPStruct, (void*)Axis_Delete_SOAPStruct, (void*) Axis_GetSize_SOAPStruct,
Axis_TypeName_SOAPStruct, Axis_URI_SOAPStruct);
+ if (AXIS_SUCCESS == pCall->_functions->Invoke(pCall->_object))
{
- if(AXIS_SUCCESS == pCall->CheckMessage(g_pInteropTestPortType, "echoStructArrayResponse",
""))
+ if(AXIS_SUCCESS == pCall->_functions->CheckMessage(pCall->_object, "echoStructArrayResponse",
""))
{
- array = pCall->GetCmplxArray(g_pInteropTestPortType, (void*) Axis_DeSerialize_SOAPStruct,
(void*) Axis_Create_SOAPStruct, (void*) Axis_Delete_SOAPStruct, (void*) Axis_GetSize_SOAPStruct,
0, 0);
+ array = pCall->_functions->GetCmplxArray(pCall->_object, (void*) Axis_DeSerialize_SOAPStruct,
(void*) Axis_Create_SOAPStruct, (void*) Axis_Delete_SOAPStruct, (void*) Axis_GetSize_SOAPStruct,
0, 0);
memcpy(&RetArray, &array, sizeof(Axis_Array));
}
}
- pCall->UnInitialize(g_pInteropTestPortType);
+ pCall->_functions->UnInitialize(pCall->_object);
return RetArray;
}
@@ -258,53 +241,48 @@
/*
* This method wrap the service methodechoVoid
*/
-void echoVoid()
+void echoVoid(void* pStub)
{
int nStatus;
- CallFunctions* pCall;
- if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost/axis/InteropBase");
- if (!g_pInteropTestPortType || !g_pInteropTestPortType->__vfptr) return pCall = g_pInteropTestPortType->__vfptr;
+ Call* pCall = (Call*)pStub;
/* Following will establish the connections with the server too */
- if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType, C_RPC_PROVIDER)) return
;
- pCall->SetTransportProperty(g_pInteropTestPortType,SOAPACTION_HEADER , "InteropBase#echoVoid");
- pCall->SetSOAPVersion(g_pInteropTestPortType, SOAP_VER_1_1);
- pCall->SetOperation(g_pInteropTestPortType, "echoVoid", "http://soapinterop.org/");
- if (AXIS_SUCCESS == pCall->Invoke(g_pInteropTestPortType))
+ if (AXIS_SUCCESS != pCall->_functions->Initialize(pCall->_object, C_RPC_PROVIDER))
return ;
+ pCall->_functions->SetTransportProperty(pCall->_object,SOAPACTION_HEADER , "InteropBase#echoVoid");
+ pCall->_functions->SetSOAPVersion(pCall->_object, SOAP_VER_1_1);
+ pCall->_functions->SetOperation(pCall->_object, "echoVoid", "http://soapinterop.org/");
+ if (AXIS_SUCCESS == pCall->_functions->Invoke(pCall->_object))
{
- if(AXIS_SUCCESS == pCall->CheckMessage(g_pInteropTestPortType, "echoVoidResponse",
""))
+ if(AXIS_SUCCESS == pCall->_functions->CheckMessage(pCall->_object, "echoVoidResponse",
""))
{
/*not successful*/
}
}
- pCall->UnInitialize(g_pInteropTestPortType);
+ pCall->_functions->UnInitialize(pCall->_object);
}
/*
* This method wrap the service methodechoBase64
*/
-xsd__base64Binary echoBase64(xsd__base64Binary Value0)
+xsd__base64Binary echoBase64(void* pStub, xsd__base64Binary Value0)
{
int nStatus;
- CallFunctions* pCall;
+ Call* pCall = (Call*)pStub;
xsd__base64Binary Ret;
- if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost/axis/InteropBase");
- if (!g_pInteropTestPortType || !g_pInteropTestPortType->__vfptr) return Ret;
- pCall = g_pInteropTestPortType->__vfptr;
/* Following will establish the connections with the server too */
- if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType, C_RPC_PROVIDER)) return
Ret;
- pCall->SetTransportProperty(g_pInteropTestPortType,SOAPACTION_HEADER , "InteropBase#echoBase64");
- pCall->SetSOAPVersion(g_pInteropTestPortType, SOAP_VER_1_1);
- pCall->SetOperation(g_pInteropTestPortType, "echoBase64", "http://soapinterop.org/");
- pCall->AddParameter(g_pInteropTestPortType, (void*)&Value0, "inputBase64", XSD_BASE64BINARY);
- if (AXIS_SUCCESS == pCall->Invoke(g_pInteropTestPortType))
+ if (AXIS_SUCCESS != pCall->_functions->Initialize(pCall->_object, C_RPC_PROVIDER))
return Ret;
+ pCall->_functions->SetTransportProperty(pCall->_object,SOAPACTION_HEADER , "InteropBase#echoBase64");
+ pCall->_functions->SetSOAPVersion(pCall->_object, SOAP_VER_1_1);
+ pCall->_functions->SetOperation(pCall->_object, "echoBase64", "http://soapinterop.org/");
+ pCall->_functions->AddParameter(pCall->_object, (void*)&Value0, "inputBase64",
XSD_BASE64BINARY);
+ if (AXIS_SUCCESS == pCall->_functions->Invoke(pCall->_object))
{
- if(AXIS_SUCCESS == pCall->CheckMessage(g_pInteropTestPortType, "echoBase64Response",
""))
+ if(AXIS_SUCCESS == pCall->_functions->CheckMessage(pCall->_object, "echoBase64Response",
""))
{
- Ret = pCall->GetElementAsBase64Binary(g_pInteropTestPortType, 0, 0);
+ Ret = pCall->_functions->GetElementAsBase64Binary(pCall->_object, 0, 0);
}
}
- pCall->UnInitialize(g_pInteropTestPortType);
+ pCall->_functions->UnInitialize(pCall->_object);
return Ret;
}
@@ -312,28 +290,25 @@
/*
* This method wrap the service methodechoDate
*/
-xsd__dateTime echoDate(xsd__dateTime Value0)
+xsd__dateTime echoDate(void* pStub, xsd__dateTime Value0)
{
int nStatus;
- CallFunctions* pCall;
+ Call* pCall = (Call*)pStub;
xsd__dateTime Ret;
- if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost/axis/InteropBase");
- if (!g_pInteropTestPortType || !g_pInteropTestPortType->__vfptr) return Ret;
- pCall = g_pInteropTestPortType->__vfptr;
/* Following will establish the connections with the server too */
- if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType, C_RPC_PROVIDER)) return
Ret;
- pCall->SetTransportProperty(g_pInteropTestPortType,SOAPACTION_HEADER , "InteropBase#echoDate");
- pCall->SetSOAPVersion(g_pInteropTestPortType, SOAP_VER_1_1);
- pCall->SetOperation(g_pInteropTestPortType, "echoDate", "http://soapinterop.org/");
- pCall->AddParameter(g_pInteropTestPortType, (void*)&Value0, "inputDate", XSD_DATETIME);
- if (AXIS_SUCCESS == pCall->Invoke(g_pInteropTestPortType))
+ if (AXIS_SUCCESS != pCall->_functions->Initialize(pCall->_object, C_RPC_PROVIDER))
return Ret;
+ pCall->_functions->SetTransportProperty(pCall->_object,SOAPACTION_HEADER , "InteropBase#echoDate");
+ pCall->_functions->SetSOAPVersion(pCall->_object, SOAP_VER_1_1);
+ pCall->_functions->SetOperation(pCall->_object, "echoDate", "http://soapinterop.org/");
+ pCall->_functions->AddParameter(pCall->_object, (void*)&Value0, "inputDate",
XSD_DATETIME);
+ if (AXIS_SUCCESS == pCall->_functions->Invoke(pCall->_object))
{
- if(AXIS_SUCCESS == pCall->CheckMessage(g_pInteropTestPortType, "echoDateResponse",
""))
+ if(AXIS_SUCCESS == pCall->_functions->CheckMessage(pCall->_object, "echoDateResponse",
""))
{
- Ret = pCall->GetElementAsDateTime(g_pInteropTestPortType, 0, 0);
+ Ret = pCall->_functions->GetElementAsDateTime(pCall->_object, 0, 0);
}
}
- pCall->UnInitialize(g_pInteropTestPortType);
+ pCall->_functions->UnInitialize(pCall->_object);
return Ret;
}
@@ -341,28 +316,25 @@
/*
* This method wrap the service methodechoHexBinary
*/
-xsd__hexBinary echoHexBinary(xsd__hexBinary Value0)
+xsd__hexBinary echoHexBinary(void* pStub, xsd__hexBinary Value0)
{
int nStatus;
- CallFunctions* pCall;
+ Call* pCall = (Call*)pStub;
xsd__hexBinary Ret;
- if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost/axis/InteropBase");
- if (!g_pInteropTestPortType || !g_pInteropTestPortType->__vfptr) return Ret;
- pCall = g_pInteropTestPortType->__vfptr;
/* Following will establish the connections with the server too */
- if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType, C_RPC_PROVIDER)) return
Ret;
- pCall->SetTransportProperty(g_pInteropTestPortType,SOAPACTION_HEADER , "InteropBase#echoHexBinary");
- pCall->SetSOAPVersion(g_pInteropTestPortType, SOAP_VER_1_1);
- pCall->SetOperation(g_pInteropTestPortType, "echoHexBinary", "http://soapinterop.org/");
- pCall->AddParameter(g_pInteropTestPortType, (void*)&Value0, "inputHexBinary", XSD_HEXBINARY);
- if (AXIS_SUCCESS == pCall->Invoke(g_pInteropTestPortType))
+ if (AXIS_SUCCESS != pCall->_functions->Initialize(pCall->_object, C_RPC_PROVIDER))
return Ret;
+ pCall->_functions->SetTransportProperty(pCall->_object,SOAPACTION_HEADER , "InteropBase#echoHexBinary");
+ pCall->_functions->SetSOAPVersion(pCall->_object, SOAP_VER_1_1);
+ pCall->_functions->SetOperation(pCall->_object, "echoHexBinary", "http://soapinterop.org/");
+ pCall->_functions->AddParameter(pCall->_object, (void*)&Value0, "inputHexBinary",
XSD_HEXBINARY);
+ if (AXIS_SUCCESS == pCall->_functions->Invoke(pCall->_object))
{
- if(AXIS_SUCCESS == pCall->CheckMessage(g_pInteropTestPortType, "echoHexBinaryResponse",
""))
+ if(AXIS_SUCCESS == pCall->_functions->CheckMessage(pCall->_object, "echoHexBinaryResponse",
""))
{
- Ret = pCall->GetElementAsHexBinary(g_pInteropTestPortType, 0, 0);
+ Ret = pCall->_functions->GetElementAsHexBinary(pCall->_object, 0, 0);
}
}
- pCall->UnInitialize(g_pInteropTestPortType);
+ pCall->_functions->UnInitialize(pCall->_object);
return Ret;
}
@@ -370,28 +342,25 @@
/*
* This method wrap the service methodechoDecimal
*/
-xsd__decimal echoDecimal(xsd__decimal Value0)
+xsd__decimal echoDecimal(void* pStub, xsd__decimal Value0)
{
int nStatus;
- CallFunctions* pCall;
+ Call* pCall = (Call*)pStub;
xsd__decimal Ret;
- if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost/axis/InteropBase");
- if (!g_pInteropTestPortType || !g_pInteropTestPortType->__vfptr) return Ret;
- pCall = g_pInteropTestPortType->__vfptr;
/* Following will establish the connections with the server too */
- if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType, C_RPC_PROVIDER)) return
Ret;
- pCall->SetTransportProperty(g_pInteropTestPortType,SOAPACTION_HEADER , "InteropBase#echoDecimal");
- pCall->SetSOAPVersion(g_pInteropTestPortType, SOAP_VER_1_1);
- pCall->SetOperation(g_pInteropTestPortType, "echoDecimal", "http://soapinterop.org/");
- pCall->AddParameter(g_pInteropTestPortType, (void*)&Value0, "inputDecimal", XSD_DECIMAL);
- if (AXIS_SUCCESS == pCall->Invoke(g_pInteropTestPortType))
+ if (AXIS_SUCCESS != pCall->_functions->Initialize(pCall->_object, C_RPC_PROVIDER))
return Ret;
+ pCall->_functions->SetTransportProperty(pCall->_object,SOAPACTION_HEADER , "InteropBase#echoDecimal");
+ pCall->_functions->SetSOAPVersion(pCall->_object, SOAP_VER_1_1);
+ pCall->_functions->SetOperation(pCall->_object, "echoDecimal", "http://soapinterop.org/");
+ pCall->_functions->AddParameter(pCall->_object, (void*)&Value0, "inputDecimal",
XSD_DECIMAL);
+ if (AXIS_SUCCESS == pCall->_functions->Invoke(pCall->_object))
{
- if(AXIS_SUCCESS == pCall->CheckMessage(g_pInteropTestPortType, "echoDecimalResponse",
""))
+ if(AXIS_SUCCESS == pCall->_functions->CheckMessage(pCall->_object, "echoDecimalResponse",
""))
{
- Ret = pCall->GetElementAsDecimal(g_pInteropTestPortType, 0, 0);
+ Ret = pCall->_functions->GetElementAsDecimal(pCall->_object, 0, 0);
}
}
- pCall->UnInitialize(g_pInteropTestPortType);
+ pCall->_functions->UnInitialize(pCall->_object);
return Ret;
}
@@ -399,28 +368,25 @@
/*
* This method wrap the service methodechoBoolean
*/
-xsd__boolean echoBoolean(xsd__boolean Value0)
+xsd__boolean echoBoolean(void* pStub, xsd__boolean Value0)
{
int nStatus;
- CallFunctions* pCall;
+ Call* pCall = (Call*)pStub;
xsd__boolean Ret;
- if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost/axis/InteropBase");
- if (!g_pInteropTestPortType || !g_pInteropTestPortType->__vfptr) return Ret;
- pCall = g_pInteropTestPortType->__vfptr;
/* Following will establish the connections with the server too */
- if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType, C_RPC_PROVIDER)) return
Ret;
- pCall->SetTransportProperty(g_pInteropTestPortType,SOAPACTION_HEADER , "InteropBase#echoBoolean");
- pCall->SetSOAPVersion(g_pInteropTestPortType, SOAP_VER_1_1);
- pCall->SetOperation(g_pInteropTestPortType, "echoBoolean", "http://soapinterop.org/");
- pCall->AddParameter(g_pInteropTestPortType, (void*)&Value0, "inputBoolean", XSD_BOOLEAN);
- if (AXIS_SUCCESS == pCall->Invoke(g_pInteropTestPortType))
+ if (AXIS_SUCCESS != pCall->_functions->Initialize(pCall->_object, C_RPC_PROVIDER))
return Ret;
+ pCall->_functions->SetTransportProperty(pCall->_object,SOAPACTION_HEADER , "InteropBase#echoBoolean");
+ pCall->_functions->SetSOAPVersion(pCall->_object, SOAP_VER_1_1);
+ pCall->_functions->SetOperation(pCall->_object, "echoBoolean", "http://soapinterop.org/");
+ pCall->_functions->AddParameter(pCall->_object, (void*)&Value0, "inputBoolean",
XSD_BOOLEAN);
+ if (AXIS_SUCCESS == pCall->_functions->Invoke(pCall->_object))
{
- if(AXIS_SUCCESS == pCall->CheckMessage(g_pInteropTestPortType, "echoBooleanResponse",
""))
+ if(AXIS_SUCCESS == pCall->_functions->CheckMessage(pCall->_object, "echoBooleanResponse",
""))
{
- Ret = pCall->GetElementAsBoolean(g_pInteropTestPortType, 0, 0);
+ Ret = pCall->_functions->GetElementAsBoolean(pCall->_object, 0, 0);
}
}
- pCall->UnInitialize(g_pInteropTestPortType);
+ pCall->_functions->UnInitialize(pCall->_object);
return Ret;
}
1.3 +16 -15 ws-axis/c/samples/client/interoptests/cbase/InteropTestPortType.h
Index: InteropTestPortType.h
===================================================================
RCS file: /home/cvs/ws-axis/c/samples/client/interoptests/cbase/InteropTestPortType.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- InteropTestPortType.h 29 Jan 2004 08:08:32 -0000 1.2
+++ InteropTestPortType.h 10 Feb 2004 12:19:58 -0000 1.3
@@ -11,22 +11,23 @@
#include "SOAPStruct_Array.h"
#include "SOAPStruct.h"
+extern void* get_InteropBase_stub();
+extern void destroy_InteropBase_stub(void* p);
-Call* g_pInteropTestPortType;
-extern xsd__string echoString(xsd__string Value0);
-extern xsd__string_Array echoStringArray(xsd__string_Array Value0);
-extern int echoInteger(int Value0);
-extern xsd__int_Array echoIntegerArray(xsd__int_Array Value0);
-extern float echoFloat(float Value0);
-extern xsd__float_Array echoFloatArray(xsd__float_Array Value0);
-extern SOAPStruct* echoStruct(SOAPStruct* Value0);
-extern SOAPStruct_Array echoStructArray(SOAPStruct_Array Value0);
-extern void echoVoid();
-extern xsd__base64Binary echoBase64(xsd__base64Binary Value0);
-extern xsd__dateTime echoDate(xsd__dateTime Value0);
-extern xsd__hexBinary echoHexBinary(xsd__hexBinary Value0);
-extern xsd__decimal echoDecimal(xsd__decimal Value0);
-extern xsd__boolean echoBoolean(xsd__boolean Value0);
+extern xsd__string echoString(void* pStub, xsd__string Value0);
+extern xsd__string_Array echoStringArray(void* pStub, xsd__string_Array Value0);
+extern int echoInteger(void* pStub, int Value0);
+extern xsd__int_Array echoIntegerArray(void* pStub, xsd__int_Array Value0);
+extern float echoFloat(void* pStub, float Value0);
+extern xsd__float_Array echoFloatArray(void* pStub, xsd__float_Array Value0);
+extern SOAPStruct* echoStruct(void* pStub, SOAPStruct* Value0);
+extern SOAPStruct_Array echoStructArray(void* pStub, SOAPStruct_Array Value0);
+extern void echoVoid(void* pStub);
+extern xsd__base64Binary echoBase64(void* pStub, xsd__base64Binary Value0);
+extern xsd__dateTime echoDate(void* pStub, xsd__dateTime Value0);
+extern xsd__hexBinary echoHexBinary(void* pStub, xsd__hexBinary Value0);
+extern xsd__decimal echoDecimal(void* pStub, xsd__decimal Value0);
+extern xsd__boolean echoBoolean(void* pStub, xsd__boolean Value0);
#endif // !defined(__INTEROPTESTPORTTYPE_H__INCLUDED_)
1.3 +35 -2 ws-axis/c/samples/server/interoptests/cbase/InteropTestPortTypeService.c
Index: InteropTestPortTypeService.c
===================================================================
RCS file: /home/cvs/ws-axis/c/samples/server/interoptests/cbase/InteropTestPortTypeService.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- InteropTestPortTypeService.c 3 Feb 2004 13:04:46 -0000 1.2
+++ InteropTestPortTypeService.c 10 Feb 2004 12:19:58 -0000 1.3
@@ -23,7 +23,7 @@
int GetClassInstance(BasicHandler **inst)
{
*inst = malloc(sizeof(BasicHandler));
- (*inst)->_object = 0; /* instantiate and provide the context object if needed */
+ (*inst)->_object = 0; /* instantiate and provide the context object if needed */
(*inst)->_functions = &InteropTestPortTypeWrapper_functions;
return (*inst)->_functions->Init((*inst)->_object);
}
@@ -34,9 +34,42 @@
if (inst)
{
inst->_functions->Fini(inst->_object);
- /* destroy the context object set to inst->_object if any here */
+ /*destroy the context object set to inst->_object if any here */
free(inst);
return AXIS_SUCCESS;
}
return AXIS_FAIL;
}
+
+/*
+#define AXIS_SERVICE_LOADER_MACRO(WCName) static \
+BasicHandlerFunctions WCName##_functions = { \
+ ##WCName##_Invoke, \
+ ##WCName##_OnFault, \
+ ##WCName##_Init, \
+ ##WCName##_Fini, \
+ ##WCName##_GetType, \
+ ##WCName##_GetBindingStyle \
+}; \
+STORAGE_CLASS_INFO \
+int GetClassInstance(BasicHandler **inst) \
+{ \
+ *inst = malloc(sizeof(BasicHandler)); \
+ (*inst)->_object = 0; \
+ (*inst)->_functions = &##WCName##_functions; \
+ return (*inst)->_functions->Init((*inst)->_object); \
+} \
+STORAGE_CLASS_INFO \
+int DestroyInstance(BasicHandler *inst) \
+{ \
+ if (inst) \
+ { \
+ inst->_functions->Fini(inst->_object); \
+ free(inst); \
+ return AXIS_SUCCESS; \
+ } \
+ return AXIS_FAIL; \
+}
+
+AXIS_SERVICE_LOADER_MACRO( InteropTestPortTypeWrapper )
+*/
1.3 +10 -0 ws-axis/c/samples/server/interoptests/cbase/InteropTestPortTypeWrapper.c
Index: InteropTestPortTypeWrapper.c
===================================================================
RCS file: /home/cvs/ws-axis/c/samples/server/interoptests/cbase/InteropTestPortTypeWrapper.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- InteropTestPortTypeWrapper.c 3 Feb 2004 13:04:46 -0000 1.2
+++ InteropTestPortTypeWrapper.c 10 Feb 2004 12:19:58 -0000 1.3
@@ -8,11 +8,21 @@
#include "SOAPStruct.h"
#include "SOAPStruct_Array.h"
+#define AXIS_SERIALIZER_DESERIALIZER_FUNCTIONS_DEFINITIONS(Typename) \
+extern int Axis_DeSerialize_##Typename ( ##Typename* param, IWrapperSoapDeSerializer *pDZ);\
+extern void* Axis_Create_##Typename ( ##Typename * param, bool bArray, int nSize);\
+extern void Axis_Delete_##Typename ( ##Typename* param, bool bArray, int nSize);\
+extern int Axis_Serialize_##Typename ( ##Typename* param, IWrapperSoapSerializer* pSZ,
bool bArray);\
+extern int Axis_GetSize_##Typename ();
+
+AXIS_SERIALIZER_DESERIALIZER_FUNCTIONS_DEFINITIONS(SOAPStruct)
+/*
extern int Axis_DeSerialize_SOAPStruct(SOAPStruct* param, IWrapperSoapDeSerializer *pDZ);
extern void* Axis_Create_SOAPStruct(SOAPStruct * param, bool bArray, int nSize);
extern void Axis_Delete_SOAPStruct(SOAPStruct* param, bool bArray, int nSize);
extern int Axis_Serialize_SOAPStruct(SOAPStruct* param, IWrapperSoapSerializer* pSZ, bool
bArray);
extern int Axis_GetSize_SOAPStruct();
+*/
/*implementation of BasicHandler interface*/
void AXISCALL InteropTestPortTypeWrapper_OnFault(void*p, void *pMsg)
1.27 +13 -5 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.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- Call.cpp 3 Feb 2004 13:04:46 -0000 1.26
+++ Call.cpp 10 Feb 2004 12:19:58 -0000 1.27
@@ -78,7 +78,6 @@
Call::Call()
{
- __vfptr = &ms_VFtable;
m_pAxisEngine = NULL;
m_pMsgData = NULL;
m_pIWSSZ = NULL;
@@ -457,14 +456,23 @@
}
/*global function to be used in C stubs */
-extern "C" Call* GetCallObject(AXIS_PROTOCOL_TYPE nProtocol, AxisChar* pchEndpointURI)
+extern "C" void* GetStubObject(AXIS_PROTOCOL_TYPE nProtocol, AxisChar* pchEndpointURI)
{
- Call* pCall = new Call();
- pCall->SetProtocol(nProtocol);
- pCall->SetEndpointURI(pchEndpointURI);
+ Call_C* pCall = (Call_C*)malloc(sizeof(Call_C));
+ pCall->_object = new Call();
+ pCall->_functions = &Call::ms_VFtable;
+ ((Call*)pCall->_object)->SetProtocol(nProtocol);
+ ((Call*)pCall->_object)->SetEndpointURI(pchEndpointURI);
return pCall;
}
+extern "C" void DestroyStubObject(void* pCall)
+{
+ Call* pObject = (Call*)((Call_C*)pCall)->_object;
+ pObject->UnInitialize();
+ delete pObject;
+ free(pCall);
+}
int Call::SetSoapHeader(SoapHeader *pSoapHeader)
{
|