You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by sa...@apache.org on 2005/04/06 07:26:44 UTC

cvs commit: ws-axis/c/samples/client/groupB Client.cpp

samisa      2005/04/05 22:26:44

  Added:       c/samples/client/groupB Client.cpp
  Log:
  Added client inplementation for the sample
  
  Revision  Changes    Path
  1.1                  ws-axis/c/samples/client/groupB/Client.cpp
  
  Index: Client.cpp
  ===================================================================
  // Copyright 2003-2004 The Apache Software Foundation.
  // 
  // Licensed under the Apache License, Version 2.0 (the "License");
  // you may not use this file except in compliance with the License.
  // You may obtain a copy of the License at
  // 
  //        http://www.apache.org/licenses/LICENSE-2.0
  // 
  // Unless required by applicable law or agreed to in writing, software
  // distributed under the License is distributed on an "AS IS" BASIS,
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  // See the License for the specific language governing permissions and
  // limitations under the License.
  
  // InteropGroupBClient.cpp : Defines the entry point for the console application.
  //
  #include "InteropTestPortTypeB.hpp"
  #include <axis/AxisException.hpp>
  #include <iostream>
  
  #define ARRAYSIZE 5
  
  static void
  usage (char *programName, char *defaultURL)
  {
      cout << "\nUsage:\n"
  	<< programName << " [-? | service_url] " << endl
  	<< "    -?             Show this help.\n"
  	<< "    service_url    URL of the service.\n"
  	<< "    Default service URL is assumed to be " << defaultURL
  	<<
  	"\n    Could use http://localhost:8080/axis/services/echo to test with Axis Java."
  	<< endl;
  }
  
  int main(int argc, char* argv[])
  {
  	int x;
  	char endpoint[256];
  
      // Set default service URL
      sprintf (endpoint, "http://localhost/axis/groupB");
      // Could use http://localhost:8080/axis/services/echo to test with Axis Java
  
  	if (argc > 1)
  	{
  	    // Watch for special case help request
  	    if (!strncmp (argv[1], "-", 1)) // Check for - only so that it works for 
                                              //-?, -h or --help; -anything 
  	    {
  		usage (argv[0], endpoint);
  		return 2;
  	    }
  	    sprintf (endpoint, argv[1]);
  	}
  
  
  	cout << endl << " Using service at " << endpoint << endl << endl;
      
      try
  	{
  	InteropTestPortTypeB ws(endpoint);
  	/*we do not support multi-dimensional arrays.*/
  	/*ws.echo2DStringArray*/
  
  	/*testing Nested Arrays*/
  	SOAPArrayStruct sas;
  	sas.varFloat = 12345.67890;
  	sas.varInt = 5000;
  	sas.varString = strdup("varString content of SOAPArrayStruct");
  	sas.varArray.m_Array = new AxisChar*[ARRAYSIZE];
  	sas.varArray.m_Size = ARRAYSIZE;
  	for (x=0; x<ARRAYSIZE; x++)
  	{
  		sas.varArray.m_Array[x] = strdup("content of string array element");
  	}
  	printf("invoking echoNestedArray...\n");
  	if (ws.echoNestedArray(&sas) != NULL)
  		printf("successful\n");
  	else
  		printf("failed\n");
  
  	/*testing Nested Structs*/
  	SOAPStructStruct sss;
  	sss.varFloat = 12345.67890;
  	sss.varInt = 5000;
  	sss.varString = strdup("varString content of SOAPStructStruct");
  	sss.varStruct = new SOAPStruct();
  	sss.varStruct->varFloat = 67890.12345;
  	sss.varStruct->varInt = 54321;
  	sss.varStruct->varString = strdup("varString content of SOAPStruct");
  	printf("invoking echoNestedStruct...\n");
  	if (ws.echoNestedStruct(&sss) != NULL)
  		printf("successful\n");
  	else
  		printf("failed\n");
  
  	/*testing echo Simple types as struct*/
  	char* str = strdup("content of string passed");
  	printf("invoking echoSimpleTypesAsStruct...\n");
  	if (ws.echoSimpleTypesAsStruct(str,5000,2345.67890) != NULL)
  		printf("successful\n");
  	else
  		printf("failed\n");
  
  	/*testing echo Struct as simple types.*/
  	SOAPStruct ss;
  	ss.varFloat = 12345.67890;
  	ss.varInt = 5000;
  	ss.varString = strdup("content of string passed");
  	char* outStr;
  	int outInt;
  	float outFloat;
  	printf("invoking echoStructAsSimpleTypes...\n");
  	ws.echoStructAsSimpleTypes(&ss,&outStr,&outInt,&outFloat);
  	if (outInt == 5000 && (0 == strcmp(outStr,"content of string passed")) && outFloat > 12345.67)
  		printf("successful\n");
  	else
  		printf("failed\n");	
  	/*getchar();*/
          }
          catch(AxisException& e)
          {
              printf("Exception : %s\n", e.what());
          }
          catch(exception& e)
          {
              printf("Unknown exception has occured\n");
          }
          catch(...)
          {
              printf("Unknown exception has occured\n");
          }
  	return 0;
  }